Как правильно разблокировать IP с помощью Fail2Ban


200

Я использую Fail2Ban на сервере, и мне интересно, как правильно разблокировать IP.

Я знаю, что могу работать с IPTables напрямую: iptables -D fail2ban-ssh <number>

Но нет ли способа сделать это с fail2ban-client?

В руководствах говорится что - то вроде: fail2ban-client get ssh actionunban <IP>. Но это не работает.

Кроме того, я не хочу, чтобы /etc/init.d/fail2ban restartэто потеряло все запреты в списке.

Ответы:


278

С Fail2Ban до v0.8.8:

fail2ban-client get YOURJAILNAMEHERE actionunban IPADDRESSHERE

С Fail2Ban v0.8.8 и выше:

fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE

Трудная часть - найти правильную тюрьму:

  1. Используйте, iptables -L -nчтобы найти имя правила ...
  2. ... затем используйте fail2ban-client statusдля получения фактических названий тюрем. Имя правила и имя тюрьмы могут не совпадать, но должно быть ясно, какое из них связано с каким.

2
Если у вас есть следующая ошибка 'Invalid Action name', прочитайте этот ответ
Морган Курбе

32
С последними версиями fail2banвы должны использовать fail2ban-client set JAIL_NAME unbanip 1.2.3.4.
TFTD

1
Какое имя тюрьмы по умолчанию? /etc/fail2ban/jail.confне работает для меня
Алекс W

1
Вы можете найти имя тюрьмы в журнале fail2ban, если вы ищете свой IP
fred727

7
sshd был тюремным именем для меня.
agustaf

82

Так как в v0.8.8 есть unbanipопция ( actionunbanне для этой цели), она может быть запущена setкомандой, если вы посмотрите список опций, вы увидите синтаксис is. Так и будет (наизусть, пожалуйста, проверьте):

fail2ban-client set ssh-iptables unbanip IPADDRESSHERE 

более общий:

fail2ban-client set JAILNAMEHERE unbanip IPADDRESSHERE

работает для меня


3
Команда unbanip была добавлена ​​в версии 0.8.8. Лучшее решение, если вы используете 0.8.8 или более позднюю версию.
Александровский сад

1
Проблема, связанная с этим в трекере fail2ban, заключается в следующем: github.com/fail2ban/fail2ban/issues/132
aseques

это правильный ответ для текущих версий. благодарю вас!
Биллиноа

получение «Недопустимая команда (не задано действие или еще не реализовано)»
Том

вам нужно указать правильное имя (например, sshd или sshd-dos, смотрите ваш журнал fail2ban)
mirage

53

Пример для SSH в интерактивном режиме.

введите bash:

fail2ban-client -i

затем в интерактивном режиме наберите статус тюрьмы:

status sshd

ты получишь:

Status for the jail: ssh
|- Filter
|  |- Currently failed: 0
|  |- Total failed: 6
|  `- File list:    /var/log/auth.log
`- Actions
   |- Currently banned: 1
   |- Total banned: 2
   `- Banned IP list:   203.113.167.162

затем введите в интерактивном режиме fail2ban:

set sshd unbanip 203.113.167.162

ты получишь:

203.113.167.162

это означает, что больше нет 203.113.167.162в списке банов.


3
Для меня имя тюрьмы было sshd(Ubuntu 16)
scipilot

На моем, это говорит, что общее количество забаненных: 6, но список под заблокированным ip просто пуст :( должен
пролистать

21

Ответ укода неправильный

Звоните fail2ban-clientбез параметров и вы увидите список возможных команд:

get JAIL actionunban ACT             

Это получает команду unban для действия ACT для JAIL.

Посмотрите на параметр action определенной вами тюрьмы, возможно, у вас есть действие iptables и, возможно, еще что-то вроде sendmail, whois или что-то еще. так что если ваше действие было iptables, оно будет выглядеть так:

fail2ban-client get JAIL actionunban iptables

и ответ будет:

iptables -D fail2ban-NAME -s IP -j DROP

Он покажет вам только то, что вы должны написать для банера. Сама команда unban не существует.


3
Да, это сработало для меня, чтобы отстраниться от тюрьмы SSH iptables -D fail2ban-ssh -s <IP> -j DROP. Спасибо, Инго!
Deele

8

Если 192.168.2.1 забанен

sudo iptables -L

Проверьте, в какой цепочке он запрещен, например

Цепочка fail2ban-sasl (1 ссылок)

DROP all - 192.168.2.1 где угодно

Затем:

# to view the proper command for un-banning
sudo fail2ban-client get sasl actionunban
# actual command
iptables -D fail2ban-sasl -s 192.168.2.1 -j DROP

4

Сначала нужно получить название тюрьмы. Вы можете получить список (в большинстве случаев это будет только ssh jail):

fail2ban-client status

После получения имени тюрьмы вы можете проверить, какие IP-адреса игнорируются.

fail2ban-client get ssh ignoreip

Если ваш IP находится в списке игнорируемых, вы можете удалить его через:

fail2ban-client set ssh delignoreip your_ip_address
vi /etc/hosts.deny

Удалите запись вашего хоста:

fail2ban-client reload

2
Список игнорируемых пользователей - это список IP-адресов, которые никогда не запрещать. Это совершенно не связано со списком заблокированных на данный момент IP-адресов, из которого OP хочет удалить IP-адрес.
2012 г.

3

Использование fail2ban v.0.8.6:

$ sudo fail2ban-client status # to reveal your JAIL name (mine is ssh)
$ sudo fail2ban-client set ssh delignoreip your_ip_address
$ sudo nano /etc/hosts.deny # delete your ip address
$ sudo fail2ban-client reload

Это предполагает, что hosts.deny было используемым действием .... Но это все же более полезно, чем вещи, которые пытаются изменить метод отмены запрета IP-адресов в более старых версиях с помощью actionunban...
Герт ван ден Берг

delignoreipДействие не удаление IP от запрета, то удаление IP из списка игнорируемых IP (т.е. IP , которые никогда не будут запрещены).
Тонин

2

к сожалению, с версией 0.8.2 fail2ban-client команда:

fail2ban-client get jail actionunban ipaddress

не работает. Чтобы решить эту проблему, лучше всего обновить fail2ban до последней версии и использовать новую опцию:

unbanip


1

Если IP находится в нескольких тюрьмах, это становится проблемой.

одна строка для удаления 192.168.1.2 из всех тюрем:

 for jail in $(fail2ban-client status | grep 'Jail list:' | sed 's/.*Jail list://' | sed 's/,//g'); do fail2ban-client set $jail unbanip 192.168.1.2; done

скрипт для того же https://gist.github.com/yolabingo/c810db6fe7f8bfcb9eb4f6ffc531e474


0

Если вы используете версию v0.10.2:

sudo fail2ban-client unban YOUR_IP_ADDRESS

Это из справки:

unban <IP> ... <IP> unbans <IP> (in all jails and database)

Подтвердил работу в моем случае, когда меня, скорее всего, забанили из-за повторного входа клиента ssh с неверным паролем.

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