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