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


Спасибо @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  ]

Это один из способов сделать это. Благодарю.
User9102d82

3

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

service fail2ban stop

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

iptables -F

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


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.