Удалить все запреты fail2ban в Ubuntu Linux

16

Как я могу удалить все запреты fail2ban в Ubuntu? Я попробовал все, но я не понимаю.

Я просто хочу удалить все запреты - но я не знаю IP-адресов.

Патрик
источник
1
Запреты обычно делаются на IP-адресах через ваш брандмауэр, поэтому вы должны посмотреть на правила брандмауэра.
Джули Пеллетье
Да, я знаю. но я хочу снять все запреты, не сообщая IP-адрес
Патрик

Ответы:

26

Обновленный ответ

Начиная с версии 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 ниже для объяснения обратного отсчета.

ph0t0nix
источник
Спасибо @roaima! Я обновлю ответ соответственно.
ph0t0nix
1
@roaima Да, это так (по крайней мере, в zsh и bash): echo {5..1}приведет к 5 4 3 2 1.
ph0t0nix
Ты спас меня. Большое спасибо. Пожалуйста, добавьте полную команду, потому что я должен был выяснить, что мне нужен fail2ban-client в передней части вашей команды. (Потому что я нуб)
sebastian.roibu
Старый ответ еще кэшируются на DuckDuckGo, пришел сказать то же самое , как @roaima - snipboard.io/0oZkXy.jpg
Ari
15

Лучший способ разблокировать все IP-адреса - установить время запрета на 1 секунду, после чего все IP-адреса будут сразу освобождены.

fail2ban-client set JailName bantime 1

После этого вы можете установить правильное время забанения.

Лучше позволить fail2ban сделать unban для вас. Не редактируйте вручную iptables самостоятельно.

Филипп
источник
1
Это единственный правильный ответ здесь. Fail2ban поддерживает свою собственную базу данных банов, которая должна быть очищена независимо. Каждый ответ, говорящий об удалении правил iptables, игнорирует тот факт, что при запуске резервного копирования fail2ban он снова добавляет удаленные правила обратно в iptables. Кроме того, не каждая конфигурация fail2ban использует iptables для реализации запретов.
Клифф Армстронг
3
найти все тюрьмы сfail2ban-client status
Флион
Я только что выполнил эту команду и наблюдаю, как количество IP-адресов в моей тюрьме уменьшается до нуля, когда fail2ban обрабатывает тюрьму. Это происходит не очень быстро, но это нормально, в тюрьме было более пяти тысяч записей. Хороший ответ!
Эрик М
5

Последний fail2ban-client(0,10) имеет unban -allкоманду. Тюрьмы также можно индивидуально «перезапускать», эффективно снимая запреты.

Если у вас более старая версия, этот прием может сработать для автоматического временного запрета: удалите тюрьму, содержащую бан, затем перезапустите fail2ban, чтобы (теперь пустая) тюрьма была воссоздана.

$ fail2ban-client stop sshd
Jail stopped
$ systemctl restart fail2ban
Рольф
источник
все или все? Или все?
Wildcard
3

Сохранить конфигурацию iptable в файл

$ iptables-save > iptables.conf

Отредактируйте его с помощью любого понравившегося вам редактора, чем загрузите конфигурацию обратно в iptables

$ iptables-restore < iptables.conf

Не забудьте сохранить конфигурацию внутри iptables, чтобы она была подобрана при перезагрузке

$ service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
Subdigger
источник
Это один из способов сделать это. Благодарю.
User9102d82
3

1. остановка сервиса очистит все правила, добавленные fail2ban

service fail2ban stop

2. если у вас нет других правил iptables, вы можете сбросить их

iptables -F

будьте осторожны: это приведет к удалению любых других правил в ваших iptables.

RASG
источник
3

Вот простой простой способ разблокировать всю 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 версий ниже 0.10. Вы можете пойти дальше, создав псевдоним в .bashrc, такой как fail2ban-purge, с одним параметром для очистки целой тюрьмы. Просто замените приведенное выше слово повторения на $ 1 и используйте псевдоним в качестве fail2ban-purge <JAIL_NAME>.
ADDISON74
2

Из-за способа fail2banработы существует только два возможных решения:

  • Создайте сценарий настройки брандмауэра, который включает в себя fail2banтюрьмы, и перезапустите брандмауэр.
  • Удалите правила брандмауэра, блокирующие IP-адреса, которые вы хотите разблокировать.
Джули Пеллетье
источник
2

Это сценарий, который я использую, чтобы разблокировать все 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
Клаудио Дзанетта
источник