Как я могу удалить все запреты fail2ban в Ubuntu? Я попробовал все, но я не понимаю.
Я просто хочу удалить все запреты - но я не знаю IP-адресов.
Как я могу удалить все запреты fail2ban в Ubuntu? Я попробовал все, но я не понимаю.
Я просто хочу удалить все запреты - но я не знаю IP-адресов.
Ответы:
Начиная с версии 0.10.0 fail2ban-client
имеется unban
команда, которую можно использовать двумя способами:
unban --all unbans all IP addresses (in all
jails and database)
unban <IP> ... <IP> unbans <IP> (in all jails and
database)
Кроме того, restart <JAIL>
, reload <JAIL>
и reload
команды теперь имеют --unban
опцию.
fail2ban использует iptables
для блокировки трафика. Если вы хотите увидеть заблокированные IP-адреса, введите
iptables -L -n
и найдите различные названные цепочки fail2ban-something
, где something
указывает на тюрьму fail2ban (например, Chain f2b-sshd
ссылается на тюрьму sshd
). Если вы хотите удалить блок только для одного IP-адреса <IP>
для данной тюрьмы <JAIL>
, fail2ban предлагает свой собственный клиент:
fail2ban-client set <JAIL> unbanip <IP>
В качестве альтернативы вы можете использовать номера строк. Сначала перечислите iptables
правила с номерами строк:
iptables -L -n --line-numbers
Далее вы можете использовать
iptables -D fail2ban-somejail <linenumber>
удалить одну строку из таблицы. Насколько я знаю, нет возможности выбрать диапазон номеров строк, поэтому я думаю, вам придется заключить эту команду в цикл for:
for lin in {200..1}; do
iptables -D fail2ban-somejail $lin
done
Здесь я сделал число 200. Проверьте свой собственный вывод команды с --line-numbers
и обратите внимание, что последняя строка (с RETURN
) должна остаться. См. Комментарий @ roaima ниже для объяснения обратного отсчета.
echo {5..1}
приведет к 5 4 3 2 1
.
Лучший способ разблокировать все IP-адреса - установить время запрета на 1 секунду, после чего все IP-адреса будут сразу освобождены.
fail2ban-client set JailName bantime 1
После этого вы можете установить правильное время забанения.
Лучше позволить fail2ban сделать unban для вас. Не редактируйте вручную iptables самостоятельно.
fail2ban-client status
Последний fail2ban-client
(0,10) имеет unban -all
команду. Тюрьмы также можно индивидуально «перезапускать», эффективно снимая запреты.
Если у вас более старая версия, этот прием может сработать для автоматического временного запрета: удалите тюрьму, содержащую бан, затем перезапустите fail2ban, чтобы (теперь пустая) тюрьма была воссоздана.
$ fail2ban-client stop sshd
Jail stopped
$ systemctl restart fail2ban
Сохранить конфигурацию iptable в файл
$ iptables-save > iptables.conf
Отредактируйте его с помощью любого понравившегося вам редактора, чем загрузите конфигурацию обратно в iptables
$ iptables-restore < iptables.conf
Не забудьте сохранить конфигурацию внутри iptables, чтобы она была подобрана при перезагрузке
$ service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
Вот простой простой способ разблокировать всю fail2ban тюрьму надлежащим образом:
iptables -L f2b-recidive -n | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | grep -v 0.0.0.0 | xargs -n 1 fail2ban-client set recidive unbanip
ПРИМЕЧАНИЕ. Команда iptables принимает префикс «f2b-» перед именем тюрьмы, а «fail2ban-client» - реальное имя тюрьмы.
Из-за способа fail2ban
работы существует только два возможных решения:
fail2ban
тюрьмы, и перезапустите брандмауэр.Это сценарий, который я использую, чтобы разблокировать все IP-адреса для ssh-джейла (просто замените sshd вхождение на нужное вам имя ... например, mysqld-auth)
#!/bin/bash
j=$(iptables -L f2b-sshd | grep -c 'REJECT')
for ((i=1;i<=j;i++))
do
fail2ban-client set sshd unbanip $(fail2ban-client status sshd | grep 'Banned IP list:' | cut -c23-)
done