BitNotice #108 - Rspamd: Server-SPAM-Filter mit Postfix
Spisu treści:
- Wymagania wstępne
- Zainstaluj Redis
- Zainstaluj bez ograniczeń
- Zainstaluj Rspamd
- Skonfiguruj Rspamd
- Skonfiguruj Nginx
- Skonfiguruj Postfix
- Skonfiguruj Dovecot
- Utwórz klucze DKIM
- Ustawienia DNS
- Wniosek
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ć:
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:
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:
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
:
servers = "127.0.0.1"; backend = "redis";
Otwórz plik
milter_headers.conf
i ustaw nagłówki milter:
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:
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
:
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
:
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:
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 DMARCp=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ć” lubquarantine
adkim=r
aspf=r
- wyrównanieDKIM
iSPF
,r
dla Relaxed is
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 rspamdTen 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 WebmailZainstaluj, zainstaluj ponownie, uaktualnij, odinstaluj, napraw Windows 7 / Vista / Xp
Microsoft uruchomił nowy strona internetowa poświęcona wyłącznie instalowaniu, ponownemu instalowaniu, aktualizowaniu lub odinstalowywaniu systemu Windows 7, Windows Vista i Windows XP.
NirLauncher: Zintegruj SysInternal Suite z narzędziami NirSoft
NirLauncher to pakiet ponad 100 przenośnych darmowych programów dla systemu Windows, wszystkie zostały opracowane na stronie internetowej NirSoft w ciągu ostatnich kilku lat.
Zintegruj sprawdzanie pisowni w każdej aplikacji Windows z tinyspell
Dowiedz się, jak zintegrować sprawdzanie pisowni w każdej aplikacji Windows z tinySpell.