Your can utilize the geoip iptables feature (iptables-mod-geoip
). Below is what I utilize on my Sophos UTM.
iptables -N GEOIP_OUT
iptables -N GEOIP_REJ
iptables -A GEOIP_OUT -d 192.168.1.0/24 -m geoip --source-country AI,AG,AW,BS,BB,BZ,BM,CA,KY,CR,GL,GD,GP,MQ,MX -j RETURN
iptables -A GEOIP_OUT -d 192.168.1.0/24 -m geoip --source-country MS,NI,PA,PR,BL,KN,LC,MF,PM,VC,TT,TC,US,VG,VI -j RETURN
iptables -A GEOIP_OUT -d 192.168.1.0/24 -m geoip --source-country AX,AL,AD,AT,BY,BE,BG,DK,EE,FO,FI,FR,DE,GI,GB -j RETURN
iptables -A GEOIP_OUT -d 192.168.1.0/24 -m geoip --source-country GR,GG,VA,HU,IS,IE,IM,IT,JE,LV,LI,LT,LU,MK,MT -j RETURN
iptables -A GEOIP_OUT -d 192.168.1.0/24 -m geoip --source-country MC,ME,NL,NO,PL,PT,SM,ES,SJ,SE,CH -j RETURN
iptables -A GEOIP_OUT -d 192.168.1.0/24 -m geoip --source-country AS,AU,CK,FJ,GU,KI,MH,FM,NR,NC,NZ,NU,NF,MP,PW -j RETURN
iptables -A GEOIP_OUT -d 192.168.1.0/24 -m geoip --source-country PG,PN,PF,WS,SB,TK,TO,TV,UM,VU,WF -j RETURN
iptables -A GEOIP_OUT -d 192.168.1.0/24 -m geoip --source-country AQ,BV,TF,HM,GS -j RETURN
iptables -A GEOIP_OUT -c 0 0 -j RETURN
iptables -A GEOIP_OUT -p tcp -m tcp --sport 1024:65535 --dport 53 -c 0 0 -j RETURN
iptables -A GEOIP_OUT -p udp -m udp --sport 1024:65535 --dport 53 -c 297 23962 -j RETURN
iptables -A GEOIP_OUT -p tcp -m tcp --sport 1:65535 -m multiport --dports 80,443 -c 22 1264 -j RETURN
iptables -A GEOIP_REJ -m limit --limit 1/sec -m logmark --logmark 60019 -c 0 0 -j NFLOG --nflog-prefix "GEOIP_DROP: "
iptables -A GEOIP_REJ -p tcp -c 0 0 -j REJECT --reject-with tcp-reset
iptables -A GEOIP_REJ -c 0 0 -j REJECT --reject-with icmp-port-unreachable