Spam a rekordy MX i A
Na początku proszę się zapoznać z artykułem konfiguracja binda.W jaki sposób można się pozbyć spamu z określonych sieci/krajów? Na kilka sposobów (przedstawię to na przykładzie moich ulubionych: Chin i Korei):
- można wziąć zakresy IP z jakiejś publicznie dostępnej listy i wrzucić do postfixa do mapy cidr i zrobić check_client_access
- można te same zakresy wrzucić do własnego RBLa i oczywiście reject_rbl_client
- można wrzucić je do iptables łącznie z -j DROP, tutaj przydaje się słowo kluczowe "ipset"
- można też odpowiednio skonfigurować serwery DNS, tak aby w tamtym kierunku odpowiadały, że "nie ma takiego serwera". Skoro nie ma serwera to nie ma gdzie wysyłać spamu, prawda?
view "internal" {
...
}
acl igornets {
193.252.22.0/23; 80.12.242.0/24; 168.95.0.0/16; 61.140.11.0/24; 210.21.4.133; 222.221.0.0/24; 219.149.194.0/24; 202.106.0.0/16; 216.254.95.2;
121.167.11.0/24; 202.131.30.0/24; 211.195.237.0/24; 221.164.34.0/24; 221.3.131.0/24; 221.6.4.0/24; 202.101.172.0/24; 202.102.224.0/24; 62.161.0.0/21;
209.191.129.1/32; 209.191.129.65/32; 207.228.225.4/32; 66.36.226.8/32; 209.160.56.15/32; 209.160.56.4/32; 207.228.249.204/32; 66.36.226.4/32; 208.69.32.0/21;
119.46.241.4/32;164.124.101.0/24; 204.74.96.0/21; 82.144.192.0/24; 93.73.0.0/17; 203.119.8.106; 80.12.2.0/28; 61.220.0.0/13; 208.67.216.0/21; 202.96.209.0/24;
74.116.88.0/22;
# 193.252.22.0/23 orange,
# 80.12.242.0/24 orange,
# 168.95.0.0/16 chinanet
# 61.140.11.0/24 chinanet,
# 210.21.4.133 chinanet,
# 216.254.95.2 dns.nyc1.speakeasy.net,
# 222.221.0.0/24 chinanet,
# 219.149.194.0/24 chinanet,
# 202.106.0.0/16 chinanet
# 121.167.11.0/24 korea
# 202.131.30.0/24 korea
# 211.195.237.0/24 korea
# 221.164.34.0/24 korea
# 221.3.131.0/24 china
# 221.6.4.0/24 china
# 202.101.172.0/24 china
# 202.102.224.0/24 china
# 62.161.0.0/21 oleane.fr
# ns1.nyc.pnap.net has address 209.191.129.1
# ns2.nyc.pnap.net has address 209.191.129.65
# 66.36.226.4 ns1.superb.net
# 209.160.56.15 ns2.superb.net
# 66.36.226.8 ns3.superb.net
# 207.228.225.4 ns4.superb.net
# 209.160.56.4 ns5.superb.net
# 207.228.249.204 ns6.superb.net
# 208.69.32.0/21 opendns.com
# 119.46.241.4 119-46-241-4.static.asianet.co.th.
# bora.net 164.124.101.0/24
# 204.74.96.0 - 204.74.108.0 ultradns.net
# 82.144.192.0/24 volia.net
# 93.73.0.0/17 volia.net
# 203.119.8.106 nscache1.vnnic.net.vn
# 80.12.2.0/28 orange
# 61.220.0.0/13 hinet
# 208.67.216.0/21 opendns.com
# 202.96.209.0/24 chinanet
# 74.116.88.0/22 verticalresponse
};
view "ajax" {
match-clients { igornets; };
recursion no;
allow-query { none; };
allow-transfer { none; };
allow-notify { none; };
zone "lemat.priv.pl" {
type master;
notify no;
file "ajax.lemat.priv.pl";
allow-query { igornets; };
};
};
view "external" {
...
}
powyższy match-clients{} / acl {} zawiera serwery chińskie, koreańskie, serwery orange.fr i kilka innych z których nie życzę sobie otrzymywać spamu - dla swoich potrzeb musicie odpowiednio zmodyfikować.
plik ajax.lemat.priv.pl zawiera:
$TTL 86400
@ IN SOA ns1.lemat.priv.pl. root.lemat.priv.pl. (
2008080400 ; Serial
43200 ; Refresh 12h
86400 ; Retry 1 day
604800 ; Expire 1 week
86400 ) ; Minimum 1 day
86400 IN NS ns1
86400 IN NS ns2
86400 IN TXT "v=spf1 -all"
* IN TXT "v=spf1 -all"
ns1 86400 IN A 79.190.106.114
ns2 86400 IN A 83.17.15.82
www 86400 IN A 79.190.106.114
jak widać powyżej nie zawiera on ani wpisu MX dla domeny lemat.priv.pl ani A dla hosta lemat.priv.pl. Dzięki tej konfiguracji moje serwery odpowiedają na zapytania DNS NXDOMAIN i ilość spamu (a raczej połączeń) z Chin i Korei zdecydowanie się zmniejszyła.
Ten sposób jest o tyle fajny, że do naszego serwera poczty nie docierają w ogóle połączenia z tych krajów. Co ma pewne znaczenie w "godzinach szczytu".
Można też zrobić z tej konfiguracji inny bajer - skierować rekord MX na inne IP, gdzie będzie czekał odpowiednio "podkręcony" spamassassin.
W jaki sposób zdobyłem te adresy / zakresy IP? Wziąłem logi binda, wyciągnałem z nich adresy IP które się pytały o MX mojej domeny i dla każdego takiego adresu IP sprawdziłem revDNS oraz sprawdziłem go we własnym RBLu chikor.rbl.tld. Jeżeli pasował - dopisywałem do match-clients{}. Oczywiście lista nie jest kompletna - są tam tylko te adresy IP, które u mnie wykazywały największą aktywność.
Trzeba pamiętać, że powyższy trick należy wykonać na wszystkich serwerach DNS dla danej domeny (primary+secondary). Oczywiście serwer secondary nie będzie ściągał updejtów do tej specjalnej strefy (rozwiązanie jest, ale nietrywialne).
Data utworzenia : 2008-08-25, data aktualizacji :2010-09-22