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

200

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

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

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

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

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

PSP
источник

Ответы:

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для получения фактических названий тюрем. Имя правила и имя тюрьмы могут не совпадать, но должно быть ясно, какое из них связано с каким.
ukoda
источник
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

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

user157436
источник
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в списке банов.

Amaroc
источник
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
zainengineer
источник
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
Пол Халлен
источник
2
fail2ban-client set sshd unbanip ip_here

должно сработать.

abhijithvijayan
источник
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

yolabingo
источник
0

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

sudo fail2ban-client unban YOUR_IP_ADDRESS

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

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

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

kashiraja
источник