Android

Pasang dan sediakan rspamd

Rspamd — высокопроизводительная система фильтрации спама / Всеволод Стахов (University of Cambridge)

Rspamd — высокопроизводительная система фильтрации спама / Всеволод Стахов (University of Cambridge)

Isi kandungan:

Anonim

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:

sudo apt install redis-server

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:

/etc/rspamd/local.d/worker-normal.inc

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:

/etc/rspamd/local.d/worker-proxy.inc

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 :

/etc/rspamd/local.d/classifier-bayes.conf

servers = "127.0.0.1"; backend = "redis";

Buka fail milter_headers.conf dan tetapkan tajuk milter_headers.conf :

/etc/rspamd/local.d/milter_headers.conf

use =;

Anda boleh mendapatkan maklumat lanjut mengenai pengetua militer di sini.

Akhir sekali, mulakan semula perkhidmatan Rspamd untuk melaksanakan perubahan:

sudo systemctl restart rspamd

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 :

/var/mail/vmail/sieve/global/spam-global.sieve

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 :

/var/mail/vmail/sieve/global/report-spam.sieve

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:

sudo systemctl restart rspamd

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 DMARC p=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' atau quarantine adkim=r dan aspf=r - Penjajaran aspf=r dan SPF , untuk Relax dan s untuk 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 rspamd

Siaran 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 Roundcube