fail2ban status, статистика по блокировке
Просмотреть статус и статистику по службе sshd контролируемой fail2ban.
Loading configs for fail2ban under /etc/fail2ban
Loading files: ['/etc/fail2ban/fail2ban.conf']
Loading files: ['/etc/fail2ban/fail2ban.conf']
Using socket file /var/run/fail2ban/fail2ban.sock
Using pid file /var/run/fail2ban/fail2ban.pid, [INFO] logging to /var/log/fail2ban.log
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:
Если в момент выполнения команды есть заблокированные IP адреса, с которых шли попытки подбора паролей — они будут указаны.
Можно использовать fail2ban-client чтобы снять блокировку
fail2ban-client set ssh unbanip 111.111.111.111
Без этого она будет снята автоматически через несколько минут или десятков минут, в зависимости от настроек.
Разблокируют адреса чаще через iptables напрямую, fail2ban является просто оберткой парсящим лог и добавляющим правила в iptables.
Дополнительные сервисы при необходимости добавляются в каталог /etc/fail2ban/jail.d/
defaults-debian.conf
В нем на Debian изначально один файл, который включает отслеживание службы SSH
[sshd]
enabled = true
Можно добавить дополнительные, сама конфигурация находится в /etc/fail2ban/jail.conf. В файле есть шаблоны для phpmyadmin, zoneminder и других сервисов.
Иногда при помощи регулярных выражений так настраивают блокировку попыток подбора пароля к административному разделу.
[Решено] fail2ban разбанить ip
Если вы используете для блокировки IP iptables
Это легко понять заглянув сюда:
/etc/fail2ban/jail.conf
там мы должны убедиться что по-умолчанию в качестве action стоит именно iptables, выглядит это так:
Также это значение можно переопределить jail.local и тут:
/etc/fail2ban/jail.d/00-firewalld.conf
Пример:
Нужно закоментировать в ином случае вы будете использовать: firewalld
Как посмотреть заблокированные ip через iptable:
1. iptables -L
2. iptables -L -n
Проверка отсутствия адреса в iptables
iptables -S | greo <IP>
Как посмотреть список заблокированных IP средствами fail2ban
| Цитата |
|---|
| [root@isp-mtw data]# fail2ban-client status Status |- Number of jail: 1 `- Jail list: exim |
Список блокировок
fail2ban-client status Имя-цепочки
| Цитата |
|---|
| fail2ban-client status exim Status for the jail: exim |- Filter | |- Currently failed: 3 | |- Total failed: 6060 | `- File list: /var/log/exim/main.log `- Actions |- Currently banned: 22 |- Total banned: 288 `- Banned IP list: 45.148.10.60 45.142.195.7 45.142.195.8 218.7.116.226 37.49.230.122 185.234.216.87 60.19.64.10 78.128.113.76 37.49.230.131 207.148.79.228 87.246.7.109 117.86.13.68 78.128.113.100 103.139.44.210 87.246.7.124 222.252.38.2 37.49.230.249 196.219.96.137 185.143.75.81 45.142.195.15 185.143.75.157 156.210.24.77 |
Разблокировка по IP
# формат: fail2ban-client set <jail> unbanip <ip>
fail2ban-client set sshd unbanip 8.8.8.8
Добавить IP в исключения (временно, до перезагрузки)
# формат: fail2ban-client set <jail> addignoreip <ip>
fail2ban-client set sshd addignoreip 8.8.8.8
Добавить IP в исключения (постоянно)
Для этого нужно, добавить IP в конфиг файл /etc/fail2ban/jail.local (почему не в jail.conf объясню ниже)
Для всех цепочек, добавляем в секцию DEFAULT в параметр ignoreip (можно указывать подсети, несколько ip разделяются пробелами)
[DEFAULT]
ignoreip = 127.0.0.1/8 8.8.8.8 8.8.4.4
если нужно только для одной цепочки, то добавляем тот же ignoreip в секцию цепочки
Удалить из fail2ban заблокированный ip

Хочу рассказать в своей теме «Удалить из fail2ban заблокированный ip» как удалить из fail2ban заблокированный ip. Процедура очень простая и сейчас я покажу на готовых примерах как я это выполнял.
Проверим список ip адресов:
Удалить, например, из таблицы fail2ban-roundcube ip можно с помощью команды:
где xxx.xxx.xxx.xxx — ip адрес который надо разблокировать.
Если брать мой пример, то стоит выполнить:
f2b-phpmyadmin — это цепочка.
194.150.168.95, 178.151.40.243 — заблокированные ИП.
REJECT, DROP… — означает (говорит) что ИП был заблокирован.
Можно еще раз вызвать команду:
Есть еще 1 способ это сделать, средствами самого fail2ban. Сейчас покажу как это можно сделать.
Выводим список всех наших клеток (jail):
Вывод списка IP для конкретной клетки ( для конкретного jail):
То для того чтобы разбанить ( удалить ИП с заблокированного листа) необходимо выполнить следующую команду:
phpmyadmin — имя клетки.
178.151.40.243 — заблокированный IP (меняем на свой).
Создадим скрипт для подчета количиства забаненных ИП во всех jail-ах:
Выставим права на данный файл:
запускаем данный скрипт:
Генерация простых отчетов.
Все из следующих команд можно запустить из командной строки или с помощью скрипта. Они написаны для систем Linux / UNIX, но может работать и на других платформах.
Группировка по IP адресу:
Примечание: переменная NF равна числу полей в каждой строке в лог файле. $NF является значением для последнего поля.
В конце вывода Вы получите:
Чтобы запустить этот отчет для всех логов нужно небольшое изменение:
И получите следующий вывод:
Какие конкретные IP-адреса участвуют:
Выход этого будет список IP-адресов, начинающихся с 91.201. Если они выглядят, как будто они частью подсети (или нескольких подсетей).
Группировка по IP адрес и имеми хоста:
Команда для включения хостов в списке немного сложнее. Вы также должны вставить правильный путь к программе logresolve, который преобразует IP-адресов для хостов (например /usr/sbin/logresolve ):
Примечание: Команда logresolve может занять некоторое время, особенно, если есть много IP-адресов, подлежащих обработке.
Вывод получим следующий:
Группировка по IP адресу и в разделе Fail2ban:
Это показывает нам, какие услуги каждый IP-адрес пытается открыть / использовать:
21
Отчет о «сегодняшней деятельности»:
Вот отчет я считаю, полезно запускать до полуночи каждого дня, чтобы генерировать итоги деятельности за день:
Группировка по дате и раздел Fail2ban:
Этот отчет проверяет все Fail2ban лог-файлов и дает вам краткую информацию о том, сколько запрет мероприятия были для каждого раздела на каждый день:
И убедится что все работает. А на этом, я завершаю свою статью «Удалить из fail2ban заблокированный ip».
How to show all banned IP with fail2ban?
When I run this command fail2ban-client status sshd I got this:
It only show two IP in banned IP list instead of 8 just like Total Banned says.
While I do tail -f /var/log/auth.log I got this:
banned IP still trying.
However when I check with sudo iptables -L INPUT -v -n I got this:
What am I doing wrong here?
How can I show all banned IP list?
14 Answers 14
Please keep in mind that the fail2ban banning of IP is temporary in nature.
The best way to have a look at the full list of IPs that have been blocked would be to check the log file:
Edit: this answer previously searched for ‘Ban:’ , but even in 2013 the source has no colon (ref).
The following command can also give you a clean list of input rules:
![]()
Similar to NA AE above with kwaa’s comments included, this lists all IPs:
but that output has so many lines. This counts lines of all logged banned (and likely unbanned) ip’s:
The output from above command (with line count) should match ‘Total Banned’ count in fail2ban’s status output:
tested in Ubuntu 18.04.1 LTS.
My output from ‘wc -l’ line:
And from fail2ban’s status, the same 7244 number is verified:
You can use sqlite3 command to do some statistics by querying bips table of /var/lib/fail2ban/fail2ban.sqlite3 database (if your fail2ban version < v0.11.1 , change bips to bans ).
Show all IP address and its jail:
Show all unique IP address:
Show all unique IP address in sshd jail:
Show top 20 most banned IP address in all jails:
If you want to see structure and all data of this file in a GUI app, I recommend DB Browser For Sqlite .
As of version v0.11.1 , fail2ban changed its database structure. I run this command in my Linux machine to see what’s the difference (Fail2Ban v0.11.1 , Ubuntu 20.04 )
Part of the output is:
![]()
To view the complete line of iptables:
To view only the IP address:
You can change «REJECT» by «DROP», depending of your case.
![]()
There is the banned command (v0.11.2):
![]()
- «Total banned» are the total IPs that have been banned for that jail (and probably have been unbanned).
- «Currently banned» are the ONLY IPs that are currently banned for that jail (and the IP list confirms this).
Hope that helps.
if you want to see the list of banned IP with their timeout ( timeout expires they are removed from the banned pool ) you can use:
![]()
This will show what is currently banned (REJECT) in the Chain fail2ban-ssh portion of iptables.
![]()
Grouping by IP address:
Note: the variable NF equals the number of fields in each row of the logfile. So $NF is the value of the last field.
Visit this Link for more detail
![]()
‘Just finished updating my config’s to deal with an attack on ssh.
This is how I see the banned IP’s with their expire times, and verify that the bans are in-place. I’m using Fail2Ban v0.11.2 on Debian 11.2.
![]()
To add more generic answer:
Please note that iptables might not be correct answer and might not give you relevant information at all (for original poster it is). It depends on which value for banaction = [action] you are using in your DEFAULT or specific jail definition.
I have many small ARM powered boxes running linux but kernel does not have all relevant iptables modules available, so iptables will not work in that case.
*BSD might not have iptables at all and use use something like pf instead.
On my ARM boxes I am using route for blocking. It adds invalid route for banned IPs and therefore return packets are undeliverable and IP is essentially blocked. Works very well. In that case you can check banned IPs by using: