SVN: PLD-doc/book/pl_book__uslugi/pl_uslugi_poczta__exim.sec
sardzent
sardzent at pld-linux.org
Tue Sep 26 23:53:11 CEST 2006
Author: sardzent
Date: Tue Sep 26 23:53:11 2006
New Revision: 7814
Modified:
PLD-doc/book/pl_book__uslugi/pl_uslugi_poczta__exim.sec
Log:
- added about HELO
Modified: PLD-doc/book/pl_book__uslugi/pl_uslugi_poczta__exim.sec
==============================================================================
--- PLD-doc/book/pl_book__uslugi/pl_uslugi_poczta__exim.sec (original)
+++ PLD-doc/book/pl_book__uslugi/pl_uslugi_poczta__exim.sec Tue Sep 26 23:53:11 2006
@@ -641,58 +641,167 @@
</para>
</section>
<section id="uslugi_exim_spam">
- <title>Filtrowanie spamu</title>
+ <title>Walka ze spamem</title>
<para>Zjawisko spamu jest niezwykle uciążliwe. W niektórych Stanach w USA
traktowane jest w kategoriach kryminalnych. Zapewne znasz jego
definicję lub przynajmniej wiesz jak spam wygląda. W skrócie jest to
wiadomość e-mail, której nie chciałeś otrzymać. Exim posiada wbudowaną obsługę
- filtra antyspamowego. Możemy zdefiniować takie wartości jak spis <option>black list</option>
- czy odpowiedź serwera w przypadku kontaktu z tzw. <option>open relay</option>.</para>
- <para>Przejdźmy do konfiguracji. W przykładzie poniżej wpisano kilka adresów usługodawców zajmujących
- się blokowaniem spamu.</para>
- <screen>deny message = Serwer $sender_host_address figuruje na czarnej \
- liście $dnslist_domain\n$dnslist_text
- dnslists = blackholes.mail-abuse.org : \
- dialup.mail-abuse.org : \
- relays.ordb.org : \
- bl.spamcop.net : \
- dnsbl.njabl.org : \
- dnsbl.sorbs.net
-deny dnslists = blackholes.mail-abuse.org : relays.ordb.org : \
- dialup.mail-abuse.org : bl.spamcop.net : dnsbl.njabl.org : dnsbl.sorbs.net</screen>
- <para>Powinieneś umieścić ten przykład w sekcji <literal>ACL CONFIGURATION</literal> w obrębie
- <literal>acl_check_rcpt:</literal>.</para>
+ filtra antyspamowego opartego na technice dnsbl, może wykorzystwać zarówno
+ <option>czarne listy</option> jak i <option>białe listy</option> nadawców oraz adresów serwerów.
+ </para>
+ <para>
+ Kolejnym bardzo prostym ale niezwykle skutecznym w walce ze spamem jest maksymalne opóźnianie
+ procesu komunikacji pomiedzy klientem wysyłającym poczte a serwerem MTA.
+ Nie tylko odcina to część robotów spamerskich ale także zmiejsza ryzyko przeciążenia serwera.
+ </para>
+ <para>Przejdźmy do konfiguracji. Wszystkie te wpisy powinny znaleść się w sekcji
+ <literal>ACL CONFIGURATION</literal> w obrębie <literal>acl_check_rcpt:</literal>.</para>
+
+ <para>
+ Wymuszamy helo/ehlo
+ </para>
+ <screen>
+ deny message = Wymagane RFC HELO/EHLO zanim wyslesz wiadomosc. \n\
+ RFCs mandate HELO/EHLO before mail can be sent.
+ condition = ${if or{{!def:sender_helo_name}{eq{$sender_helo_name}{}}}{yes}{no}}
+ delay = 5s
+ log_message = No HELO/EHLO.
+ </screen>
+ <para>
+ Definujemy własne <option>białe listy</option>.
+ Jeśli nasz zestaw regół okazałby się zbyt restrycyjny możemy oznaczyć aby pewne domeny
+ były traktowane "ulgowo".
+ </para>
+ <screen>
+ accept domain = +local_domains
+ condition = /etc/mail/whitelist
+ </screen>
+
+ <para>
+ Sprawdzamy czy serwer nadawcy figuruje na listach RBL
+ </para>
+ <screen>
+ deny message = Serwer nadawcy figuruje na liscie RBL \n\
+ Server $sender_host_address is at RBL: \
+ $dnslist_domain\n$dnslist_text
+ delay = 5s
+ dnslists = blackholes.mail-abuse.org : \
+ dialup.mail-abuse.org : \
+ dnsbl.njabl.org : \
+ sbl.spamhaus.org : \
+ list.dsbl.org : \
+ cbl.abuseat.org : \
+ relays.ordb.org : \
+ bl.spamcop.net
+ hosts = ! +relay_from_hosts
+ log_message = Listed at RBL list: $dnslist_domain\n$dnslist_text.
+
+ deny message = Serwer nadawcy figuruje na liscie RBL \n\
+ Server $sender_host_address is at RBL: $dnslist_domain.
+ hosts = ! +relay_from_hosts
+ dnslists = bogusmx.frc-ignorant.org/$sender_host_name : \
+ dns.rfc-ignorant.org/$sender_host_name
+ delay = 5s
+ log_message = Listed at RFC-Ignorant.
+ </screen>
+ <para>
+ Teraz dokonujemy weryfikacji podanego HELO
+ </para>
+
+ <para>
+ <literal>HELO</literal> nie może być postaci <literal>localhost.localhomain</literal>
+ </para>
+ <screen>
+ deny message = Niepoprawne HELO. \n\
+ $sender_helo_name is a stupid HELO.
+ hosts = !+relay_from_hosts
+ condition = ${if match {$sender_helo_name}{\N^(127\.0\.0\.1|localhost(\.localdomain)?)$\N}{yes}{no}}
+ delay = 5s
+ log_message = Stupid localhost HELO.
+ </screen>
+
+ <para>
+ <literal>HELO</literal> musi być nazwą domenową (<literal>hostname</literal>)
+ </para>
+ <screen>
+ deny message = HELO musi byc nazwa domenowa. \n\
+ HELO must be hostname.
+ hosts = !+relay_from_hosts
+ condition = ${if !match {$sender_helo_name}\
+ {\N.*[A-Za-z].*\N}{yes}{no}}
+ delay = 5s
+ log_message = Helo must be hostname.
+ </screen>
+
+ <para>
+ Według <literal>RFC821</literal> <literal>HELO</literal> musi być pełną nazwą domenową
+ (<literal>Fully Qualifield Domain Name</literal>).
+ </para>
+ <screen>
+ deny message = HELO nie wyglada poprawnie. Zobacz RFC 821. \n\
+ HELO must contain a Fully Qualifield Domain Name. See RFC821.
+ hosts = !+relay_from_hosts
+ condition = ${if !match{$sender_helo_name} \
+ {\N.*[A-Za-z].*\..*[A-Za-z].*\N}{yes}{no}}
+ delay = 5s
+ log_message = HELO is not a FQDN.
+ </screen>
+
+ <para>
+ Eliminujemy sytuację gdy nadawca jako <literal>HELO</literal> podaje
+ serwer z naszej domeny np. <literal>domena.pl</literal>
+ </para>
+ <screen>
+ deny message = Wykryto zafalszowane RFC HELO. \n\
+ Fake HELO detected: $sender_helo_name.
+ condition = ${if eq{$sender_helo_name}\
+ {\N^(.*\.)?domena\.pl$\N}{yes}{no}}
+ hosts = !+relay_from_hosts
+ delay = 5s
+ log_message = Fake HELO from host $sender_helo_name.
+ </screen>
+
+
+ <para>Krótkie wyjaśnienie wykorzystanych opcji</para>
<itemizedlist>
<listitem>
- <para><literal>deny_message</literal></para>
- <para>Definiujemy tutaj wpis w dzienniku systemowym exima
- czyli <filename>/var/log/exim/main.log</filename></para>
+ <para><literal>deny message</literal></para>
+ <para>Określamy jaka informacja zwrotna pojawi się u nadawcy.</para>
+ </listitem>
+ <listitem>
+ <para><literal>delay</literal></para>
+ <para>Opóźnienie po jakim komunikat określnony jako <literal>message</literal> zostanie
+ zwrócony nadawcy.</para>
</listitem>
- <listitem>
- <para><literal>dnslist</literal></para>
- <para>Lista systemów z bazami blokującymi serwery <option>open relay</option>.
- Wymienione tutaj powinny skutecznie powstrzymać spam. Jeżeli
- nadal dostajesz niechciane maile, wykonaj następujące
- czynności. Sprawdź w nagłówku wiadomości adres IP serwera,
- który przekazał Twojemu MTA pocztę. Wejdź na stronę:
- <ulink url="http://www.ordb.org/lookup/">www.ordb.org/lookup/</ulink>
- i wpisz adres IP do sprawdzenia. Jeżeli wyszukiwanie w bazie
- ordb.org nie przyniesie rezultatów, wejdź tutaj:
- <ulink url="http://www.ordb.org/lookup/rbls/?host=w.x.y.z">http://www.ordb.org/lookup/rbls/?host=w.x.y.z</ulink>, gdzie zamiast symbolicznego zapisu podajemy adres IP.
- Skonstruowane w ten sposób zapytanie dokona sprawdzenia, czy dany adres IP figuruje na innych czarnych listach. Pozytywny rezultat testu powinien zwrócić w odpowiedzi
- listę systemów RBL (Relay Black List). Można ją wykorzystać
- dopisując do naszej regułki. Uważaj na system
- <literal>block.blars.org</literal> figuruje w nim smtp.wp.pl. Więc
- jeśli nie chcesz blokować użytkownikom możliwości
- otrzymywania poczty z tego serwera, nie dopisuj do regułki tego
- systemu RBL.</para>
- </listitem>
- <listitem>
- <para><literal>deny dnslist</literal></para>
- <para>Lista systemów RBL, które będą odpytywane podczas blokowania
- spamu. Kolejne pozycje na liście są przedzielone znakiem
- dwukropka. Jest to zresztą specyfika
- <filename>exim.conf</filename></para>
+ <listitem>
+ <para><literal>dnslist</literal></para>
+ <para>Lista systemów z bazami blokującymi serwery <option>open relay</option>.
+ Wymienione tutaj powinny skutecznie powstrzymać spam. Jeżeli
+ nadal dostajesz niechciane maile, wykonaj następujące
+ czynności. Sprawdź w nagłówku wiadomości adres IP serwera,
+ który przekazał Twojemu MTA pocztę. Wejdź na stronę:
+ <ulink url="http://www.ordb.org/lookup/">www.ordb.org/lookup/</ulink>
+ i wpisz adres IP do sprawdzenia. Jeżeli wyszukiwanie w bazie
+ ordb.org nie przyniesie rezultatów, wejdź tutaj:
+ <ulink url="http://www.ordb.org/lookup/rbls/?host=w.x.y.z">http://www.ordb.org/lookup/rbls/?host=w.x.y.z</ulink>, gdzie zamiast symbolicznego zapisu podajemy adres IP.
+ Skonstruowane w ten sposób zapytanie dokona sprawdzenia, czy dany adres IP figuruje na
+ innych czarnych listach. Pozytywny rezultat testu powinien zwrócić w odpowiedzi
+ listę systemów RBL (Relay Black List). Można ją wykorzystać
+ dopisując do naszej regułki. Uważaj na system
+ <literal>block.blars.org</literal> figuruje w nim smtp.wp.pl.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para><literal>hosts</literal></para>
+ <para>Podana lista serwerów. W powyższym przykładzie jest to <literal>!+relay_from_hosts</literal>
+ co oznacza, że cała regółka dotyczy połączeń z wszystkich serwerów za wyjątkiem tych
+ zdefiniowanych jako <literal>relay_from_hosts</literal>.</para>
+ </listitem>
+ <listitem>
+ <para><literal>log_message</literal></para>
+ <para>Informacja jaka zostanie zapisana w dzienniku systemowym exima
+ czyli <filename>/var/log/exim/main.log</filename></para>
</listitem>
</itemizedlist>
<para>Teraz należałoby włączyć wszystkie usługi jakie zainstalowaliśmy</para>
More information about the pld-cvs-commit
mailing list