У меня очень странная проблема с fail2ban / iptables. Что-то не работает, но я не могу понять, что именно.
Я добавил эти настройки и фильтр для fail2ban:
[wordpress-register]
enabled = true
port = http,https
filter = wordpress-register
logpath = /var/log/nginx/access.log
[Definition]
failregex = ^<HOST> .* "GET /wp-login.php\?action=register HTTP/.*" .*$
Fail2ban запускается, но в журналах ошибок есть следующее:
2014-09-22 15: 14: 35,794 fail2ban.server.action [5275]: ERROR ipset create fail2ban-wordpress-register hash: ip timeout 600
firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p tcp -m multiport --dports http, https -m set --match-set fail2ban-wordpress-register src -j REJECT --reject-with icmp -port-unreachable - stderr: 'ipset v6.19: получена ошибка ядра: тип набора не поддерживается \ n'
2014-09-21 02: 57: 43,860 fail2ban.server.action [1191]: ERROR ipset create fail2ban-wordpress-register hash: ip timeout 600 firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p tcp -m multiport --dports http, https -m set --match-set fail2ban-wordpress-register src -j REJECT --reject-with icmp-port-unreachable - stdout: "\ x1b [91mError: COMMAND_FAILED: '/ sbin / iptables -t filter -I INPUT_direct 1 -p tcp -m multiport --dports http, https -m set --match-set fail2ban-wordpress-register src -j REJECT --reject-with icmp-port-unreachable ' не удалось: iptables v1.4.21: Set fail2ban-wordpress-register не существует. \ n \ nПопробуйте `iptables -h 'или' iptables --help 'для получения дополнительной информации. \ x1b [00m \ n"
Есть идеи, в чем может быть проблема? Думаю, главное то, что:
ipset v6.19: получена ошибка ядра: тип набора не поддерживается
Но что это значит?
В ipset
команда требует поддержки IP SET в ядре. В частности, вам нужны следующие настройки:
CONFIG_IP_SET=m
CONFIG_IP_SET_HASH_IP=m
И похоже, что ваше ядро построено без поддержки ipset, или, по крайней мере, оно не может найти эти модули. Решите эту проблему, и ваша ошибка исчезнет.
Попробуйте бежать find /lib/modules/$(uname -r) -name ip_set.ko
чтобы узнать, поддерживает ли ваше текущее ядро их, а также find /lib/modules -name ip_set.ko
чтобы узнать, поддерживает ли их какое-либо из установленных ядер.
Если вам нужна дополнительная помощь, сообщите нам:
Я также должен отметить, что версия ipset, указанная в вашем вопросе (6.19), поставляется с CentOS 7, поэтому, если вы используете исходное ядро и fail2ban из репозитория EPEL, все должно работать.
CentOS 6.5 также поддерживает наборы IP-адресов, а в EPEL для CentOS 6 доступен fail2ban. Они также должны работать нормально.
Однако, если вы используете CentOS 5, вам, скорее всего, не повезло. Возможно, вам повезет со сборкой модулей, поставляемых с ipset, но я не уверен, что ядро CentOS 5 вообще поддерживается. Если вам действительно удалось это осуществить, а затем обновить ядро, то это просто вопрос перестройки модулей для нового ядра.