Jump to content

format techblog

Sign in to follow this  
  • entries
    3
  • comments
    8
  • views
    8181

Lista polskich spamerów

⠀

1271 views

Każdy kto przez chwilę choćby musiał utrzymywać serwer pocztowy wie jak upierdliwy lubi być spam.
Do walki ze spamerami mamy cały wachlarz rozwiązań, od prostych (i całkiem swoją drogą funkcjonalnych) spamassassinów, przez RBLe, rozwiązania płatne, czy w końcu fizyczne pudełka all-in-one. Jest w nich jeden wspólny mianownik, wszystkie filtry produkowane są zazwyczaj dla angielskojęzycznych spamerów i dla filtrowania ich spamu działają całkiem dobrze.

 

A co z naszymi rodakami? Ano z naszymi rodakami jest problem. Otóż, ich bayesy domyślnie nie widzą, trzeba marnować czas by je uczyć, tworzyć dedykowane regułki itd itp.

 

Po dodaniu całkiem pokaźnej punktacji dla występujących w mejlach ciągów, dla przykładu:

body USTAWA /18 lipca 2002/iscore USTAWA 2.0body NINEJSZY /Niniejszy mail/iscore NINEJSZY 0.8body MAILNEWS /mailnews/iscore MAILNEWS 4.0body MOBILEB2B /MobileB2B/iscore MOBILEB2B 4.0body SERIAL /serialsend/iscore SERIAL 4.0body DELIVERYSTATS /deliverystats/iscore DELIVERYSTATS 5.0body MARKETMARKS /marketmarks/iscore MARKETMARKS 5.0body RING /ringoron/iscore RING 4.0body CAMPAIGN /campaignmail/iscore CAMPAIGN 5.0body JULYSENDER /julysender/iscore JULYSENDER 5.0body DIETYA /DietaNaWiosne/iscore DIETYA 5.0


Zacząłem się irytować. Mimo, że lista rosła spam przychodził dalej. W końcu, zaglądając w nagłówki mejli dostałem olśnienia, polski spam który do mnie docierał był wysyłany z dość policzalnej liczby serwerów, słowem, najprościej było to po prostu wyciąć, przy okazji odciążając serwer pocztowy i analizę heurystyczną. Po prostu z pewną konkretną listą serwerów nie rozmawiam, koniec kropka. Realizacja jest dość toporna i da się to zrobić znacznie lepiej, niestety nie miałem czasu ani ochoty bawić się w rozwiązania piękne.

 


Napisałem skrypt:

#!/bin/shBLOCKDB="/etc/ip.blocklist"BLOCKDB6="/etc/ip6.blocklist"/sbin/iptables -F INPUT/sbin/iptables -F OUTPUTecho 'iptables chains flushed'/sbin/ip6tables -F INPUT/sbin/ip6tables -F OUTPUTecho 'ip6tables chains flushed'IPS=$(grep -Ev "^#" $BLOCKDB)for i in $IPSdo/sbin/iptables -A INPUT -s $i -j DROP/sbin/iptables -A OUTPUT -d $i -j DROPecho 'added' $i 'to dropping chains'doneIP6S=$(grep -Ev "^#" $BLOCKDB6)for i in $IP6Sdo/sbin/ip6tables -A INPUT -s $i -j DROP/sbin/ip6tables -A OUTPUT -d $i -j DROPecho 'added' $i 'to dropping chains'.done                                           


Czyli na dzień dobry czyścimy tablice INPUT oraz OUTPUT, następnie grepujemy sobie ciągu nie zawierające hash'a w pliku źródłowym i podstawiamy to pod dropujące łańcuchy w iptables.

 


Skrypt można odpalić ręcznie i mieć sprawę w nosie, można też edytować plik źródłowy w ciągu dnia, a w nocy dodawać wpisy do iptables. Tak robię i ja. Skrypt uruchamia się więc w crontabie o drugiej w nocy:

root@nocnik /v/w/html# crontab -l |grep block0 2 * * * /root/scripts/block.spamers.sh > /dev/null


No to co interesować nas będzie najbardziej - moja lista spamerskich IP - link symboliczny do tego co mam w /etc/ip.blocklist - do ściągnięcia stąd: http://nocnik.org/blacklist.txt oraz ta sama wersja dla polskich spamerów z ipv6: http://nocnik.org/blacklist6.txt czyli to co powinno być w /etc/ip6.blocklist

 


Zapraszam do skorzystania, po pół roku dodawania adresów wyeliminowałem w zasadzie do zera polski spam.
Jeśli będziecie zainteresowani mogę przekształcić mój skrypt by automagicznie pobierał wystawiony plik http://nocnik.org/blacklist.txt jakimś curlem i ładował go do Waszych łańcuchów. Proszę dać znać.

 

Pozdr



2 Comments


Recommended Comments

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.