Android

Zainstaluj i zintegruj rspamd

BitNotice #108 - Rspamd: Server-SPAM-Filter mit Postfix

BitNotice #108 - Rspamd: Server-SPAM-Filter mit Postfix

Spisu treści:

Anonim

To jest trzecia część naszej Konfiguracji i konfiguracji serwera poczty. W tym samouczku omówimy instalację i konfigurację systemu filtrowania spamu Rspamd oraz jego integrację z naszym serwerem pocztowym, tworząc rekordy DNS DKIM i DMARC.

Możesz zapytać, dlaczego wybraliśmy Rspamd, a nie Spamassassin. Rspamd jest aktywniej utrzymywany i pisany w C i jest znacznie szybszy niż Spamassassin, który jest napisany w Perlu. Innym powodem jest to, że Rspamd jest wyposażony w moduł podpisywania DKIM, więc nie będziemy musieli używać innego oprogramowania do podpisywania wychodzących wiadomości e-mail.

Wymagania wstępne

Przed kontynuowaniem tego samouczka upewnij się, że jesteś zalogowany jako użytkownik z uprawnieniami sudo.

Zainstaluj Redis

Redis będzie używany przez Rspamd jako system przechowywania i buforowania, aby go zainstalować, wystarczy uruchomić:

sudo apt install redis-server

Zainstaluj bez ograniczeń

Bez ograniczeń to bardzo bezpieczny mechanizm sprawdzania poprawności, rekurencji i buforowania DNS.

Głównym celem instalacji tej usługi jest zmniejszenie liczby zewnętrznych żądań DNS. Ten krok jest opcjonalny i można go pominąć.

sudo apt update sudo apt install unbound

Domyślne ustawienia niezwiązane powinny być wystarczające dla większości serwerów.

Aby ustawić niezwiązany jako główny serwer rozpoznawania nazw DNS serwera, uruchom następujące polecenia:

sudo echo "nameserver 127.0.0.1" >> /etc/resolvconf/resolv.conf.d/head sudo resolvconf -u Jeśli nie korzystasz z resolvconf , musisz ręcznie edytować plik /etc/resolv.conf .

Zainstaluj Rspamd

Zainstalujemy najnowszą stabilną wersję Rspamd z jego oficjalnego repozytorium.

Zacznij od zainstalowania niezbędnych pakietów:

sudo apt install software-properties-common lsb-release sudo apt install lsb-release wget

Dodaj klucz GPG repozytorium do breloka źródeł apt, używając następującego polecenia wget:

wget -O- https://rspamd.com/apt-stable/gpg.key | sudo apt-key add -

Włącz repozytorium Rspamd, uruchamiając:

echo "deb http://rspamd.com/apt-stable/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/rspamd.list

Po włączeniu repozytorium zaktualizuj indeks pakietu i zainstaluj Rspamd za pomocą następujących poleceń:

sudo apt update sudo apt install rspamd

Skonfiguruj Rspamd

Zamiast modyfikować standardowe pliki konfiguracyjne, utworzymy nowe pliki w katalogu /etc/rspamd/local.d/local.d/ które /etc/rspamd/local.d/local.d/ ustawienia domyślne.

Domyślnie normal worker Rspamd, normal worker skanujący wiadomości e-mail, nasłuchuje na wszystkich interfejsach na porcie 11333. Utwórz następujący plik, aby skonfigurować zwykłego pracownika roboczego Rspamd do nasłuchiwania tylko interfejsu localhost:

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

bind_socket = "127.0.0.1:11333";

Pracownik proxy worker nasłuchuje na porcie 11332 i obsługuje protokół milter. Aby Postfix mógł komunikować się z Rspamd, musimy włączyć tryb miltera:

/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; }

Następnie musimy ustawić hasło do serwera roboczego controller worker który zapewnia dostęp do interfejsu internetowego Rspamd. Aby wygenerować zaszyfrowane hasło, uruchom:

rspamadm pw --encrypt -p P4ssvv0rD

Dane wyjściowe powinny wyglądać mniej więcej tak:

