Поставим нужные модули:
aptitude install libtext-csv-xs-perl linux-headers-`uname -r` iptables-dev
aptitude install libxml-csv-perl libtext-csv-perl unzip xz-utils xtables-addons-source
Создадим директории для базы и для временных файлов:
mkdir -p /usr/share/xt_geoip/LE /usr/src/geoip
Скачиваем:
базу
wget -O /usr/src/geoip/GeoIPCountryCSV.zip http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip
сам гео-айпи
wget -O /usr/src/geoip/xtables-addons-1.28.tar.xz http://sourceforge.net/projects/xtables-addons/files/Xtables-addons/1.28/xtables-addons-1.28.tar.xz/download
конвертор базы для гео-айпи
wget -O /usr/src/geoip/geoip_csv_iv0.tar http://andy.od.ua/geoip/geoip_csv_iv0.tar
Распаковываем архивы
cd /usr/src/geoip
tar xf geoip_csv_iv0.tar
unzip GeoIPCountryCSV.zip
sudo xz --decompress xtables-addons-1.28.tar.xz
sudo tar xf xtables-addons-1.28.tar
компилируем гео-айпи
cd xtables-addons-1.28
sudo ./configure --with-xtlibdir=/lib/xtables
sudo make
sudo make install
Теперь конвертируем базу для гео-айпи
cd /usr/share/xt_geoip/LE
sudo perl /usr/src/geoip/geoip_csv_iv0.pl /usr/src/geoip/GeoIPCountryWhois.csv
Все установка закончена
Теперь можно и проверить
Забаним на сервере весь трафик от/до хостов, которые расположены не в Германии, Украине или России:
root@firewall:~# iptables -I INPUT ! -i lo -m geoip ! --src-cc DE,UA,RU -j DROP
Тоже самое, но только для 80го порта, с доступом только из России:
root@firewall:~# iptables -I INPUT -p tcp --dport 80 ! -i lo -m geoip ! --src-cc RU -j DROP
Забаним ненавистный китай совсем:
root@firewall:~# iptables -I INPUT ! -i lo -m geoip --src-cc CN -j DROP