Odświeżę temat...
Ostatnio dostawałem sporo spamu, więc zacząłem szukać różnych sposobów pozbycia się tego szajsu.
Otóż sporą część spamu można odfiltrować w samym
eximie, korzystając z ACL-i. Nie będę się tu rozpisywał na temat ACL, kto chce niech pogoogluje.
Tak czy inaczej za pomocą kilku prostych regułek udało mi się zablokować 100 % spamu, który dostawałem. Oczywiście zdaję sobie sprawę, że nie na każdy spam to zadziała, ale zawsze coś. Są to ACL-e bazujące na tzw. czarnych listach, zarówno lokalnych (można sobie dodawać do swojej blacklisty co sięchce), jak i dostępnych w Internecie.
Moje zmiany w exim.conf:
acl_smtp_mail = acl_check_sender
- dopisujemy to
przed sekcją ACL CONFIGURATION.
W samej sekcji ACL CONFIGURATION, po
begin acl (najlepiej na samym początku, chociaż nie koniecznie) dajemy takie coś:
acl_check_sender:
accept authenticated = *
# Blokowanie poczty przychodzącej z niechcianych domen (adres kopertowy nadawcy)
deny message = Sender envelope address $sender_address is locally blacklisted here.
senders = nwildlsearch; /etc/mail/senders_blacklist
# Check IP address in DNS based blacklists
deny message = Host $sender_host_address is blacklisted in $dnslist_domain.
# hosts = !+rbl_white_hosts
dnslists = \
virbl.dnsbl.bit.nl : \
list.dsbl.org : \
relays.ordb.org : \
dnsbl.sorbs.net : \
bl.spamcop.net : \
sbl.spamhaus.org : \
xbl.spamhaus.org
#relays.visi.com
# Check hostname in domain DNS based blacklists
deny message = Host $sender_host_name is blacklisted in $dnslist_domain.
# hosts = !+rbl_white_hosts
dnslists = \
bogusmx.rfc-ignorant.org/$sender_host_name : \
dsn.rfc-ignorant.org/$sender_host_name : \
postmaster.rfc-ignorant.org/$sender_host_name : \
abuse.rfc-ignorant.org/$sender_host_name
deny message = Helo is blacklisted in $dnslist_domain.
# hosts = !+rbl_white_hosts
dnslists = \
abuse.rfc-ignorant.org/$sender_helo_name : \
bogusmx.rfc-ignorant.org/$sender_helo_name : \
dsn.rfc-ignorant.org/$sender_helo_name : \
postmaster.rfc-ignorant.org/$sender_helo_name: \
abuse.rfc-ignorant.org/$sender_helo_name
# Check email address domain in DNS based blacklists
deny !senders = :
# hosts = !+rbl_white_hosts
message = Domain $sender_address_domain is blacklisted in $dnslist_domain.
dnslists = \
bogusmx.rfc-ignorant.org/$sender_address_domain : \
dsn.rfc-ignorant.org/$sender_address_domain : \
postmaster.rfc-ignorant.org/$sender_address_domain : \
abuse.rfc-ignorant.org/$sender_address_domain
accept
Plik /etc/mail/senders_blacklist musi istnieć (może być pusty) - dodajemy w nim adresy, z których nie chcemy otrzymywać poczty, przy czym mogą one zawierać tzw. wildcards czyli np. * (dowolny ciąg znaków).
Plik taki może wyglądać następująco:
dupa@jasiu.pl
*@jakaśdomena.com
*innadomena.com
...
Można też zrobić sobie "białą listę" adresów IP, z których chcemy otrzymywać pocztę, nawet, jeżeli znajdują się one na czarnych listach.
Dodajemy przed sekcją ACL CONFIGURATION:
hostlist rbl_white_hosts = \
127.0.0.0/8 : \
192.168.1.0/24 : \
inny_adres_IP
wcześniej odplotkowując odpowiednie linie powyżej.
Jak napisałem - u mnie na razie to wystarcza, ale można zrobić dużo więcej, jak weryfikacja HELO, weryfikacja adresu nagłówkowego nadawcy, etc.
Więcej informacji nt. filtrowania spamu w Eximie można znaleźć tu:
http://www.sput.nl/software/exim.html
http://www.maretmanu.org/homepage/inform/exim-spam.html
http://slett.net/spam-filtering-for-mx/
http://www.tldp.org/HOWTO/Spam-Filtering-for-MX/exim.html
Pozdrawiam