Xtables-Addons на Centos 6 & Iptables GeoIP фильтрация

Данная статья поможет установить дополнительные модули для ядра, чтобы использовать новые возможности iptables и модули netfilter. Xtables-addons является преемником patch-o-matic. Кроме того он содержит расширения которые не попали в основу ядра kernel/iptables пакета. Xtables-addons отличается от patch-o-matic тем, что Вы не должны делать пересборку ядро.

Список всех доступных модулей можно найти здесь, а их использование здесь.

1. Подготовка к установке пакетов
Требуется отключить SELinux.
Отредактируем файл /etc/selinux/config

SELINUX=disabled
SELINUXTYPE=targeted

И отправим команду отключения, чтоб не перезагружать OS:
echo 0 > /selinux/enforce

2. Установка пакетов
Установим нужные пакеты:
yum install gcc gcc-c++ make automake unzip zip xz kernel-devel-`uname -r` iptables-devel

Для установки пакета perl-Text-CSV_XS, нам потребуется добавить репозиторий rpmforge.
Для 32 битной ОС:
rpm -i http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm

Для 64 битной ОС:
rpm -i http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

И установить пакет perl-Text-CSV_XS:
yum install perl-Text-CSV_XS

3. Установка Xtables-addons
Скачаем и распакуем пакет.
cd /tmp
wget http://sourceforge.net/projects/xtables-addons/files/Xtables-addons/1.47.1/xtables-addons-1.47.1.tar.xz
tar xvf xtables-addons-1.47.1.tar.xz

Перейдем в папку модуля:
cd /tmp/xtables-addons-1.47.1

Теперь скомпилируем и соберем модуль:
./configure
make && make install

4. Установка и настройка GeoIP модуля
Создадим geoip базу для iptables:
cd /tmp/xtables-addons-1.47.1/geoip/

./xt_geoip_dl
./xt_geoip_build GeoIPCountryWhois.csv

mkdir -p /usr/share/xt_geoip/
cp -r {BE,LE} /usr/share/xt_geoip/

Протестируем:
iptables -I INPUT -m geoip --src-cc CN -j DROP

Таким образом мы заблокировали все входящие Китайские айпишники.

Возможные проблемы
Часто встречается проблема compat_xtables:

make[3]: Entering directory `/usr/src/kernels/2.6.32-431.17.1.el6.x86_64'
  CC [M]  /opt/xtables-addons-1.47.1/extensions/compat_xtables.o
/opt/xtables-addons-1.47.1/extensions/compat_xtables.c: В функции ‘xtnu_ipv6_find_hdr’:
/opt/xtables-addons-1.47.1/extensions/compat_xtables.c:633: ошибка: слишком мало аргументов в вызове функции ‘ipv6_find_hdr’
make[4]: *** [/opt/xtables-addons-1.47.1/extensions/compat_xtables.o] Ошибка 1
make[3]: *** [_module_/opt/xtables-addons-1.47.1/extensions] Ошибка 2
make[3]: Leaving directory `/usr/src/kernels/2.6.32-431.17.1.el6.x86_64'
make[2]: *** [modules] Ошибка 2
make[2]: Leaving directory `/opt/xtables-addons-1.47.1/extensions'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Leaving directory `/opt/xtables-addons-1.47.1'
make: *** [all] Ошибка 2

Метод решения данной проблемы:
Требуется изменить файл - /lib/modules/`uname -r`/build/include/linux/autoconf.h

mcedit /lib/modules/`uname -r`/build/include/linux/autoconf.h
 
Найдите строку:
#define CONFIG_IP6_NF_IPTABLES_MODULE 1
 
Замените на:
/*#define CONFIG_IP6_NF_IPTABLES_MODULE 1*/



Яндекс.Метрика
Счётчик ТЦ#65533;Ц LiveRSS: Каталог русскоязычных RSS-каналов