I rent webspace including a mailserver, and I am getting walloped by spam daily. When it got to a hundred a day, I decided to take some drastic action.
The nature of my site is such that I don't expect legitimate emails from non-English speaking countries. Following a 3-month analysis of my spam, I found about 50% of it originated in Asia, South America, and the Former Soviet Union, including Poland and the Czech Republic.
I then started to consruct IPTABLES rules which blocked not only SMTP connections, but any type of connection from large IP blocks in these countries. The decision to block all access was intended to reduce the risk of hacking, which is also prevalent in most of these countries. There was and remains an issue with Asia, because Australia is administered by APNIC, the same registrar which administers China, Japan, etc. but since I get relatively little interest from Australia, I decided it was worth the sacrifice.
I ran into a problem with table space (which is managed by my ISP). Initially I could only employ around 120 rules, but after discussion with my ISP I managed to get that doubled. Because of the limited number of rules, I can't always add new rules when new domains become active spammers, so periodically I have to delete inactive filters to allow me to add active ones. Mu current tables are as follows if anyone wants to use them:
iptables -A INPUT -s 41.196.0.0/16 -j DROP
iptables -A INPUT -s 41.248.0.0/14 -j DROP
iptables -A INPUT -s 58.0.0.0/7 -j DROP
iptables -A INPUT -s 60.0.0.0/7 -j DROP
iptables -A INPUT -s 62.16.0.0/16 -j DROP
iptables -A INPUT -s 62.21.0.0/17 -j DROP
iptables -A INPUT -s 62.24.64.0/18 -j DROP
iptables -A INPUT -s 62.109.0.0/16 -j DROP
iptables -A INPUT -s 62.135.0.0/17 -j DROP
iptables -A INPUT -s 62.148.128.0/19 -j DROP
iptables -A INPUT -s 62.215.0.0/16 -j DROP
iptables -A INPUT -s 69.79.0.0/16 -j DROP
iptables -A INPUT -s 77.40.0.0/15 -j DROP
iptables -A INPUT -s 77.45.0.0/16 -j DROP
iptables -A INPUT -s 77.46.0.0/15 -j DROP
iptables -A INPUT -s 77.50.0.0/15 -j DROP
iptables -A INPUT -s 77.81.0.0/16 -j DROP
iptables -A INPUT -s 77.85.0.0/16 -j DROP
iptables -A INPUT -s 77.91.0.0/18 -j DROP
iptables -A INPUT -s 77.120.0.0/14 -j DROP
iptables -A INPUT -s 77.236.0.0/16 -j DROP
iptables -A INPUT -s 77.241.32.0/20 -j DROP
iptables -A INPUT -s 77.252.0.0/14 -j DROP
iptables -A INPUT -s 78.0.0.0/14 -j DROP
iptables -A INPUT -s 78.36.0.0/14 -j DROP
iptables -A INPUT -s 78.56.0.0/13 -j DROP
iptables -A INPUT -s 78.84.0.0/15 -j DROP
iptables -A INPUT -s 78.102.0.0/15 -j DROP
iptables -A INPUT -s 78.106.0.0/15 -j DROP
iptables -A INPUT -s 78.109.16.0/17 -j DROP
iptables -A INPUT -s 78.131.0.0/16 -j DROP
iptables -A INPUT -s 78.139.0.0/16 -j DROP
iptables -A INPUT -s 78.160.0.0/11 -j DROP
iptables -A INPUT -s 79.112.0.0/13 -j DROP
iptables -A INPUT -s 79.120.0.0/16 -j DROP
iptables -A INPUT -s 79.125.128.0/17 -j DROP
iptables -A INPUT -s 79.139.0.0/16 -j DROP
iptables -A INPUT -s 79.140.128.0/18 -j DROP
iptables -A INPUT -s 79.184.0.0/13 -j DROP
iptables -A INPUT -s 80.48.0.0/13 -j DROP
iptables -A INPUT -s 80.96.188.0/22 -j DROP
iptables -A INPUT -s 80.98.0.0/15 -j DROP
iptables -A INPUT -s 80.128.0.0/11 -j DROP
iptables -A INPUT -s 80.188.0.0/16 -j DROP
iptables -A INPUT -s 80.243.144.0/20 -j DROP
iptables -A INPUT -s 80.252.128.0/19 -j DROP
iptables -A INPUT -s 81.13.0.0/17 -j DROP
iptables -A INPUT -s 81.30.192.0/19 -j DROP
iptables -A INPUT -s 81.88.0.0/16 -j DROP
iptables -A INPUT -s 81.176.0.0/15 -j DROP
iptables -A INPUT -s 81.190.0.0/16 -j DROP
iptables -A INPUT -s 81.192.0.0/16 -j DROP
iptables -A INPUT -s 81.198.0.0/16 -j DROP
iptables -A INPUT -s 81.214.0.0/15 -j DROP
iptables -A INPUT -s 81.222.0.0/16 -j DROP
iptables -A INPUT -s 82.76.0.0/14 -j DROP
iptables -A INPUT -s 82.114.0.0/16 -j DROP
iptables -A INPUT -s 82.119.128.0/19 -j DROP
iptables -A INPUT -s 82.131.128.0/17 -j DROP
iptables -A INPUT -s 82.135.128.0/17 -j DROP
iptables -A INPUT -s 82.138.0.0/18 -j DROP
iptables -A INPUT -s 82.150.160.0/19 -j DROP
iptables -A INPUT -s 82.201.128.0/17 -j DROP
iptables -A INPUT -s 82.204.128.0/17 -j DROP
iptables -A INPUT -s 82.207.0.0/17 -j DROP
iptables -A INPUT -s 83.0.0.0/11 -j DROP
iptables -A INPUT -s 83.103.0.0/16 -j DROP
iptables -A INPUT -s 83.131.0.0/16 -j DROP
iptables -A INPUT -s 83.144.64.0/18 -j DROP
iptables -A INPUT -s 83.145.128.0/18 -j DROP
iptables -A INPUT -s 83.167.0.0/17 -j DROP
iptables -A INPUT -s 83.237.0.0/16 -j DROP
iptables -A INPUT -s 83.238.0.0/15 -j DROP
iptables -A INPUT -s 84.0.0.0/14 -j DROP
iptables -A INPUT -s 84.10.0.0/16 -j DROP
iptables -A INPUT -s 84.32.0.0/16 -j DROP
iptables -A INPUT -s 84.38.0.0/19 -j DROP
iptables -A INPUT -s 84.42.0.0/16 -j DROP
iptables -A INPUT -s 84.47.0.0/16 -j DROP
iptables -A INPUT -s 84.55.0.0/17 -j DROP
iptables -A INPUT -s 84.204.0.0/16 -j DROP
iptables -A INPUT -s 85.14.64.0/18 -j DROP
iptables -A INPUT -s 85.21.0.0/16 -j DROP
iptables -A INPUT -s 85.28.0.0/16 -j DROP
iptables -A INPUT -s 85.30.64.0/18 -j DROP
iptables -A INPUT -s 85.66.0.0/15 -j DROP
iptables -A INPUT -s 85.70.0.0/15 -j DROP
iptables -A INPUT -s 85.72.0.0/14 -j DROP
iptables -A INPUT -s 85.91.128.0/19 -j DROP
iptables -A INPUT -s 85.94.0.0/16 -j DROP
iptables -A INPUT -s 85.96.0.0/12 -j DROP
iptables -A INPUT -s 85.118.64.0/18 -j DROP
iptables -A INPUT -s 85.128.0.0/16 -j DROP
iptables -A INPUT -s 85.130.0.0/17 -j DROP
iptables -A INPUT -s 85.132.0.0/16 -j DROP
iptables -A INPUT -s 85.135.0.0/16 -j DROP
iptables -A INPUT -s 85.140.0.0/14 -j DROP
iptables -A INPUT -s 85.172.0.0/14 -j DROP
iptables -A INPUT -s 85.185.128.0/17 -j DROP
iptables -A INPUT -s 85.186.0.0/15 -j DROP
iptables -A INPUT -s 85.204.0.0/16 -j DROP
iptables -A INPUT -s 85.207.0.0/16 -j DROP
iptables -A INPUT -s 85.216.128.0/17 -j DROP
iptables -A INPUT -s 85.221.128.0/17 -j DROP
iptables -A INPUT -s 85.222.0.0/16 -j DROP
iptables -A INPUT -s 85.248.0.0/15 -j DROP
iptables -A INPUT -s 85.254.0.0/16 -j DROP
iptables -A INPUT -s 85.255.96.0/19 -j DROP
iptables -A INPUT -s 86.34.0.0/15 -j DROP
iptables -A INPUT -s 86.57.128.0/17 -j DROP
iptables -A INPUT -s 86.63.64.0/18 -j DROP
iptables -A INPUT -s 86.96.0.0/14 -j DROP
iptables -A INPUT -s 86.100.0.0/15 -j DROP
iptables -A INPUT -s 86.104.0.0/14 -j DROP
iptables -A INPUT -s 86.110.160.0/19 -j DROP
iptables -A INPUT -s 86.120.0.0/13 -j DROP
iptables -A INPUT -s 87.97.0.0/16 -j DROP
iptables -A INPUT -s 87.103.128.0/17 -j DROP
iptables -A INPUT -s 87.105.0.0/16 -j DROP
iptables -A INPUT -s 87.116.128.0/18 -j DROP
iptables -A INPUT -s 87.117.0.0/18 -j DROP
iptables -A INPUT -s 87.120.0.0/15 -j DROP
iptables -A INPUT -s 87.126.0.0/16 -j DROP
iptables -A INPUT -s 87.128.0.0/10 -j DROP
iptables -A INPUT -s 87.202.0.0/15 -j DROP
iptables -A INPUT -s 87.204.0.0/14 -j DROP
iptables -A INPUT -s 87.224.128.0/17 -j DROP
iptables -A INPUT -s 87.226.0.0/16 -j DROP
iptables -A INPUT -s 87.228.0.0/17 -j DROP
iptables -A INPUT -s 87.230.0.0/16 -j DROP
iptables -A INPUT -s 87.236.0.0/18 -j DROP
iptables -A INPUT -s 87.237.112.0/21 -j DROP
iptables -A INPUT -s 87.241.0.0/16 -j DROP
iptables -A INPUT -s 87.245.128.0/18 -j DROP
iptables -A INPUT -s 87.248.64.0/19 -j DROP
iptables -A INPUT -s 87.248.160.0/19 -j DROP
iptables -A INPUT -s 87.251.0.0/16 -j DROP
iptables -A INPUT -s 88.84.192.0/19 -j DROP
iptables -A INPUT -s 88.100.0.0/14 -j DROP
iptables -A INPUT -s 88.147.128.0/17 -j DROP
iptables -A INPUT -s 88.156.0.0/16 -j DROP
iptables -A INPUT -s 88.199.0.0/16 -j DROP
iptables -A INPUT -s 88.201.0.0/16 -j DROP
iptables -A INPUT -s 88.204.128.0/17 -j DROP
iptables -A INPUT -s 88.205.0.0/16 -j DROP
iptables -A INPUT -s 88.207.0.0/16 -j DROP
iptables -A INPUT -s 88.224.0.0/11 -j DROP
iptables -A INPUT -s 89.20.128.0/19 -j DROP
iptables -A INPUT -s 89.32.0.0/12 -j DROP
iptables -A INPUT -s 89.64.0.0/12 -j DROP
iptables -A INPUT -s 89.102.0.0/15 -j DROP
iptables -A INPUT -s 89.106.0.0/18 -j DROP
iptables -A INPUT -s 89.108.0.0/16 -j DROP
iptables -A INPUT -s 89.109.0.0/18 -j DROP
iptables -A INPUT -s 89.110.0.0/16 -j DROP
iptables -A INPUT -s 89.120.0.0/14 -j DROP
iptables -A INPUT -s 89.132.0.0/14 -j DROP
iptables -A INPUT -s 89.136.0.0/15 -j DROP
iptables -A INPUT -s 89.142.0.0/16 -j DROP
iptables -A INPUT -s 89.147.64.0/18 -j DROP
iptables -A INPUT -s 89.149.0.0/16 -j DROP
iptables -A INPUT -s 89.151.128.0/17 -j DROP
iptables -A INPUT -s 89.160.0.0/11 -j DROP
iptables -A INPUT -s 89.208.0.0/16 -j DROP
iptables -A INPUT -s 89.210.0.0/15 -j DROP
iptables -A INPUT -s 89.212.0.0/16 -j DROP
iptables -A INPUT -s 89.215.0.0/16 -j DROP
iptables -A INPUT -s 89.216.0.0/16 -j DROP
iptables -A INPUT -s 89.218.0.0/15 -j DROP
iptables -A INPUT -s 89.223.0.0/16 -j DROP
iptables -A INPUT -s 89.228.0.0/14 -j DROP
iptables -A INPUT -s 89.248.80.0/20 -j DROP
iptables -A INPUT -s 90.150.0.0/16 -j DROP
iptables -A INPUT -s 90.156.0.0/16 -j DROP
iptables -A INPUT -s 90.188.0.0/15 -j DROP
iptables -A INPUT -s 91.76.0.0/14 -j DROP
iptables -A INPUT -s 91.122.0.0/16 -j DROP
iptables -A INPUT -s 91.124.0.0/16 -j DROP
iptables -A INPUT -s 91.139.0.0/16 -j DROP
iptables -A INPUT -s 91.140.0.0/16 -j DROP
iptables -A INPUT -s 91.144.128.0/18 -j DROP
iptables -A INPUT -s 92.112.0.0/15 -j DROP
iptables -A INPUT -s 116.0.0.0/8 -j DROP
iptables -A INPUT -s 117.0.0.0/13 -j DROP
iptables -A INPUT -s 117.24.0.0/13 -j DROP
iptables -A INPUT -s 117.104.192.0/18 -j DROP
iptables -A INPUT -s 118.68.0.0/14 -j DROP
iptables -A INPUT -s 121.0.0.0/8 -j DROP
iptables -A INPUT -s 122.0.0.0/7 -j DROP
iptables -A INPUT -s 124.0.0.0/7 -j DROP
iptables -A INPUT -s 140.128.0.0/13 -j DROP
iptables -A INPUT -s 148.208.0.0/12 -j DROP
iptables -A INPUT -s 157.157.0.0/16 -j DROP
iptables -A INPUT -s 159.148.0.0/16 -j DROP
iptables -A INPUT -s 168.226.0.0/16 -j DROP
iptables -A INPUT -s 189.0.0.0/8 -j DROP
iptables -A INPUT -s 190.0.0.0/8 -j DROP
iptables -A INPUT -s 194.6.216.0/21 -j DROP
iptables -A INPUT -s 194.67.0.0/16 -j DROP
iptables -A INPUT -s 194.186.0.0/16 -j DROP
iptables -A INPUT -s 194.219.0.0/16 -j DROP
iptables -A INPUT -s 195.2.96.0/19 -j DROP
iptables -A INPUT -s 195.131.0.0/16 -j DROP
iptables -A INPUT -s 195.205.0.0/16 -j DROP
iptables -A INPUT -s 195.222.112.0/20 -j DROP
iptables -A INPUT -s 195.229.0.0/16 -j DROP
iptables -A INPUT -s 196.0.0.0/8 -j DROP
iptables -A INPUT -s 200.0.0.0/6 -j DROP
iptables -A INPUT -s 207.248.0.0/15 -j DROP
iptables -A INPUT -s 210.0.0.0/7 -j DROP
iptables -A INPUT -s 212.12.0.0/19 -j DROP
iptables -A INPUT -s 212.15.0.0/16 -j DROP
iptables -A INPUT -s 212.33.128.0/17 -j DROP
iptables -A INPUT -s 212.71.128.0/18 -j DROP
iptables -A INPUT -s 212.76.0.0/17 -j DROP
iptables -A INPUT -s 212.96.0.0/16 -j DROP
iptables -A INPUT -s 212.128.0.0/9 -j DROP
iptables -A INPUT -s 213.76.0.0/16 -j DROP
iptables -A INPUT -s 213.85.0.0/16 -j DROP
iptables -A INPUT -s 213.91.128.0/17 -j DROP
iptables -A INPUT -s 213.141.128.0/19 -j DROP
iptables -A INPUT -s 213.143.64.0/19 -j DROP
iptables -A INPUT -s 213.163.96.0/19 -j DROP
iptables -A INPUT -s 213.167.32.0/19 -j DROP
iptables -A INPUT -s 213.179.224.0/19 -j DROP
iptables -A INPUT -s 213.197.128.0/16 -j DROP
iptables -A INPUT -s 213.220.192.0/18 -j DROP
iptables -A INPUT -s 217.15.128.0/19 -j DROP
iptables -A INPUT -s 217.20.128.0/18 -j DROP
iptables -A INPUT -s 217.148.192.0/19 -j DROP
iptables -A INPUT -s 217.150.32.0/19 -j DROP
iptables -A INPUT -s 217.164.0.0/15 -j DROP
iptables -A INPUT -s 218.0.0.0/7 -j DROP
iptables -A INPUT -s 220.0.0.0/7 -j DROP
iptables -A INPUT -s 222.0.0.0/8 -j DROP
