Małe lasso na SPAM
Napisał: Patryk Krawaczyński
29/08/2009 |+ 1 komentarz. |
drukuj
(Ilość słów: 464)
Lista DROP (ang. Don’t Route Or Peer) projektu Spamhaus jest zbiorem bloków sieciowych, czyli zakresów adresów IP – składających się z komputerów zombie lub sieci w pełni kontrolowanych przez zawodowych spamerów. Lista ta jest dostępna pod postacią prostej listy tekstowej, którą można wykorzystać w własnych zaporach sieciowych czy sprzęcie odpowiedzialnym za routing.
Ze względu na fakt, iż lista ta nigdy nie będzie zawierać przestrzeni adresowej kontrolowanej przez legalnych właścicieli – nawet jeśli została ona im ponownie przyznana od „spamerów z piekła” – z powodzeniem można ją wykorzystać do blokady całego ruchu pochodzącego z bloków sieciowych tej listy. Wykorzystana w ten sposób, w naszej sieci lub głównych routerach naszego ISP powinna chronić naszych użytkowników w bliżej nieokreślonym stopniu przed spamowaniem, zbieraniem adresów e-mail, skanowaniem, czy atakami DDoS.
Najprostszą implementacją listy DROP w naszym hoście jest użycie narzędzia curl (ang. transfer a URL) w połączeniu z iptables:
curl -s http://www.spamhaus.org/drop/drop.lasso | grep ^[1-9]|cut -f 1 -d ' ' | xargs -iX -n 1 iptables -A INPUT -s X -i eth0 -j DROP
W systemie oczywiście musi być zainstalowane narzędzie curl (pakiet o tej samej nazwie) oraz xargs (pakiet findutils). Interfejs eth0 jest interfejsem wyjściowym. Jeśli pragniemy odświeżać wpisy z listy, co jakiś czas (serwis Spamhaus prosi by lista nie była uaktualniana więcej razy niż jeden na godzinę) – najlepiej stworzyć osobny łańcuch (iptables -N SPAMHAUS), do którego będą wpisywane i uaktualniane wpisy z listy:
#!/bin/sh
IPT="/usr/sbin/iptables"
IPTS="/usr/sbin/iptables-save"
FILE="rules.txt"
$IPTS > $FILE
CHAIN=`cat $FILE | grep SPAM | wc -l`
if [ $CHAIN -eq "0" ]; then
echo "Łańcuch SPAMHAUS nie istnieje."
$IPT -N SPAM
$IPT -I INPUT -j SPAM
curl -s http://www.spamhaus.org/drop/drop.lasso | grep ^[1-9] | cut -f 1 -d ' ' | xargs -iX -n 1 iptables -A SPAM -s X -i wlan0 -j DROP
else
echo "Łańcuch SPAMHAUS istnieje."
$IPT -F SPAM
curl -s http://www.spamhaus.org/drop/drop.lasso | grep ^[1-9] | cut -f 1 -d ' ' | xargs -iX -n 1 iptables -A SPAM -s X -i wlan0 -j DROP
fi
rm $FILE
exit 0
Tak prosty skrypt możemy umieścić np. w katalogu /etc/cron.daily/, aby nasze wpisy były aktualizowane raz na dzień. Jeśli zdecydujemy się używać osobnego łańcucha należy dodatkowo do niego skierować odpowiedni ruch:
iptables -I INPUT -j SPAMHAUS
Jeśli nasz serwer pełni rolę routera / bramy wówczas należy łańcuch dla pakietów przychodzących zamienić na łańcuch dla pakietów przechodzących pomiędzy interfejsami:
xargs -iX -n 1 iptables -A FORWARD -s X -d 192.168.0.0/24 -j DROP
Gdzie 192.168.0.0/24 jest adresem sieci lokalnej w zapisie CIDR, którą obsługuje nasz router. Na stronie projektu Spamhaus możemy również znaleźć narzędzia do obsługi routerów CISCO oraz zapory ipfw dla systemu FreeBSD.
Więcej informacji: Spamhaus DROP Advisory Null List
K a t e g o r i e :
T a g i :

Jeśli pragniemy uruchomić DUŻE lasso na spam to serwis NiX Spam DNSBL udostępnia listę około 40 tysięcy wpisów adresów IP spamerów. Filtry NiX wychwytują około 200′ście tysięcy wiadomości spam / na godzinę. Lista aktualizowana jest mniej więcej, co 15 minut. Jeśli chcemy ją zaimplementować do iptables wystarczy zrobić to poprzez linijkę:
Jednak ładowanie tak dużej liczby wpisów do tablic ip może zając dużo więcej czasu niż 15 minut, dlatego najlepiej skorzystać z serwera DNSBL – ix.dnsbl.manitu.net, ale ten musi zostać już zaimplementowany w samym MTA.