Fail2ban перенаправление
Я только что завершил настройку fail2ban на моем обратном прокси-сервере Centos. Я смог заставить его блокировать все запросы, если были выполнены определенные критерии (довольно просто).
Однако теперь я хотел бы перенаправлять оскорбительных пользователей, а не блокировать их. Я знаю, что это возможно, используя файл пользовательских действий, но я просто не могу заставить его работать правильно. Я хотел бы перенаправить либо на другой порт на сервере (может быть, запуск Apache с пользовательской веб-страницей, указывающей, почему они были перенаправлены), либо на другой веб-сайт полностью.
Какие-нибудь мысли? Вот моя попытка перенаправления на другой порт (намерение состояло в том, чтобы перенаправить нарушающих пользователей на порт 8080 на том же сервере). Действие называется firewall-redirect, и оно было получено из firewallcmd-ipset.
# Fail2Ban action file for firewall-cmd/ipset
#
# This requires:
# ipset (package: ipset)
# firewall-cmd (package: firewalld)
#
# This is for ipset protocol 6 (and hopefully later) (ipset v6.14).
# Use ipset -V to see the protocol and version.
#
# IPset was a feature introduced in the linux kernel 2.6.39 and 3.0.0 kernels.
#
# If you are running on an older kernel you make need to patch in external
# modules.
[INCLUDES]
before = iptables-common.conf
[Definition]
actionstart = ipset create fail2ban-<name> hash:ip timeout <bantime>
firewall-cmd --add-forward-port=port=443:proto=tcp:toport=8080 -m set --match-set fail2ban-<name> src
actionstop = firewall-cmd --remove-forward-port=port=443:proto=tcp:toport=8080 -m set --match-set fail2ban-<name> src
ipset flush fail2ban-<name>
ipset destroy fail2ban-<name>
actionban = ipset add fail2ban-<name> <ip> timeout <bantime> -exist
actionunban = ipset del fail2ban-<name> <ip> -exist
[Init]
# Option: chain
# Notes specifies the iptables chain to which the fail2ban rules should be
# added
# Values: [ STRING ]
#
chain = INPUT_direct
# Option: bantime
# Notes: specifies the bantime in seconds (handled internally rather than by fail2ban)
# Values: [ NUM ] Default: 600
bantime = 600
# DEV NOTES:
#
# Author: Edgar Hoch and Daniel Black
# firewallcmd-new / iptables-ipset-proto6 combined for maximium goodness
Кроме того, вот фрагмент ошибки, которую я вижу в файле fail2ban.log. Я понимаю, что это ошибка, я просто не знаю, как это исправить.:-)
2015-06-01 09:49:05,548 fail2ban.action [11334]: ERROR ipset create fail2ban-apache-gpd_flood hash:ip timeout 3600
firewall-cmd --add-forward-port=port=443:proto=tcp:toport=8080 -m set --match-set fail2ban-apache-gpd_flood src -- stdout: ''
2015-06-01 09:49:05,548 fail2ban.action [11334]: ERROR ipset create fail2ban-apache-gpd_flood hash:ip timeout 3600
firewall-cmd --add-forward-port=port=443:proto=tcp:toport=8080 -m set --match-set fail2ban-apache-gpd_flood src -- stderr: 'usage: see firewall-cmd man page\nfirewall-cmd: error: unrecognized arguments: -m set --match-set fail2ban-apache-gpd_flood src\n'
2015-06-01 09:49:05,549 fail2ban.action [11334]: ERROR ipset create fail2ban-apache-gpd_flood hash:ip timeout 3600
firewall-cmd --add-forward-port=port=443:proto=tcp:toport=8080 -m set --match-set fail2ban-apache-gpd_flood src -- returned 2
2015-06-01 09:49:05,549 fail2ban.actions [11334]: ERROR Failed to start jail 'apache-gpd_flood' action 'firewallcmd-redirect': Error starting action
Заранее спасибо!
1 ответ
Я не уверен, но вот мои предложения:
Здесь остается, что ipset не всегда устанавливается вместе с fail2ban. Не могли бы вы проверить, установлен ли у вас ipset?
Ответ на /questions/622078/konfiguratsiya-fail2ban-dlya-nginx-s-ispolzovaniem-firewallcmd-v-centos-7/622084#622084 предлагает использовать iptables вместо firewalld. Если вы сделаете это, вы можете переписать
actionban
как:iptables -t nat -A PREROUTING -i eth0 -p tcp -s bannedip --dport 443 -j REDIRECT --to-port 8080
а также
actionunban
как:iptables -t nat -D PREROUTING -i eth0 -p tcp -s bannedip --dport 443 -j REDIRECT --to-port 8080
(см. здесь).
Ваше bantime (3600) в настоящее время не совпадает с bantime в разделе Init вашей конфигурации. Смотрите дуэли fail2ban и ipset таймауты.