Как правильно разблокировать 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.