Hallo,
http://www.ipdeny.com/ipblocks/data/countries/
Hier findest du alle Länder Zone Files mit Ländercode nach ISO 3166.
Ich mache das ganze mit IPSET.
1. apt-get install ipset
2. modprobe -v ipset
3. modprobe -v ip_set_hash_net
4. ipset create countrywhitelist1 hash:net (in jedem IPSET können nur 655xx ip Netze, deswegen brauchst du eventuell mehrere)
5. die jeweilige Zonefiles von ipdeny.com ins jeweilige IPSET importieren (am besten eine Datei erstellen und vor jedes Subnetz "add countrywhitelist" schreiben und anschließend "ipset restore -! < DATEINAME")
6. iptables -I INPUT -m set --set countrywhitelist1 src -j ACCEPT (auch hier brauchst du dann eventuell mehrere)
und am ende dann ein drop all in den Iptables.
Die Zonefiles werden täglich aktualisiert. Aus dem ganzen kann man sich ein kleines script bauen dass bestimmte Zonefiles täglich automatisch runnter läd, in die countrywhitelist schreibt, die vorherige ipsetliste leert und neu importiert.
Vorteil von IPset gegenüber Iptables ist, dass es wesentlich performanter und schneller ist. Lohnt sich aber nur bei großen Listen. Bei 1 Land sicherlich nicht.