Данная статья поможет установить дополнительные модули для ядра, чтобы использовать новые возможности iptables и модули netfilter. Xtables-addons является преемником patch-o-matic. Кроме того он содержит расширения которые не попали в основу ядра kernel/iptables пакета. Xtables-addons отличается от patch-o-matic тем, что Вы не должны делать пересборку ядро.
Список всех доступных модулей можно найти здесь [2], а их использование здесь [3].
1. Подготовка к установке пакетов
Требуется отключить SELinux.
Отредактируем файл /etc/selinux/config
SELINUX=disabled SELINUXTYPE=targeted
echo 0 > /selinux/enforce
yum install gcc gcc-c++ make automake unzip zip xz kernel-devel-`uname -r` iptables-devel
rpm -i http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
rpm -i http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
yum install perl-Text-CSV_XS
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
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*/
Ссылки:
[1] http://htfl.ru/linux/centos
[2] /out.php?link=http://xtables-addons.sourceforge.net/modules.php
[3] /out.php?link=http://dev.medozas.de/files/xtables/xtables-addons.8.html