воскресенье, 21 июля 2013 г.

Блокируем страны в iptables

Для блокировки трафика с конкретных стран существует модуль ядра xt_geoip.ko.
Приступим к его установке.
Скачиваем и распаковываем исходники:
cd /usr/src/ 
wget http://garr.dl.sourceforge.net/project/xtables-addons/Xtables-addons/1.47/xtables-addons-1.47.1.tar.xz
tar xfJ xtables-addons-1.47.1.tar.xz
rm xtables-addons-1.47.1.tar.xz
cd xtables-addons-1.47.1

Увеличим максимальное количество стран для одного правила.
sed -i "s#XT_GEOIP_MAX = 15#XT_GEOIP_MAX = 50#g" ./extensions/xt_geoip.h

Устанавливаем необходимые для сборки пакеты:
aptitude install checkinstall pkg-config iptables-dev libtext-csv-xs-perl

Устанавливаем заголовки текущего ядра:
aptitude install linux-headers-$(uname -r)

Собираем модуль:
./configure
make
checkinstall

Включаем модуль xt_geoip.ko:
modprobe xt_geoip

Проверяем:
root# lsmod|grep geoip
xt_geoip               12591  0
x_tables               19118  8 ip_tables,iptable_filter,iptable_nat,xt_tcpudp,xt_limit,ipt_LOG,xt_state,xt_geoip

Скачиваем и устанавливаем базы GeoIP:
/usr/local/libexec/xtables-addons/xt_geoip_dl
mkdir /usr/share/xt_geoip -p
/usr/local/libexec/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip ./GeoIPCountryWhois.csv

На этом установка и настройка модуля закончена.

Примеры использования:
Блокируем трафик с Китая:
iptables -A INPUT -m geoip --source-country CN -j DROP

Разрешаем трафик со стран России и Украины:
iptables -A INPUT -m geoip --source-country RU,UA -j ACCEPT

Комментариев нет :

Отправить комментарий