Як правильно розв’язати 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', прочитайте цю відповідь
Morgan Courbet,

32
З останніми версіями fail2banви повинні використовувати fail2ban-client set JAIL_NAME unbanip 1.2.3.4.
tftd

1
Яке ім'я в'язниці за замовчуванням? /etc/fail2ban/jail.confне працює для мене.
Алекс Ш

1
Ви можете знайти ім'я в'язниці в журналі fail2ban, якщо шукаєте свій IP
fred727

7
sshd було для мене ім'ям в'язниці.
agustaf

82

Оскільки v0.8.8 є unbanipваріант ( actionunbanне для цієї мети) Це може бути запущено setкомандою, якщо ви подивитесь на список параметрів, ви побачите, що синтаксис є. Так буде (напам’ять, будь ласка, перевірте):

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/isissue/132
наступні

це правильна відповідь для поточних версій. спасибі!
billynoah

отримання "Недійсна команда (не встановлена ​​дія чи ще не реалізована)"
Том,

вам потрібно вказати правильне тюремне ім’я (наприклад, 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)
науковець

На моїй
мові

21

Відповідь ukoda неправильна:

Зателефонуйте fail2ban-clientбез параметрів, і ви побачите список можливих команд:

get JAIL actionunban ACT             

Це отримує команду unban для дії ACT для JAIL.

Подивіться на параметр дії визначеної вами в'язниці, ви, ймовірно, маєте iptables, а можливо, ще щось, як sendmail, whois чи що завгодно. тому у випадку, якщо ваша дія була iptables, вона буде виглядати приблизно так:

fail2ban-client get JAIL actionunban iptables

і відповідь буде:

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

Це лише покаже вам, що вам доведеться писати для небі. Немає самої невмілої команди.


3
Так, це спрацювало на мене, щоб зняти з тюрми SSH iptables -D fail2ban-ssh -s <IP> -j DROP. Дякую інго!
Діл

8

Якщо заборонено 192.168.2.1

sudo iptables -L

Перевірте, в якій ланцюжку заборонено, наприклад

Chain fail2ban-sasl (1 посилання)

ДРОПИТИ всі - 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 тюрма):

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-адрес, що є списком, з якого ОП хоче видалити IP-адресу.
jlh

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

Це передбачає, що HOSTEN.deny був застосованим дією .... Але це все-таки корисніше, ніж ті, що намагаються змінити метод заборонити IP-адреси на старих версіях, використовуючи actionunban...
Герт ван ден Берг

delignoreipДія НЕ видалення IP від заборони, то видалення IP зі списку ігнорованих IP (тобто IP , які ніколи не будуть заборонені).
Тонін

2

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

fail2ban-client get jail actionunban ipaddress

не біжить. Щоб вирішити проблему, найкращим вибором є оновлення fail2ban до останньої версії та використання нової опції:

unbanip


1

Якщо ІР знаходиться в декількох в'язницях, це стає болем.

однолінійний для видалення 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)

Підтверджено, що працює в моєму випадку, коли мене, швидше за все, заборонили через неодноразовий вхід sh-клієнта з неправильним паролем.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.