Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Menjalankan pelayan e-mel anda sendiri boleh menjadi cukup memberi ganjaran. Anda bertanggungjawab terhadap data anda. Ia juga memberi anda lebih banyak fleksibiliti dengan pilihan penghantaran anda. Walau bagaimanapun, terdapat beberapa cabaran. Anda menghadapi risiko membuka pelayan anda sehingga terdedah, dan juga menjadikan pelayan anda sebagai penyampai yang berpotensi untuk digunakan oleh spammer.
Dengan begitu, mari kita jalankan pelayan e-mel kita sendiri.
Terdapat tiga perisian yang diperlukan untuk dipasang yang tidak termasuk dalam sistem asas FreeBSD:
OpenSMTPd adalah ejen pemindahan mel (MTA) dan ejen penghantaran mel (MDA). Ini bermaksud bahawa ia dapat berkomunikasi dengan pelayan mel lain melalui SMTP
protokol, dan juga menangani penghantaran surat ke peti mel pengguna masing-masing. Kami akan menyediakan OpenSMTPd supaya ia dapat berkomunikasi dengan pelayan luar (ditapis melalui spamd) dan menghantar mel kepada pengguna setempat, serta menyampaikan surat tempatan dari pengguna ke pengguna.
Dovecot adalah MDA yang membaca peti mel tempatan dan menyediakannya melalui IMAP atau POP3 kepada pengguna. Ini akan menggunakan kotak mel pengguna tempatan untuk melayani kandungan ini.
Spamd adalah perkhidmatan penapisan mel. Kami boleh meneruskan e-mel melalui spamd, dan ia akan menyaring surat berdasarkan pelbagai senarai hitam, senarai putih, dan senarai pelanggan.
Idea umum untuk pelayan mel ini memerlukan beberapa jalan yang berbeda:
Outside world -> Firewall -> spamd -> OpenSMTPD -> User mail boxes
Outside world -> Firewall (spamd-whitelist) -> OpenSMTPD -> User mailboxes
Outside world -> Firewall (IMAP/POP3) -> Dovecot
Outside world -> Firewall (SMTPD submission)
Untuk tutorial ini, kami akan menggunakan OpenBSD versi FreeBSD PF untuk firewall kami. Anda juga boleh menggunakan ipfw
, di mana konfigurasi sangat serupa.
Nota: Vultr, secara lalai, menyekat port 25, yang digunakan oleh pelayan SMTP di mana sahaja. Sekiranya anda ingin menjalankan pelayan e-mel yang berfungsi sepenuhnya, anda perlu membuka port tersebut.
Pertama, kita perlu memasang program yang diperlukan.
Dengan mengandaikan anda berjalan sebagai pengguna dengan pengaturan akses sudo, kita dapat menjalankan perintah berikut. Mereka berbeza-beza bergantung pada sama ada anda menggunakan port atau pakej.
Kecuali anda memerlukan fungsi khusus yang terdapat di dalam utiliti ini, disarankan untuk memasang melalui pakej. Lebih mudah, mengambil masa dan sumber pelayan yang kurang, dan menyediakan antara muka mesra pengguna yang intuitif.
sudo pkg install opensmtpd dovecot spamd
Perintah berikut make
akan memberikan banyak pilihan kompilasi, lalai akan berfungsi dengan baik. Jangan ubah ini melainkan anda tahu dengan tepat apa yang anda lakukan.
sudo portsnap fetch update # or run portsnap fetch extract if using ports for the first time
cd /usr/ports/mail/opensmtpd
make install # Installs openSMTPd
make clean
cd /usr/ports/mail/dovecot
make install # Installs dovecot
make clean
cd /usr/ports/mail/spamd
make install # Installs spamd
make clean
Kita perlu menambah baris berikut kepada /etc/rc.conf
:
pf_enable="YES"
pf_rules="/usr/local/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
obspamd_enable="YES"
obspamd_flags="-v"
obspamlogd_enable="YES"
dovecot_enable="YES"
Untuk mengkonfigurasi PF, kita dapat membuat /usr/local/etc/pf.conf
:
## Set public interface ##
ext_if="vtnet0"
## set and drop IP ranges on the public interface ##
martians = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, \
10.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, \
0.0.0.0/8, 240.0.0.0/4 }"
table <spamd> persist
table <spamd-white> persist
# Whitelisted webmail services
table <webmail> persist file "/usr/local/etc/pf.webmail.ip.conf"
## Skip loop back interface - Skip all PF processing on interface ##
set skip on lo
## Sets the interface for which PF should gather statistics such as bytes in/out and packets passed/blocked ##
set loginterface $ext_if
# Deal with attacks based on incorrect handling of packet fragments
scrub in all
# Pass spamd whitelist
pass quick log on $ext_if inet proto tcp from <spamd-white> to $ext_if port smtp \
-> 127.0.0.1 port 25
# Pass webmail servers
rdr pass quick log on $ext_if inet proto tcp from <gmail> to $ext_if port smtp \
-> 127.0.0.1 port 25
# pass submission messages.
pass quick log on $ext_if inet proto tcp from any to $ext_if port submission modulate state
# Pass unknown mail to spamd
rdr pass log on $ext_if inet proto tcp from {!<spamd-white> <spamd>} to $ext_if port smtp \
-> 127.0.0.1 port 8025
## Blocking spoofed packets
antispoof quick for $ext_if
## Set default policy ##
block return in log all
block out all
# Drop all Non-Routable Addresses
block drop in quick on $ext_if from $martians to any
block drop out quick on $ext_if from any to $martians
pass in inet proto tcp to $ext_if port ssh
# Allow Ping-Pong stuff. Be a good sysadmin
pass inet proto icmp icmp-type echoreq
# Open up imap/pop3 support
pass quick on $ext_if proto tcp from any to any port {imap, imaps, pop3, pop3s} modulate state
# Allow outgoing traffic
pass out on $ext_if proto tcp from any to any modulate state
pass out on $ext_if proto udp from any to any keep state
Ini adalah konfigurasi PF yang berfungsi. Ia agak mudah, tetapi terdapat beberapa kebiasaan untuk dijelaskan juga.
Pertama, kami menentukan $ext_if
pemboleh ubah untuk vtnet0
digunakan oleh peranti kami di kemudian hari. Kami juga menentukan alamat IP tidak sah yang harus dijatuhkan pada antara muka luaran.
Kami juga menentukan dua jadual, spamd
dan spamd-white
- kedua-dua jadual dicipta oleh spamd dalam konfigurasi lalai. Kami juga menentukan jadual yang dinamakan webmail
yang akan kami gunakan untuk membolehkan beberapa penyedia e-mel web utama.
Untuk melihat jadual, anda boleh menggunakan arahan pfctl -t tablename -T show
untuk menyenaraikan elemen dalam jadual.
Kami menetapkan beberapa peraturan PF: melangkau pemprosesan pada antara muka tempatan, membolehkan statistik pada antara muka luaran dan scrub paket yang masuk.
Seterusnya adalah salah satu bahagian yang lebih penting, di mana kita berjaya menghantar lalu lintas kita ke spamd atau OpenSMTPd.
Pertama ialah peraturan redirect (perhatikan sintaks di sini, FreeBSD 11 menggunakan sintaks PF gaya lama (sebelum OpenBSD 4.6) supaya sintaks mungkin kelihatan aneh. Jika kita menerima apa-apa pada smtp dari host yang disenaraikan dalam spamd
jadual atau tidak disenaraikan dalam yang spamd-white
pong, kami mengubah hala sambungan melalui daemon spamd, yang memperkatakan sambungan ini. tiga kaedah-kaedah berikut adalah peraturan passthrough supaya kita benar-benar boleh menerima mel. kami melalui mesej daripada IP disenaraikan dalam spamd-white
dan webmail
jadual lurus melalui OpenSMTPd. Juga, kami menerima mesej pada port penyerahan ( 587
).
Kemudian ada beberapa aturan pengemasan untuk menetapkan dasar lalai kami, dan menerima mesej SSH dan ICMP.
Kami kemudian lulus IMAP dan POP3 pada antara muka luaran kami untuk mengakses Dovecot.
Terakhir kami membenarkan semua lalu lintas keluar. Sekiranya anda ingin menambah keselamatan tambahan, anda boleh mengehadkan pelabuhan yang anda lalui, tetapi untuk pelayan satu guna, ia bukan masalah untuk lulus segala-galanya.
Mulakan PF:
sudo service pf start
Sekarang kita mempunyai persediaan firewall, kita dapat beralih ke konfigurasi pelayan mel kita.
OpenSMTPd mempunyai sintaks konfigurasi yang sangat mudah dan senang dibaca. Konfigurasi seluruh kerja boleh masuk ke dalam 14 baris, seperti yang anda lihat di bawah:
#This is the smtpd server system-wide configuration file.
# See smtpd.conf(5) for more information.
ext_if=vtnet0
# If you edit the file, you have to run "smtpctl update table aliases"
table aliases file:/etc/mail/aliases
table domains file:/etc/mail/domains
# Keys
pki mail.example.com key "/usr/local/etc/letsencrypt/live/mail.example.com/privkey.pem"
pki mail.example.com certificate "/usr/local/etc/letsencrypt/live/mail.example.com/fullchain.pem"
# If you want to listen on multiple subdomains (e.g. mail.davidlenfesty) you have to add more lines
# of keys, and more lines of listeners
# Listen for local SMTP connections
listen on localhost hostname mail.example.com
# listen for filtered spamd connections
listen on lo0 port 10026
# Listen for submissions
listen on $ext_if port 587 tls-require auth pki mail.example.com tag SUBMITTED
# Accept mail from external sources.
accept from any for domain <domains> alias <aliases> deliver to maildir "~/mail"
accept for local alias <aliases> deliver to maildir "~/mail"
accept from local for any relay tls
accept tagged SUBMITTED for any relay tls
Pertama, kita sekali lagi menentukan antara muka luaran kita, serta beberapa jadual, alias dan domain. Kemudian kami beralih ke kunci SSL dan sijil untuk domain yang ingin kami urus mel.
Dalam bahagian seterusnya, kami menentukan antara muka dan pelabuhan yang ingin kami dengar. Pertama, kita dengar localhost untuk mail.example.com
domain kami , untuk sebarang sambungan tempatan. Kemudian kami mendengar pesanan kami yang disaring spamd dan menghantar mesej di antara muka luaran. Akhir sekali, kami mendengar penyerahan, ini berlaku di pelabuhan 587
dan kami memerlukan mereka untuk mengesahkan, atas sebab keselamatan.
Terakhir adalah accept
tetapan kami . Kami menerima sebarang mesej untuk mana-mana domain yang ditentukan dalam domains
jadual kami untuk alias dalam aliases
jadual kami , untuk dihantar ke direktori beranda mereka dalam maildir
format. Kemudian kami menerima semua sambungan tempatan untuk peti mel tempatan dan menyampaikan mesej kami, jadi kami boleh menghantar e-mel. Terakhir, kami menerima pesanan kami yang dihantar untuk menyampaikan. Jika kami tidak memerlukan pengesahan untuk pelabuhan penyerahan kami, ini akan menjadi bahaya keselamatan yang besar. Ini membolehkan sesiapa sahaja menggunakan pelayan kami sebagai penyampai spam.
FreeBSD memuatkan fail alias lalai /etc/mail/aliases
dalam format berikut:
vuser1: user1
vuser2: user1
vuser3: user1
vuser4: user2
Ini mentakrifkan kotak surat yang berbeza, dan di mana kami ingin menghantar mesej yang dihantar ke peti mel yang ditetapkan ini. Kita boleh menentukan pengguna kita sebagai pengguna sistem tempatan atau peti mel luaran untuk diteruskan. Fail FreeBSD lalai agak deskriptif supaya anda boleh merujuknya untuk rujukan.
FreeBSD tidak menyediakan fail domain lalai, tetapi ini sangat mudah:
# Domains
example.com
mail.example.com
smtp.example.com
Ini hanya fail teks biasa dengan setiap domain yang anda mahu dengar pada baris baru. Anda boleh membuat komen menggunakan #
simbol. Fail ini wujud supaya anda boleh menggunakan lebih sedikit baris konfigurasi.
Terdapat dua cara untuk dapat menjamin komunikasi anda dengan pelayan mel, sijil ditandatangani sendiri dan ditandatangani. Ia sudah tentu boleh menandatangani sijil anda sendiri, namun perkhidmatan seperti Let's Encrypt menyediakan percuma dan sangat mudah digunakan untuk menandatangani.
Mula-mula kita mesti memasang program certbot.
sudo pkg install py-certbot
Sebagai alternatif, ia boleh dipasang dengan port:
cd /usr/ports/security/py-certbot
make install
make clean
Kemudian, untuk mendapatkan sijil anda, anda perlu memastikan anda telah membuka port 80
pada antara muka luaran anda. Tambahkan baris berikut di suatu tempat dalam peraturan penapisan anda di /usr/local/etc/pf.conf
:
pass quick on $ext_if from any to any port http
Kemudian jalankan pfctl -f /usr/local/etc/pf.conf
untuk memuatkan semula peraturan.
Kemudian anda boleh menjalankan arahan untuk mana-mana domain yang anda ingin mendapatkan sijil untuk:
certbot certonly --standalone -d mail.example.com
Dianjurkan untuk menyiapkan entri crontab untuk dijalankan certbot renew
sekali setiap 6 bulan untuk memastikan sijil anda tidak luput.
Kemudian untuk setiap domain yang berkaitan, anda boleh mengubah baris untuk menunjuk ke fail kunci yang betul:
pki mail.example.com key "/usr/local/etc/letsencrypt/live/mail.example.com/privkey.pem"
pki mail.example.com certificate "/usr/local/etc/letsencrypt/live/mail.example.com/fullchain.pem"
Edit sekuriti:
sudo chmod 700 /usr/local/etc/letsencrypt/archive/mail.example.com/*
Nota: Anda perlu melakukan ini untuk setiap fail utama asal atau OpenSMTPd tidak akan membukanya.
Sekarang kita boleh memulakan perkhidmatan:
sudo service smtpd start
Di sini kami menggunakan daemon spamd OpenBSD untuk mengurangkan jumlah spam yang kami dapat dari internet. Pada dasarnya, ini menyaring mesej dari IP yang dikenali sebagai buruk dari pelbagai sumber spam, serta (secara lalai) "senarai masuk" masuk. Spamd juga cuba membazirkan masa spammer dengan "tersentak" yang disenaraihitamkan senarai hitam dan tersulit, yang bermaksud ia menyebarkan respons itu selama beberapa saat yang memaksa klien untuk terus terbuka lebih lama daripada biasa.
Greylisting sambungan dilakukan apabila mana-mana alamat IP baru yang menghubungkan yang tidak di senarai hitam atau putih senarai hitam. Setelah alamat baru disambungkan, spamd menjatuhkan mesej dengan mesej ralat yang tidak masuk akal, kemudian menambahkannya ke senarai sementara. Kerana spammer dibayar untuk mesej yang dihantar, mereka tidak akan mencuba lagi kesilapan, sementara perkhidmatan yang sah akan dibicarakan tidak lama lagi.
Anda perlu menjalankan perkara berikut untuk memasang fdescfs
:
mount -t fdescfs null /dev/fd
Kemudian anda perlu menambah baris ini kepada /etc/fstab
:
fdescfs /dev/fd fdescfs rw 0 0
Fail config default (found in /usr/local/etc/spamd/spamd.conf.sample
) akan berfungsi dengan baik. Anda boleh mengeditnya untuk menambahkan sumber baru atau mengubah sumber yang anda gunakan:
sudo cp /usr/local/etc/spamd/spamd.conf.sample /usr/local/etc/spamd/spamd.conf
Kita boleh memulakan perkhidmatan dengan yang berikut:
sudo service obspamd start
Pada ketika ini spamd disiapkan.
Satu masalah dengan pendekatan greylisting adalah bahawa perkhidmatan mel besar akan sering menghantar mel keluar melalui salah satu daripada banyak kili yang berbeza, dan anda tidak dijamin untuk mendapatkan pelayan yang sama menghantar mesej setiap kali. Salah satu penyelesaian untuk ini adalah memasukkan senarai IP yang digunakan oleh pelbagai perkhidmatan mel web. Inilah yang digunakan dalam jadual webmail dalam konfigurasi PF. Strategi ini boleh menjadi bumerang jika anda memasukkan alamat IP yang digunakan oleh spammer, tetapi selagi anda berhati-hati dengan julat apa yang anda masukkan dalam jadual, anda akan baik-baik saja.
Untuk menambahkan julat e-mel ke jadual e-mel web, anda boleh menjalankan perintah berikut:
pfctl -t webmail -T add 192.0.2.0/24
Jika anda mahu pengguna mengakses mel mereka tanpa mendaftar masuk melalui SSH, anda memerlukan MDA yang menyokong IMAP dan / atau POP3. Program yang sangat popular adalah Dovecot, dengan konfigurasi yang agak mudah dan ciri-ciri yang berkuasa.
Kita boleh menyalin lebih banyak konfigurasi lalai:
cd /usr/local/etc/dovecot
cp -R example-config/* ./
Konfigurasi ini terdiri daripada beberapa fail yang berbeza. Untuk melihat perbezaan antara konfigurasi dan lalai lalai, jalankan arahan di bawah:
sudo doveconf -n
Berikut adalah konfigurasi yang mudah:
# 2.3.2.1 (0719df592): /usr/local/etc/dovecot/dovecot.conf
# OS: FreeBSD 11.2-RELEASE amd64
# Hostname: mail.example.com
hostname = mail.example.com
mail_location = maildir:~/mail
namespace inbox {
inbox = yes
location =
mailbox Archive {
auto = create
special_use = \Archive
}
mailbox Archives {
auto = create
special_use = \Archive
}
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Junk {
auto = create
autoexpunge = 60 days
special_use = \Junk
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox "Sent Mail" {
auto = no
special_use = \Sent
}
mailbox "Sent Messages" {
auto = no
special_use = \Sent
}
mailbox Spam {
auto = no
special_use = \Junk
}
mailbox Trash {
auto = no
autoexpunge = 90 days
special_use = \Trash
}
prefix =
separator = /
}
passdb {
args = imap
driver = pam
}
ssl = required
ssl_cert = </usr/local/etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_dh = </usr/local/etc/dovecot/dh.pem
ssl_key = </usr/local/etc/letsencrypt/live/mail.example.com/privkey.pem
userdb {
driver = passwd
}
Sebilangan besar fail konfigurasi akan masuk conf.d
Orang-orang yang penting adalah 10-auth.conf
, 10-mail.conf
, dan 10-ssl.conf
.
Anda boleh mengkonfigurasi pelbagai peti mel yang anda gunakan 15-mailboxes.conf
. Apa yang anda lihat di atas adalah konfigurasi yang baik untuk banyak sistem, tetapi perbatuan anda mungkin berbeza-beza. Ia disyorkan anda bermain-main dengan ini dengan seberapa banyak pelanggan yang berbeza.
Sebilangan besar tetapan lalai akan betul. Jika anda mahu menggunakan pengguna sistem untuk mengesahkan, anda perlu mengeditnya 10-auth.conf
.
Uncomment baris berikut:
! sertakan auth-system.conf.ext
Kita mesti menjana parameter Diffie-Hellman:
sudo nohup openssl dhparam -out /usr/local/etc/dovecot/dh.pem
Nota: Ini akan mengambil masa yang lama untuk dijalankan. Jauh lebih lama daripada yang anda jangkakan.
Kita sekarang boleh memulakan Dovecot:
sudo service dovecot start
Pada ketika ini, kami mempunyai pelayan mel yang berfungsi, selamat dan relatif bebas spam.
Beberapa perkara lagi yang perlu diperhatikan dari sini adalah menggunakan SpamAssassin untuk menghilangkan spam secara heuristik, serta mencari lebih banyak senarai hitam spam yang dikeluarkan oleh sumber yang anda percayai.
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.
Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.
Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.
Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.
CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?
Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.
Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!
Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.
Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut