Własny serwer – cz.7: Antywirus i Antyspam
Ostatnia aktualizacja: 16 września 2023, 15:16
Ta część konfiguracji własnego serwera nie jest obowiązkowa, ale mocno zalecana dla osób, które zainstalowały serwer poczty SMTP w części 5 oraz serwer poczty IMAP w części 6.
Co to jest Antywirus?
Z Wikipedii:
Program antywirusowy – program komputerowy, którego zadaniem jest wykrywanie, zwalczanie i usuwanie wirusów komputerowych. Współcześnie najczęściej jest to element pakietu programów chroniących komputer także przed wieloma innymi zagrożeniami.
Co to jest Antyspam?
Z Wikipedii:
Antyspam – oprogramowanie, które ochrania komputer przed spamem, czyli niechcianymi lub niepotrzebnymi wiadomościami e-mail. Zaawansowane oprogramowanie chroni też przed phishingiem, czyli wiadomościami e-mail pochodzącymi od oszustów podszywających się pod zaufanych nadawców.
W naszym przypadku, program antywirusowy i antyspamowy będzie chronił naszą skrzynkę pocztową przed wirusami i innymi śmieciami dostarczanymi wraz z pocztą.
Do tego celu posłużą nam aplikacje: Amavis, ClamAV i SpamAssassin.
Amavis (A Mail Virus Scanner) to wydajny interfejs między agentem przesyłania wiadomości (MTA), takim jak Postfix, a filtrami treści.
ClamAV to zestaw narzędzi antywirusowych, dostępnych na licencji GPL działający pod systemami uniksowymi. ClamAV jest przeznaczony głównie do integracji z serwerami pocztowymi.
SpamAssassin to napisany głównie w Perlu zestaw skryptów do analizy zawartości poczty elektronicznej i oceny prawdopodobieństwa czy dana wiadomość jest spamem, czy też nie.
Ważne!
Amavis i ClamAV wymagają co najmniej 1.3 GB wolnej pamięci RAM na serwerze. Cały stos serwerów pocztowych (Postfix, Dovecot, Amavis, ClamAV, SpamAssassin, OpenDKIM, MySQL/MariaDB, PostfixAdmin i Roundcube Webmail) wymaga co najmniej 3 GB pamięci RAM do płynnego działania.
Instalacja Amavis
apt install amavisd-new
Sprwdź czy usługa działa:
systemctl status amavis
Jeśli nie działa:
systemctl start amavis
systemctl enable amavis
Domyślnie nasłuchuje na 127.0.0.1:10024, co widać z:
netstat -lnpt | grep amavis
Wirusy są zwykle rozpowszechniane jako załączniki do wiadomości e-mail. Zainstaluj następujące pakiety dla programu Amavis, aby wyodrębnić i przeskanować pliki archiwów z wiadomości e-mail, takie jak pliki .7z, .cab, .doc, .exe, .iso, .jar i .rar:
apt install arj bzip2 cabextract cpio rpm2cpio file gzip lhasa nomarch pax rar unrar p7zip-full unzip zip lrzip lzip liblz4-tool lzop unrar-free
Następnie wyedytuj plik:
nano /etc/amavis/conf.d/05-node_id
zmieniając:
#$myhostname = "mail.example.com";
na domenę mailową (tutaj: mail.linuxiarze.pl):
$myhostname = "mail.linuxiarze.pl";
Zrestartuj Amavis:
systemctl restart amavis
Następnie zintegruj serwer poczty IMAP z Amavis:
nano /etc/postfix/main.cf
dodając na końcu:
content_filter = smtp-amavis:[127.0.0.1]:10024
smtpd_proxy_options = speed_adjust
Następnie wyedytuj plik master:
nano /etc/postfix/master.cf
dodając na koniec pliku:
smtp-amavis unix - - n - 2 smtp
-o syslog_name=postfix/amavis
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
-o smtp_tls_security_level=none
127.0.0.1:10025 inet n - n - - smtpd
-o syslog_name=postfix/10025
-o content_filter=
-o mynetworks_style=host
-o mynetworks=127.0.0.0/8
-o local_recipient_maps=
-o relay_recipient_maps=
-o strict_rfc821_envelopes=yes
-o smtp_tls_security_level=none
-o smtpd_tls_security_level=none
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_end_of_data_restrictions=
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings
Zrestartuj Postfix:
systemctl restart postfix
Instalacja ClamAV
apt install clamav clamav-daemon
Sprawdź status clamav-freshclam:
systemctl status clamav-freshclam
oraz clamav-daemon:
systemctl status clamav-daemon
Jeśli któryś z powyższych nie działa, uruchom go lub zrestartuj.
Następnie zintegruj Amavis z ClamAV, edytując plik:
nano /etc/amavis/conf.d/15-content_filter_mode
aby odkomentować poniższy fragment:
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
Dodaj użytkownika clamav do grupy amavis:
adduser clamav amavis
Zrestartuj Amavis i ClamAV:
systemctl restart amavis clamav-daemon
ClamAV może teraz skanować zarówno przychodzące, jak i wychodzące wiadomości e-mail. Amavis nasłuchuje na porcie 10024 zarówno przychodzące, jak i wychodzące wiadomości e-mail, jednak dobrą praktyką jest używanie innego portu, takiego jak 10026, do przesyłania wiadomości e-mail od uwierzytelnionych użytkowników. Wyedytuj plik konfiguracyjny Amavis:
nano /etc/amavis/conf.d/50-user
zmieniając linię dotyczącą portów na:
$inet_socket_port = [10024,10026];
oraz dodaj:
$interface_policy{'10026'} = 'ORIGINATING';
$policy_bank{'ORIGINATING'} = { # mail supposedly originating from our users
originating => 1, # declare that mail was submitted by our smtp client
allow_disclaimers => 1, # enables disclaimer insertion if available
# notify administrator of locally originating malware
virus_admin_maps => ["virusalert\@$mydomain"],
spam_admin_maps => ["virusalert\@$mydomain"],
warnbadhsender => 1,
# force MTA conversion to 7-bit (e.g. before DKIM signing)
smtpd_discard_ehlo_keywords => ['8BITMIME'],
bypass_banned_checks_maps => [1], # allow sending any file names and types
terminate_dsn_on_notify_success => 0, # don't remove NOTIFY=SUCCESS option
};
Zrestartuj Amavis:
systemctl restart amavis
Następnie dodaj do pliku konfiguracyjnego Postfix:
nano /etc/postfix/master.cf
w dwóch sekcjach: submission oraz smtps:
-o content_filter=smtp-amavis:[127.0.0.1]:10026
Zrestartuj Postfix:
systemctl restart postfix
Instalacja SpamAssassin
apt install spamassassin libnet-dns-perl libmail-spf-perl pyzor razor
Wyedytuj plik konfiguracyjny Amavis:
nano /etc/amavis/conf.d/15-content_filter_mode
odkomentowując linie:
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
Zrestartuj Amavis:
systemctl restart amavis
Na tym możemy zakończyć podstawową konfigurację aplikacji antywirusowej i antyspamowej na serwerze pocztowym z Debianem.
W przypadku niejasności, jak zwykle odsyłam do stron man:
man amavis
man clamav
man spamassassin
man postfix
W kolejnej, ósmej już części cyklu Własny Serwer, postawimy serwer repozytoriów z własnymi pakietami deb, które można oferować użytkownikom Debiana (i Ubuntu).