Ставим зависимости:
yum install gcc gcc-c++ make automake unzip zip xz kernel-devel-`uname -r` iptables-devel perl-Text-CSV_XS
выкачиваем последнюю версию и ставим
(Для ядер < 3.7 -> xtables-addons-1.47
Для ядер > 3.7 -> xtables-addons-2)
wget https://sourceforge.net/projects/xtables-addons/files/Xtables-addons/1.47/xtables-addons-1.47.1.tar.xz
tar xvf xtables-addons-1.47.1.tar.xz
cd xtables-addons-1.47.1
./configure
make
make install
если вылезет ошибка
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
то правим
vim /lib/modules/`uname -r`/build/include/linux/autoconf.h
Найдите строку:
#define CONFIG_IP6_NF_IPTABLES_MODULE 1
Замените на:
/*#define CONFIG_IP6_NF_IPTABLES_MODULE 1*/
выкачиваем базу гео
cd geoip/
./xt_geoip_dl
./xt_geoip_build GeoIPCountryWhois.csv
mkdir -p /usr/share/xt_geoip/
cp -r {BE,LE} /usr/share/xt_geoip/
загружаем модуль для фаерволла
modprobe xt_geoip
добавим пример блокировки Китая, для этого
vim /etc/sysconfig/iptables
и добавим строку
-A INPUT -m geoip --src-cc CN -j DROP
передергиваем правила и радуемся
service iptables reload