$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb Nie zapomnij zmienić hasła ( P4ssvv0rD ) na coś bardziej bezpiecznego.

Skopiuj hasło z terminala i wklej je do pliku konfiguracyjnego:

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

password = "$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb";

Później skonfigurujemy Nginx jako odwrotne proxy do serwera WWW kontrolera, abyśmy mogli uzyskać dostęp do interfejsu internetowego Rspamd.

Ustaw Redis jako backend dla statystyk Rspamd, dodając następujące wiersze do pliku classifier-bayes.conf :

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

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

Otwórz plik milter_headers.conf i ustaw nagłówki milter:

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

use =;

Więcej informacji na temat nagłówków milter można znaleźć tutaj.

Na koniec zrestartuj usługę Rspamd, aby zmiany odniosły skutek:

sudo systemctl restart rspamd

Skonfiguruj Nginx

W pierwszej części tej serii utworzyliśmy blok serwera Nginx dla instancji PostfixAdmin.

Otwórz plik konfiguracyjny Nginx i dodaj następującą dyrektywę lokalizacji, tę wyróżnioną na żółto:

/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; }…

Ponownie załaduj usługę Nginx, aby zmiany odniosły skutek:

sudo systemctl reload nginx

Udaj się na https://mail.linuxize.com/rspamd/ , wprowadź hasło wygenerowane wcześniej za pomocą komendy rspamadm pw a zostanie wyświetlony interfejs internetowy Rspamd.

Skonfiguruj Postfix

Musimy skonfigurować Postfix, aby korzystał z Rspamd milter.

Uruchom następujące polecenie, aby zaktualizować główny plik konfiguracyjny 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"

Uruchom ponownie usługę Postfix, aby zmiany odniosły skutek:

sudo systemctl restart postfix

Skonfiguruj Dovecot

Zainstalowaliśmy i skonfigurowaliśmy Dovecot w drugiej części tej serii, a teraz zainstalujemy moduł filtrowania sieve i zintegrujemy Dovecot z Rspamd.

Zacznij od instalacji modułu filtrującego Dovecot:

sudo apt install dovecot-sieve dovecot-managesieved

Po zainstalowaniu pakietów otwórz następujące pliki i edytuj linie zaznaczone na żółto.

/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…. }

Zapisz i zamknij pliki.

Utwórz katalog dla skryptów sitowych:

mkdir -p /var/mail/vmail/sieve/global

Utwórz globalny filtr sitowy, aby przenieść wiadomości e-mail oznaczone jako spam do katalogu 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; }

Następujące dwa skrypty sita będą uruchamiane za każdym razem, gdy przenosisz wiadomość e-mail do lub ze katalogu 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";

Uruchom ponownie usługę Dovecot, aby zmiany odniosły skutek:

sudo systemctl restart dovecot

Skompiluj skrypty sitowe i ustaw odpowiednie uprawnienia:

sievec /var/mail/vmail/sieve/global/spam-global.sieve sievec /var/mail/vmail/sieve/global/report-spam.sieve 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/

Utwórz klucze DKIM

DomainKeys Identified Mail (DKIM) to metoda uwierzytelniania wiadomości e-mail, która dodaje podpis kryptograficzny do nagłówków wiadomości wychodzących. Pozwala to odbiorcy zweryfikować, czy wiadomość e-mail podająca się za pochodzącą z określonej domeny została rzeczywiście autoryzowana przez właściciela tej domeny. Głównym celem tego jest zapobieganie fałszywym wiadomościom e-mail.

Możemy mieć różne klucze DKIM dla wszystkich naszych domen, a nawet wiele kluczy dla jednej domeny, ale dla uproszczenia tego artykułu użyjemy jednego klucza DKIM, którego później można użyć dla wszystkich nowych domen.

Utwórz nowy katalog do przechowywania klucza DKIM i wygeneruj nową parę kluczy DKIM za pomocą narzędzia 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

W powyższym przykładzie używamy mail jako selektora DKIM.

