В порядке,
У меня странная проблема. Я только что закончил базовую настройку своего сервера. Добавление в fail2ban, postfix, apache, mysql и т. Д.
Затем я вошел и начал добавлять надстройки xtable. Я скачал версию 1.47.1
поскольку это версия (насколько мне известно) самая последняя версия для моего ядра 2.6.32-431.23.3.el6.x86_64
После компиляции с отключенными параметрами IPv6 компиляция с всегда вызывала для меня ошибки, я вошел в обновленную базу данных geoip, убедившись, что папки BE и LE находятся в /usr/share/xt_geoip
и добавил этот фильтр:
-A INPUT -m geoip ! --src-cc US -j REJECT --reject-with icmp-net-unreachable
Но когда я это сделал, я получил это сообщение:
iptables: Invalid argument. Run `dmesg' for more information.
Последняя запись в dmesg была такой:
xt_geoip: unable to load 'US' into memory: -12
Так что на данный момент я застрял. Я впервые столкнулся с этой проблемой на любом из моих серверов. Конечно, это мой первый сервер CentOS 6, все мои прошлые серверы использовали Centos 5.
Я знаю, в каком месте кода возникла ошибка (строка 86 в файле xt_geoip.c), но я знаю, что это очень поможет.
Убедитесь, что ваши скомпилированные файлы не пусты. У меня была такая же ошибка после следующих инструкций отсюда:
http://terminal28.com/how-to-block-countries-using-iptables-debian/
... и обнаружил, что файлы iv6 содержат данные, но все файлы .iv4 были пустыми, я думаю, потому что мне не хватало пакета "unzip" при первом запуске.
Проверено, чтобы подтвердить наличие данных в файлах .CSV, выполнить эту команду для повторной сборки:
./xt_geoip_build -D /usr/share/xt_geoip *.csv
... и сразу смог использовать коды стран с iptables.