Rspamd — высокопроизводительная система фильтрации спама / Всеволод Стахов (University of Cambridge)
Isi kandungan:
- Prasyarat
- Pasang Redis
- Pasang Unbound
- Pasang Rspamd
- Konfigurasikan Rspamd
- Konfigurasikan Nginx
- Konfigurasikan Postfix
- Konfigurasikan Dovecot
- Buat kunci DKIM
- Tetapan DNS
- Kesimpulannya
Ini adalah bahagian ketiga Penyediaan dan mengkonfigurasi pelayan mel kami. Dalam tutorial ini, kami akan melalui pemasangan dan konfigurasi sistem penapisan spam Rspamd dan penyepaduannya ke dalam pelayan mel kami, mewujudkan rekod DNS DKIM dan DMARC.
Anda mungkin bertanya mengapa kami memilih untuk pergi dengan Rspamd dan bukan dengan Spamassassin. Rspamd lebih aktif dikekalkan dan ditulis dalam C dan ia lebih cepat daripada Spamassassin yang ditulis dalam Perl. Sebab lain ialah Rspamd datang dengan modul pemetaan DKIM supaya kami tidak perlu menggunakan perisian lain untuk menandatangani e-mel keluar kami.
Prasyarat
Sebelum meneruskan tutorial ini, pastikan anda log masuk sebagai pengguna dengan keistimewaan sudo.
Pasang Redis
Redis akan digunakan sebagai sistem penyimpanan dan caching oleh Rspamd, untuk memasang ia hanya berjalan:
Pasang Unbound
Unbound adalah resolver DNS pengesahan, rekursif, dan cache yang sangat selamat.
Tujuan utama memasang perkhidmatan ini adalah untuk mengurangkan jumlah permintaan DNS luaran. Langkah ini adalah pilihan dan boleh dilangkau.
sudo apt update
sudo apt install unbound
Tetapan lalai yang tidak diingetkan mestilah mencukupi untuk kebanyakan pelayan.
Untuk menetapkan tidak terikat sebagai resolver DNS utama server anda, jalankan arahan berikut:
sudo echo "nameserver 127.0.0.1" >> /etc/resolvconf/resolv.conf.d/head
sudo resolvconf -u
Jika anda tidak menggunakan
resolvconf
maka anda perlu mengedit fail
/etc/resolv.conf
secara manual.
Pasang Rspamd
Kami akan memasang versi terkini Rspamd stabil dari repositori rasminya.
Mulakan dengan memasang pakej yang diperlukan:
sudo apt install software-properties-common lsb-release
sudo apt install lsb-release wget
Tambah kunci GPG repositori kepada sumber yang anda gunakan menggunakan perintah wget berikut:
wget -O- https://rspamd.com/apt-stable/gpg.key | sudo apt-key add -
Dayakan repositori Rspamd dengan berjalan:
echo "deb http://rspamd.com/apt-stable/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/rspamd.list
Setelah repositori diaktifkan kemas kini indeks pakej dan pasang Rspamd menggunakan perintah berikut:
sudo apt update
sudo apt install rspamd
Konfigurasikan Rspamd
Daripada mengubah suai fail config saham kami akan membuat fail baru dalam direktori
/etc/rspamd/local.d/local.d/
yang akan menulis ganti tetapan lalai.
Secara lalai
normal worker
Rspamd
normal worker
memindai mesej e-mel didengar pada semua antara muka pada port 11333. Buat fail berikut untuk mengkonfigurasi pekerja normal Rspamd untuk mendengar hanya dengan antara muka localhost:
bind_socket = "127.0.0.1:11333";
proxy worker
mendengar di pelabuhan 11332 dan menyokong protokol militer. Untuk membolehkan Postfix berkomunikasi dengan Rspamd, kita perlu mendayakan mod militer:
bind_socket = "127.0.0.1:11332"; milter = yes; timeout = 120s; upstream "local" { default = yes; self_scan = yes; }
Seterusnya kita perlu menyediakan kata laluan untuk pelayan
controller worker
yang menyediakan akses kepada antara muka web Rspamd. Untuk menghasilkan kata laluan yang disulitkan dijalankan:
rspamadm pw --encrypt -p P4ssvv0rD
Keluaran seharusnya kelihatan seperti ini:
$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb
Jangan lupa menukar kata laluan (
P4ssvv0rD
) kepada sesuatu yang lebih selamat.
Salin kata laluan dari terminal anda dan tampalkannya ke fail konfigurasi:
/etc/rspamd/local.d/worker-controller.inc
password = "$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb";
Kemudian kami akan mengkonfigurasi Nginx sebagai proksi terbalik kepada pelayan web pekerja pengawal supaya kami dapat mengakses antara muka web Rspamd.
Tetapkan Redis sebagai backend untuk statistik Rspamd dengan menambahkan baris berikut ke file
classifier-bayes.conf
:
servers = "127.0.0.1"; backend = "redis";
Buka fail
milter_headers.conf
dan tetapkan tajuk
milter_headers.conf
:
use =;
Anda boleh mendapatkan maklumat lanjut mengenai pengetua militer di sini.
Akhir sekali, mulakan semula perkhidmatan Rspamd untuk melaksanakan perubahan:
Konfigurasikan Nginx
Di bahagian pertama siri ini, kami telah membuat blok pelayan Nginx untuk contoh PostfixAdmin.
Buka fail konfigurasi Nginx dan tambahkan arahan lokasi berikut, yang diserlahkan dalam warna kuning:
/etc/nginx/sites-enabled/mail.linuxize.com.conf
… location /rspamd { proxy_pass http://127.0.0.1:11334/; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }…
Muat semula perkhidmatan Nginx untuk perubahan yang akan dilaksanakan:
sudo systemctl reload nginx
Teruskan ke
https://mail.linuxize.com/rspamd/
, masukkan kata laluan yang anda buat sebelumnya menggunakan perintah
rspamadm pw
dan anda akan dipaparkan dengan antara muka web Rspamd.
Konfigurasikan Postfix
Kita perlu mengkonfigurasi Postfix untuk menggunakan pengintip Rspamd.
Jalankan arahan berikut untuk mengemas kini fail konfigurasi utama Postfix:
sudo postconf -e "milter_protocol = 6"
sudo postconf -e "milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}"
sudo postconf -e "milter_default_action = accept"
sudo postconf -e "smtpd_milters = inet:127.0.0.1:11332"
sudo postconf -e "non_smtpd_milters = inet:127.0.0.1:11332"
Mulakan semula perkhidmatan Postfix untuk perubahan yang berlaku:
sudo systemctl restart postfix
Konfigurasikan Dovecot
Kami telah memasang dan mengkonfigurasi Dovecot di bahagian kedua siri ini dan kini kami akan memasang modul penapisan
sieve
dan mengintegrasikan Dovecot dengan Rspamd.
Mulakan dengan memasang modul penapisan Dovecot:
sudo apt install dovecot-sieve dovecot-managesieved
Setelah pakej dipasang, buka fail berikut dan edit baris yang disorot dalam warna kuning.
/etc/dovecot/conf.d/20-lmtp.conf
… protocol lmtp { postmaster_address = [email protected] mail_plugins = $mail_plugins sieve }…
/etc/dovecot/conf.d/20-imap.conf
… protocol imap {… mail_plugins = $mail_plugins imap_quota imap_sieve… }…
/etc/dovecot/conf.d/20-managesieve.conf
… service managesieve-login { inet_listener sieve { port = 4190 }… }… service managesieve { process_limit = 1024 }…
/etc/dovecot/conf.d/90-sieve.conf
plugin {… # sieve = file:~/sieve;active=~/.dovecot.sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_before = /var/mail/vmail/sieve/global/spam-global.sieve sieve = file:/var/mail/vmail/sieve/%d/%n/scripts;active=/var/mail/vmail/sieve/%d/%n/active-script.sieve imapsieve_mailbox1_name = Spam imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_before = file:/var/mail/vmail/sieve/global/report-spam.sieve imapsieve_mailbox2_name = * imapsieve_mailbox2_from = Spam imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_before = file:/var/mail/vmail/sieve/global/report-ham.sieve sieve_pipe_bin_dir = /usr/bin sieve_global_extensions = +vnd.dovecot.pipe…. }
Simpan dan tutup fail.
Buat direktori untuk skrip penapis:
mkdir -p /var/mail/vmail/sieve/global
Buat penapis ayakan global untuk memindahkan e-mel yang ditandakan sebagai spam ke direktori
Spam
:
require; if anyof(header:contains "YES", header:contains "Yes", header:contains "*** SPAM ***") { fileinto:create "Spam"; stop; }
Skrip dua bilah berikut akan dicetuskan apabila anda memindahkan e-mel masuk atau keluar dari direktori
Spam
:
require; pipe:copy "rspamc";
/var/mail/vmail/sieve/global/report-ham.sieve
require; pipe:copy "rspamc";
Mulakan semula perkhidmatan Dovecot untuk perubahan yang berlaku:
sudo systemctl restart dovecot
Menyusun skrip saringan dan tetapkan kebenaran yang betul:
sievec /var/mail/vmail/sieve/global/spam-global.sieve
sievec /var/mail/vmail/sieve/global/report-spam.sieve
sievec /var/mail/vmail/sieve/global/report-ham.sieve
sudo chown -R vmail: /var/mail/vmail/sieve/
Buat kunci DKIM
Mail Dikenal DomainKeys (DKIM) adalah kaedah pengesahan e-mel yang menambahkan tandatangan kriptografi kepada pengepala mesej keluar. Ia membenarkan penerima untuk mengesahkan bahawa e-mel yang mendakwa berasal dari domain tertentu memang diberi kuasa oleh pemilik domain tersebut. Tujuan utama ini adalah untuk menghalang mesej e-mel palsu.
Kita boleh mempunyai kunci DKIM yang berbeza untuk semua domain kami dan juga kekunci berganda untuk satu domain tetapi untuk kesederhanaan artikel ini kita akan menggunakan kunci DKIM tunggal yang kemudiannya boleh digunakan untuk semua domain baru.
Buat direktori baru untuk menyimpan kunci DKIM dan menghasilkan keypair DKIM baru menggunakan utiliti
rspamadm
:
sudo mkdir /var/lib/rspamd/dkim/
rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.key | sudo tee -a /var/lib/rspamd/dkim/mail.pub
rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.key | sudo tee -a /var/lib/rspamd/dkim/mail.pub
Dalam contoh di atas, kami menggunakan
mail
sebagai pemilih DKIM.
Anda kini perlu mempunyai dua fail baru dalam direktori
/var/lib/rspamd/dkim/
,
mail.key
yang merupakan fail utama kami dan
mail.pub
file yang mengandungi kunci awam DKIM. Kami akan mengemas kini rekod zon DNS kami kemudian.
Tetapkan pemilikan dan keizinan yang betul:
sudo chown -R _rspamd: /var/lib/rspamd/dkim
sudo chmod 440 /var/lib/rspamd/dkim/*
Sekarang kita perlu memberitahu Rspamd di mana hendak mencari kunci DKIM, nama pemilih dan baris terakhir akan membolehkan pendaftaran DKIM untuk alamat pengirim alias. Untuk melakukan itu buat fail baru dengan kandungan berikut:
/etc/rspamd/local.d/dkim_signing.conf
selector = "mail"; path = "/var/lib/rspamd/dkim/$selector.key"; allow_username_mismatch = true;
Rspamd juga menyokong penandatanganan tanda tangan Rantai yang Diterima Terlibat (ARC). Anda boleh mendapatkan lebih banyak maklumat tentang spesifikasi ARC di sini.
Rspamd menggunakan modul DKIM untuk menangani tandatangan ARC supaya kita dapat menyalin konfigurasi sebelumnya:
sudo cp /etc/rspamd/local.d/dkim_signing.conf /etc/rspamd/local.d/arc.conf
Mulakan semula perkhidmatan Rspamd untuk melaksanakan perubahan:
Tetapan DNS
Kami telah membuat pasangan kunci DKIM dan kini kami perlu mengemas kini zon DNS kami. Kunci awam
mail.pub
disimpan dalam fail
mail.pub
. Kandungan fail harus kelihatan seperti ini:
cat /var/lib/rspamd/dkim/mail.pub
mail._domainkey IN TXT ("v=DKIM1; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4yl" "nVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB");
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB
Kami juga akan membuat Pengesahan Mesej berasaskan Domain (
DMARC
) yang direka untuk memberitahu pelayan penerima sama ada atau tidak untuk menerima e-mel daripada pengirim tertentu. Pada dasarnya ia akan melindungi domain anda daripada pemalsuan domain langsung dan memperbaiki reputasi domain anda.
kami akan melaksanakan dasar DMARC berikut:
_dmarc IN TXT "v=DMARC1; p=none; adkim=r; aspf=r;"
Mari kita memecahkan rekod DMARC di atas:
-
v=DMARC1- Ini adalah pengenal DMARCp=none- Ini memberitahu penerima apa yang perlu dilakukan dengan mesej yang gagal DMARC. Dalam kes kita, ia tidak akan ada yang bermaksud tidak mengambil tindakan jika mesej gagal DMARC. Anda juga boleh menggunakan 'menolak' atauquarantineadkim=rdanaspf=r- Penjajaranaspf=rdanSPF, untuk Relax dansuntuk Strict, dalam kes kami, kami menggunakan Penjajaran Santai untuk kedua-dua DKIM dan SPF.
Sama seperti sebelumnya jika anda menjalankan pelayan DNS Bind anda sendiri, anda hanya perlu menyalin dan menyisipkan rekod tersebut ke dalam fail zon domain anda dan jika anda menggunakan pembekal DNS lain, anda perlu mencipta rekod TXT dengan
_dmarc
sebagai nama dan
v=DMARC1; p=none; adkim=r; aspf=r;
v=DMARC1; p=none; adkim=r; aspf=r;
sebagai nilai / kandungan.
Ia mungkin mengambil sedikit masa untuk perubahan DNS untuk disebarkan. Anda boleh menyemak sama ada rekod telah disebarkan menggunakan perintah penggalian:
dig mail._domainkey.linuxize.com TXT +short
"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGa" "VuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFdepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB"
dig _dmarc.linuxize.com TXT +short
"v=DMARC1; p=none; adkim=r; aspf=r;"
Anda juga boleh menyemak dasar DMARC domain anda atau membuat dasar DMARC anda sendiri di sini.
Kesimpulannya
Itu sahaja untuk bahagian tutorial ini. Di bahagian seterusnya dalam siri ini, kami akan meneruskan pemasangan dan konfigurasi RoundCube.
mail server postfix dovecot dns rspamdSiaran ini adalah sebahagian daripada Penyediaan dan mengkonfigurasi siri pelayan mel.
Jawatan lain dalam siri ini:
• Sediakan pelayan mel dengan PostfixAdmin • Pasang dan konfigurasi Postfix dan Dovecot • Pasang dan Mengintegrasikan Rspamd • Pasang dan Konfigurasi Webmail RoundcubePenyokong WiMax dan LTE Sediakan Pertempuran
Penyokong WiMax dan LTE akan melakukan yang terbaik untuk menunjukkan momentum di belakang teknologi masing-masing di Dunia Mudah Alih ...
Sediakan dan gunakan aplikasi dan sambungan id sentuh pada iphone
Ketahui cara untuk menyediakan ID Sentuh pada iPhone anda dan menggunakannya dengan apl yang menyokongnya dan melalui sambungan aplikasi dalam iOS 8.
Pasang dan konfigurasi postfix dan dovecot
Postfix adalah ejen pemindahan mel (MTA) sumber terbuka, perkhidmatan yang digunakan untuk menghantar dan menerima e-mel. Dovecot adalah pelayan IMAP / POP3 dan dalam persediaan kami, ia juga akan mengendalikan penghantaran tempatan dan pengesahan pengguna.