Powinieneś teraz mieć dwa nowe pliki w katalogu /var/lib/rspamd/dkim/ , mail.key który jest naszym plikiem klucza prywatnego, i mail.pub plik zawierający klucz publiczny DKIM. Później zaktualizujemy nasze rekordy strefy DNS.

Ustaw poprawną własność i uprawnienia:

sudo chown -R _rspamd: /var/lib/rspamd/dkim sudo chmod 440 /var/lib/rspamd/dkim/*

Teraz musimy powiedzieć Rspamd, gdzie ma szukać klucza DKIM, nazwy selektora i ostatniej linii umożliwi podpisanie DKIM dla adresów nadawców aliasów. W tym celu utwórz nowy plik o następującej treści:

/etc/rspamd/local.d/dkim_signing.conf

selector = "mail"; path = "/var/lib/rspamd/dkim/$selector.key"; allow_username_mismatch = true;

Rspamd obsługuje również podpisywanie podpisów uwierzytelnionego łańcucha odebranego (ARC). Więcej informacji na temat specyfikacji ARC można znaleźć tutaj.

Rspamd używa modułu DKIM do obsługi podpisów ARC, dzięki czemu możemy po prostu skopiować poprzednią konfigurację:

sudo cp /etc/rspamd/local.d/dkim_signing.conf /etc/rspamd/local.d/arc.conf

Uruchom ponownie usługę Rspamd, aby zmiany odniosły skutek:

sudo systemctl restart rspamd

Ustawienia DNS

Stworzyliśmy już parę kluczy DKIM i teraz musimy zaktualizować naszą strefę DNS. Klucz publiczny DKIM jest przechowywany w pliku mail.pub . Zawartość pliku powinna wyglądać następująco:

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

Stworzymy również oparte na domenie uwierzytelnianie wiadomości ( DMARC ), które ma na celu poinformowanie serwera odbierającego, czy przyjąć wiadomość e-mail od określonego nadawcy. Zasadniczo będzie chronić twoją domenę przed bezpośrednim fałszowaniem domen i poprawi jej reputację.

będziemy wdrażać następujące zasady DMARC:

_dmarc IN TXT "v=DMARC1; p=none; adkim=r; aspf=r;"

Przełammy powyższy rekord DMARC:

  • v=DMARC1 - To jest identyfikator DMARC p=none - Mówi odbiorcy, co zrobić z komunikatami, które zawiodły DMARC. W naszym przypadku jest ustawiona na none, co oznacza, że ​​nie podejmie żadnych działań, jeśli komunikat zawiedzie DMARC. Możesz także użyć opcji „odrzuć” lub quarantine adkim=r aspf=r - wyrównanie DKIM i SPF , r dla Relaxed i s dla Strict, w naszym przypadku używamy Relaxed Alignment dla DKIM i SPF.

Tak samo jak poprzednio, jeśli prowadzisz własny serwer Bind DNS, wystarczy skopiować i wkleić rekord do pliku strefy domeny, a jeśli używasz innego dostawcy DNS, musisz utworzyć rekord TXT z _dmarc jako nazwą i v=DMARC1; p=none; adkim=r; aspf=r; v=DMARC1; p=none; adkim=r; aspf=r; jako wartość / treść.

Rozpowszechnienie zmian DNS może chwilę potrwać. Możesz sprawdzić, czy rekordy rozprzestrzeniły się za pomocą polecenia dig:

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;"

Możesz także sprawdzić aktualną politykę DMARC swojej domeny lub stworzyć własną politykę DMARC tutaj.

Wniosek

To tyle w tej części samouczka. W następnej części tej serii będziemy kontynuować instalację i konfigurację RoundCube.

serwer pocztowy postfix dovecot dns rspamd

Ten post jest częścią serii Konfigurowanie i konfigurowanie serwera poczty.

Inne posty z tej serii:

• Skonfiguruj serwer pocztowy za pomocą PostfixAdmin • Zainstaluj i skonfiguruj Postfix i Dovecot • Zainstaluj i zintegruj Rspamd • Zainstaluj i skonfiguruj Roundcube Webmail