Korespondencja e-mail to coś bez czego większość z nas nie wyobraża sobie dzisiaj pracy, nie wyobraża sobie komunikacji. Wiadomości elektroniczne skutecznie wypierają tradycyjną pocztę papierową nie tylko ze względu na koszty, ale przede wszystkim z uwagi na szybkość oraz niezawodność tego sposobu komunikacji. Bezsprzecznym jest fakt, że kiedy nadajemy wiadomość e-mail do osoby na drugim końcu świata, wiadomość ta dociera błyskawicznie w każdy zakątek kuli ziemskiej. 

To co jest jednak tak atrakcyjne dla nas jako normalnych użytkowników, pracowników jest także ogromnym wyzwaniem dla administratorów. Wyzwaniami dla nich są m.in. utrzymywanie serwera poczty elektronicznej w odpowiedniej higienie, zapobieganie niechcianym wiadomościom, bezpieczeństwo użytkowników,  zabezpieczenia antywirusowe i wiele innych. 

Niestety prawdą jest, że ogromna większość krążących po globalnej sieci teleinformatycznej wiadomości e-mail to spam, to śmieci, to niechciana wreszcie korespondencja. To nie są tylko pożądane newslettery, na które zapisujemy się w sposób świadomy czekając na atrakcyjne informacje od kontrahentów, sklepów czy marek. To w ogromnej mierze wiadomości niezamówione, szkodliwe, wirusowe, phishingowe. Dlatego jedną z ważniejszych rzeczy, na którą musimy zwrócić uwagę administrując serwerem poczty elektronicznej jest zabezpieczenie go przed niechcianymi i szkodliwymi wiadomościami. 

W dzisiejszym artykule skupimy się na rozwiązaniach zabezpieczających przed spamem i wirusami. 

Przygotowania 

Na szczęście mamy szereg rozwiązań OpenSource, dzięki którym w miarę skutecznie da się osiągnąć zamierzony cel i podnieść znacznie bezpieczeństwo. 

Filtr antyspamowy – SpamAssassin 

SpamAssassin jest najbardziej popularnym rozwiązaniem filtrującym spam i niechciane wiadomości. Nie ma chyba nikogo, kto nie kojarzyłby tego rozwiązania. Spotykane jest w firmach hostingowych, na prywatnych serwerach i niemal wszędzie gdzie spam jest niechciany. 

Filtr antywirusowy – Clamav 

Znany i ceniony za swoją skuteczność oraz za niewielkie obciążenie jakie generuje w systemie. Często aktualizowane bazy wirusów, ich liczba oraz doskonała integracja z innymi rozwiązaniami sprawiają, że clamav jest najchętniej wybieranym antywirusem w systemach Linux. 

Filtr treści – Amavis 

Najpopularniejsze tego typu rozwiązanie OpenSource. Amavis jest darmowym filtrem treści, który doskonale integruje się ze SpamAssassinem i Clamavem. Jest nieodzownym elementem każdego systemu antyspamowego i antywirusowego w systemach poczty elektronicznej opartych o technologię OpenSource. 

Amavis dekoduje, filtruje i posiada interfejsy do pozostałych rozwiązań. Jest on dopełnieniem całego systemu ochrony. 

Co będzie nam potrzebne? 

Mnogość rozwiązań i konfiguracji systemów poczty elektronicznej jest ogromna. W tym rozdziale zajmiemy się typowym rozwiązaniem, które jest najczęściej spotykane w branży tj: Postfixem i integracją go z wspomnianymi systemami. 

  • Serwer z systemem Linux 
  • Serwer poczty e-mail Postfix 
  • Poprawnie ustawiony hostname na serwerze (hostname i hostname -f) 

Instalacja niezbędnych pakietów 

SpamAssassin, Amavis, Clamav 

apt-get install amavisd-new spamassassin clamav-daemon 

Instalujemy pakiety dodatkowe jak Razor i Pyzor podnoszące skuteczność filtrowania SpamAssassina. 

apt-get install libnet-dns-perl libmail-spf-perl pyzor razor 

Instalujemy pakiety dzięki, którym aplikacja będzie mogła rozpakowywać załączniki w wiadomościach i skanować archiwa. 

