Kategoria: ADSL, Linux
Tagi: neostrada, spam
Zmienne IP i spamerskie IP
2008 Styczeń 24 – 22:15Zdarzyło mi się kilkakrotnie, że mój spamassassin bezwzględnie potraktował mejle wysłane do mnie z Neostrady, tak, że po dłuższych poszukiwaniach znajdywałem je w katalogu ze spamem. Mimo że dzieje się to sporadycznie zdecydowałem przeciwdziałać.
Zaczęłem przeczesywać nagłowki odfiltrowanych mejli. Obok bezwzględnej potrzeby większości ludzi, żeby wysyłać mejle w HTMLu, pojawił się następujący rzadko spotykany komunikat RCVD_IN_SORBS_DUL (lub RCVD_IN_SBL, RCVD_IN_XBL, RCVD_IN_BL_SPAMCOP_NET) i mejl z automatu poszedł do spamu.
Dalej przeczesując nagłówek znalazłem:
2.0 RCVD_IN_SORBS_DUL RBL: SORBS: sent directly from dynamic IP address * [83.20.5.140 listed in dnsbl.sorbs.net]
Sprawa wydała się oczywista, dostałem mejla ze spamerskiego IP… tyle że to IP mojego znajomego !
Może on ma wirusa i przez to został wpisany na blacklistę ?
NIE ! Po prostu poprzedni użytkownik tego IP był spamerem !
Zdarzało mi się również słyszeć narzekanie, że w niektóre dni skrzynka pocztowa pocztowa „nie działa”, a co się okazało, po prostu odrzuca połączenia… co ma jedno z drugim wspólnego ?
Mianowicie to że niektóre skrzynki pocztowe nie zezwalają na połączenia ze spamerskich adresów IP !
Ok, ale co teraz ? Drugi problem można rozwiązać łącząc się ponownie, a pierwszy ?
Jak już wysłałeś mejla który nie doszedł, to możesz jedynie wysłać go ponownie, ale co zrobić żeby tak się nie działo.
I jak zwykle z pomocą przychodzi linux ! Rozwiązanie to jest dla posiadaczy routera/serwera adsl opartego na linuxie.
Piszemy prosty skrypcik, o przykładowej nazwie 0run_block (zero na początku jest istotne !):
#!/bin/bash # do wrzucenia do /etc/ppp/ip-up.d #IP=`ifconfig ppp0 | grep "inet addr" | sed s/^.*inet\ addr:// | sed s/\ \ P-t-P.*$//` IP=$IPLOCAL BLOCK=0 #--SpamCop RETURN=`wget -q -O - "http://spamcop.net/w3m?action=checkblock&ip=$IP" | grep "^<p>$IP listed in bl.spamcop.net"` if [ "$RETURN" ]; then BLOCK=`expr $BLOCK + 1` fi #--DSBL RETURN=`wget -q -O - "http://dsbl.org/listing?$IP" | grep "^<b>State:</b> <a href=\"http://dsbl.org/faq-listed\">Listed"` if [ "$RETURN" ]; then BLOCK=`expr $BLOCK + 1` fi #--AHBL RETURN=`wget -q -O - "http://www.ahbl.org/lookup?ip=$IP" | grep "strong"` RETURNA=`echo $RETURN | grep "This host is listed in tor.ahbl.org"` if [ "$RETURNA" ]; then BLOCK=`expr $BLOCK + 1` fi RETURNA=`echo $RETURN | grep "This host is listed in dnsbl.ahbl.org"` if [ "$RETURNA" ]; then BLOCK=`expr $BLOCK + 1` fi #--SpamHaus SBL XBL PBL # nie da sie zautomatyzowac echo $IP\|\|$BLOCK >> /root/logblock if [ $BLOCK -gt 0 ]; then sleep 3 killall pppd sleep 3 /etc/init.d/run_dial fi
Następnie umieszczamy plik w katalogu:
/etc/ppp/ip-up.d
Działanie skryptu polega na tym, że od razu po otrzymaniu dynamicznego adresu IP od twojego prowajdera, demon pppd automatycznie uruchamia skrypty w katalogu ip-up.d. Nasz skrypt sprawdza w kilku (w 4) bazach czy otrzymany adres IP nie jest na blackliscie, jeśli nie jest, skrypt wyłącza się i połączenie z internetem jest nawiązane.
Jeśli jednak nasz nowy adres IP jest chociażby na jednej blackliscie, skrypt zabija demona pppd, po czym nawiązuje nowe połączenie, z nadzieją że nowy adres nie będzie spamerski. Skrypt robi to w kółko do czasu otrzymania czystego adresu IP.
Od czasu używania tego skryptu, ani ja, ani inne osoby którym go zainstalowałem nie miały problemów z pocztą. Lektura tworzonych w /root/logblock logów, pokazuje że spamerski adres IP trafia się każdemu raz na 1-2 tygodnie. Zdarzyło mi się nawet że otrzymałem dwa razy spamerski IP pod rząd !
Skrypt nie wymaga żadnych specjalnych pakietów. Działa u mnie na ubuntu/debian na Neostradzie z modemem SpeedTouch.
Po co zero na poczatku w nazwie pliku ?
Skrypty w katalogu ip-up.d sa uruchamiane w porzadku alfabetycznym. Chcemy zeby nasz skrypt uruchomil sie przed DynDNS, ntpdate itp, ale za to po otrzymaniu serwerow DNS.
Sorry, comments for this entry are closed at this time.