apt-get install arj bzip2 cabextract cpio file gzip nomarch pax rar unrar unzip zip 

Konfiguracja Clamav – skanera Antywirusowego 

Dodajemy odpowiedniego użytkownika i grupę na której będzie pracował demon: 

adduser clamav amavis 

adduser amavis clamav 

Konfiguracja SpamAssassina – skanera Antyspamowego 

Z uwagi na fakt, że w naszej instancji będziemy korzystali z filtra treści Amavis’a, nie będzie konieczności oddzielnego uruchamiania SpamAssassina, bowiem Amavis dysponuje własnym demonem do uruchamiania i skanowania. 

su – amavis -s /bin/bash 

razor-admin -create 

razor-admin -register 

Konfiguracja Amavisa – Filtra treści  

Musimy na początek odkomentować kilka linijek: 

nano /etc/amavis/conf.d/15-content_filter_mode 

@bypass_virus_checks_maps = ( 

   \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); 

@bypass_spam_checks_maps = ( 

   \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); 

Restartujemy serwis: 

systemctl restart amavis 

Integracja z postfixem 

Aby nasz serwer poczty elektronicznej (Postfix) wiedział co zrobić z wiadomościami email po nadejściu, tj. aby wiedział jak jest filtrować konieczne będzie dodanie kilku linijek. 

Na początek w głównym pliku konfiguracyjnym min.cf: 

nano /etc/postfix/main.cf 

content_filter = smtp-amavis:[127.0.0.1]:10024 

W kolejnym kroku konfigurujemy plik master.cf 

nano /etc/postfix/master.cf 

Dodajemy na końcu pliku następujący zestaw: 

smtp-amavis     unix    –       –       –       –       2       smtp 

        -o smtp_data_done_timeout=1200 

        -o smtp_send_xforward_command=yes 

        -o disable_dns_lookups=yes 

        -o max_use=20 

127.0.0.1:10025 inet    n       –       –       –       –       smtpd 

        -o content_filter= 

        -o local_recipient_maps= 

        -o relay_recipient_maps= 

        -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_data_restrictions=reject_unauth_pipelining 

        -o smtpd_end_of_data_restrictions= 

        -o mynetworks=127.0.0.0/8 

        -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 

W kolejnym kroku dodajemy do transportu “pickup” dwie opcje dodatkowe. 

        -o content_filter= 

        -o receive_override_options=no_header_body_checks 

Dzięki temu pierwsza linijka content-filter w pliku main.cf będzie działać. Transport “pickup” ma za zadanie “podejmować” wiadomości nadchodzące do serwera postfix i działać dalej. W tym przypadku przepuszczać je przez filtr treści amavis. 

Restartujemy serwis Postfixa: 

systemctl restart postfix 

Testujemy  

Zanim oddamy serwer do działania użytkownikom warto sprawdzić czy wszystko działa poprawnie. W tym celu można skorzystać z narzędzi w systemie Linux, np. telnet. 

telnet localhost 10024 

Trying 127.0.0.1… 

Connected to localhost. 

Escape character is '^]'. 

220 [127.0.0.1] ESMTP amavisd-new service ready 

Powinien zgłosić nam się demon Amavisa. 

Podsumowanie 

Przedstawione dzisiaj konfiguracje i ustawienia nie wyczerpują oczywiście w pełni tego tematu. Istnieją jeszcze dodatkowe opcje jak konfiguracja wydajności silników, konfiguracja punktów spamowych, konfiguracja podejmowania wiadomości i wiele innych. W tym rozdziale została przedstawiona zajawka i wstępniak do tematu filtrowania niechcianych wiadomości i podjęcia tematu walki ze spamem i niechcianymi wiadomościami. 

Ilość niechcianej, złośliwej korespondencji, która trafia do nas w ostatnich latach sprawia, że w tej nierównej walce pozyskiwania w nie do końca legalny sposób naszych e-maili musimy coraz mocniej zbroić i zabezpieczeń przede wszystkim naszych klientów, pracowników jak również siebie samych, dlatego zachęcam do skorzystania z powyższych tipów.