Настройка и использование fail2ban на linux

Удалить ip адрес из заблокированных fail2ban

Вам может понадобиться вручную удалить какой-то ip адрес из списка заблокированных fail2ban. Часто в блок попадают ip адреса при настройке учетной записи у пользователя. Пароль может быть перепутан или копироваться с лишними символами. Всякое бывает.

Можно напрямую удалить правило через iptables. Но это будет не очень правильно. Лучше воспользоваться готовым инструментом от fail2ban для удаления ip адресов из блокировки.

Смотрим список активных jail’ов.

# fail2ban-client status
Status
|- Number of jail:	2
`- Jail list:	dovecot, postfix-sasl

Смотрим список заблокированный ip адресов в jail.

# fail2ban-client status postfix-sasl
Status for the jail: postfix-sasl
|- Filter
|  |- Currently failed:	1
|  |- Total failed:	169
|  `- File list:	/var/log/maillog
`- Actions
   |- Currently banned:	27
   |- Total banned:	86
   `- Banned IP list:	46.38.150.193 87.246.7.66 212.70.149.2 141.98.80.150 46.38.150.203 185.143.75.153 212.70.149.18 46.38.150.191 87.246.7.70 185.143.75.81 185.143.72.34 46.38.150.142 46.38.150.190 185.143.72.27 185.143.72.25 185.143.72.23 46.38.145.6 46.38.145.252 46.38.150.188 46.38.145.249 46.38.145.5 46.38.145.250 46.38.145.248 46.38.145.254 46.38.145.253 185.143.72.16 46.38.145.251

Теперь разбаним один из адресов в fail2ban:

# fail2ban-client set postfix-sasl unbanip 46.38.150.193
1

Если получите одну из этих ошибок:

2020-06-17 20:15:14,809 fail2ban : ERROR NOK: ('Invalid command (no get action or not yet implemented)',)
2020-06-17 20:13:02,078 fail2ban : ERROR NOK: ("Invalid command '46.38.150.193' (no set action or not yet implemented)",)
2020-06-17 20:11:48,132 fail2ban : ERROR   NOK: ('list index out of range',)

Значит у вас более старая версия fail2ban. Тогда нужно использовать другую команду для разбана ip адреса:

# fail2ban-client get postfix-sasl actionunban 46.38.150.193

Для проверки можете посмотреть на цепочки правил iptables, чтобы убедиться, в том, что адреса реально удалены из блокировки.

Дополнительная конфигурация Fail2ban Jail

До сих пор мы рассматривали основные параметры конфигурации. Если вы хотите настроить секции, вам необходимо включить его в файл jail.local . Синтаксис довольно прост:

. . .
enabled = true

Где вы должны заменить jail_to_enable актуальной секцией, например «sshd». В файле jail.local следующие значения будут предопределены для службы ssh:


port = ssh
logpath = %(sshd_log)s

Вы можете включить фильтр, который поможет определить, является ли строка в журнале неудачной. Значение фильтра — это ссылка на файл с именем службы, за которым следует .conf. Например: /etc/fail2ban/filter.d/sshd.conf.

Синтаксис:

filter = service

Например:

filter = sshd

Вы можете просмотреть существующие фильтры в следующем каталоге: /etc/fail2ban/filter.d/.

Использование fail2ban-client

Fail2ban поставляется с клиентом, который может использоваться для просмотра и изменения текущей конфигурации. Поскольку он предоставляет множество опций, вы можете ознакомиться с его руководством с помощью:

# man fail2ban-client

Здесь вы увидите некоторые из основных команд, которые вы можете использовать. Чтобы просмотреть текущий статус fail2ban или конкретной тюрьмы, вы можете использовать:

# fail2ban-client status

Результат будет выглядеть примерно так:

Проверка статуса Fail2ban

Для отдельной секции вы можете запускать:

# fail2ban-client status sshd

На скриншоте ниже вы увидите, что я намеренно ошибся в нескольких входах, поэтому fail2ban может заблокировать IP-адрес, с которого я пытался подключиться:

Проверка SSH статуса Fail2ban

Изменение цели журнала

Целевой объект журнала обычно не нужно изменять. Однако, если вам нужно изменить его, вы можете сделать это следующим образом:

1. Чтобы изменить цель журнала, отредактируйте файл fail2ban.local с помощью приведенной ниже команды в Терминале.

$ sudo nano /etc/fail2ban/fail2ban.local

Если файл fail2ban.local не создан, вы можете создать его, как показано в предыдущем разделе «Изменение уровня журнала».

2. Теперь найдите LOGTARGET запись в файле fail2ban.local. Вы можете использовать Ctrl + w, чтобы найти любую запись в редакторе Nano.

3. Измените запись logtarget на желаемую цель, которой может быть любой файл, например STDOUT, STDERR или SYSLOG. Затем сохраните и выйдите из файла fail2ban.local.

4. Перезапустите Fail2banservice следующим образом:

$ sudo systemctl restart fail2ban

5. После изменения цели журнала вы можете подтвердить ее, используя следующую команду:

$ sudo fail2ban-client get logtarget

Теперь в выходных данных должна отображаться новая цель журнала.

В этом посте вы узнали, как проверять журналы Fail2ban. Вы также узнали об уровнях журнала Fail2ban и целях журнала, а также о том, как их изменить, если вам когда-либо понадобится.

Настройки

Данная вкладка предназначена для настройки работы Fail2ban.

Флаги «Защитить почтовый сервер», «Защитить веб-почту», «Защитить сервер телефонии», «Защитить VPN-сервер», «SSH», «FTP», «GUI» позволяют Fail2ban анализировать логи авторизации в соответствующих модулях.

В поле «Количество неудачных попыток авторизаций» можно задать количество неудачных попыток авторизации в одном из модулей, отмеченных флагом. После этого IP-адресу будет полностью заблокирован доступ к ИКС. По умолчанию установлено 3 попытки.

В поле «Интервал неудачных попыток авторизаций» задается время, в течение которого в каждом модуле подсчитывается количество неудачных попыток авторизации (в минутах). По умолчанию установлен интервал 10 минут.

Поле «Блокировать на» предназначено для установки времени, в течение которого будет действовать блокировка IP-адреса (в минутах). По умолчанию установлено значение 10 минут.

Флаг «Увеличивать время бана» позволяет включить дополнительные настройки Fail2ban для увеличения времени бана:

  • Прибавить к времени бана случайное время из диапазона от 0 до — параметр выберет случайное значение и прибавит к стандартному времени бана (в минутах);
  • «Фактор роста» — дополнительный глобальный коэффициент, на который будут умножаться все множители из списка. Увеличение фактора роста удобно использовать, когда вы хотите значительно увеличить время бана. В таком случае не потребуется переписывать список множителей;
  • «Список множителей» — список, по которому будет происходить рост времени бана. Порядковый номер множителя будет соответствовать количеству раз, когда IP-адрес попал в дополнительный бан;
  • флаг «Не разделять попытки авторизации по службам».

Пример

  • первый бан = (время бана + случайное время) * первый множитель * фактор роста;
  • второй бан = (время бана + случайное время) * второй множитель * фактор роста и т. д.;
  • по достижении IP-адреса последнего множителя и далее время бана будет считаться по последнему множителю.

Внимание! IP-адреса, попадающие в бан, считаются плохими. На них будет срабатывать увеличение времени бана, пока не пройдет трехкратный промежуток времени последнего бана либо пока они не будут разбанены вручную

Если авторизация на FTP идет через браузер, то количество попыток авторизации, указанное в поле «Количество неудачных попыток авторизаций», будет в два раза меньше, так как браузер пытается первоначально авторизоваться под учетной записью Anonymous.

На данной вкладке также можно сформировать белый список для Fail2ban. Нажмите кнопку «Белый список» и в открывшемся окне задайте соответствие IP-адреса/подсети/диапазона (192.168.1.1, либо 192.168.1.1/28, либо 192.168.1.1-192.168.1.3) и сервиса (всех сервисов), для которых Fail2ban не будет срабатывать. Нажмите «Сохранить».

Внимание! Если Fail2ban заблокирует IP-адрес по одному из сервисов, то доступ с IP-адреса к другим сервисам также будет заблокирован, в том числе к сервисам, добавленным в белый список. Чтобы изменения настроек вступили в силу, нажмите «Сохранить»

Чтобы изменения настроек вступили в силу, нажмите «Сохранить».

Просмотр логов Fail2ban и конфигурации брандмауэра

Для таких служб, как Fail2ban, особенно важно обеспечить правильную работу. Сначала воспользуйтесь systemctl для проверки состояния службы:

systemctl status fail2ban

Если что-то кажется ненормальным, можно попробовать устранить неполадки и проверить логи Fail2ban с момента последней загрузки:

journalctl -b -u fail2ban

Затем воспользуйтесь fail2ban-client для запроса общего состояния fail2ban-server или состояния отдельных “тюрем”.

fail2ban-client status
fail2ban-client status имя_тюрьмы

Просмотр записей о недавних действиях в логе Fail2ban (для выхода нажмите Ctrl-C):

tail -F /var/log/fail2ban.log

Вывод правил, настроенных в iptables:

iptables -L

Показать правила iptables в формате, отражающем необходимые для задействования каждого правила команды:

iptables -S

Как убедиться, что вас действительно забанил fail2ban, и это не какая-то другая проблема

1. Сервер пингуется
2. У вас есть возможность подключиться к серверу другим способом, например через виртуальную консоль (многие хостеры виртуальных серверов предлагают такую услугу) или даже через IP-KVM (если у вас реальный сервер)
3. Если перестать пытаться подключиться к серверу, через 10 минут он снова вас пустит (по умолчанию блокировка ssh производится на 10 минут)
4. После того, как вам всё-таки удалось подключиться к серверу, вы увидели в файле /var/log/fail2ban.log строчки вида:

2016-04-29 02:16:20,039 fail2ban.actions: WARNING  Ban 185.103.252.14
2016-04-29 02:26:20,825 fail2ban.actions: WARNING  Unban 185.103.252.14

где вместо 185.103.252.14 указан ваш IP-адрес.
5. После успешного подключения к серверу, вы обнаружили в файле /var/log/auth.log сообщения об ошибках, связанные с вашим IP-адресом. (Кстати, быстрее всего свой ip-адрес можно узнать, открыв internet.yandex.ru)

Управление правилами fail2ban

Временное отключение блокировки IP адреса

Для этого Вам необходимо воспользоваться услугой iptables. Сначала мы выведем список правил на консоль, а затем выбрав нужные IP, удалим их из бана.

Для просмотра списка правил введите команду:

Вы увидите сообщение следующего вида:

Нас интересует удалить из бана IP адрес 1.2.3.4, который (как мы видим) находится в цепочке правил (chain) под названием fail2ban-ASTERISK. Набираем команду:

В случае успешного выполнения команды никаких сообщений не появится, и если мы теперь снова запустим команду

то увидим, что IP адрес исчез из блокировки iptables (хотя и остался в блокировке fail2ban!). При этом мы снова можем подключаться к серверу asterisk

Постоянное отключение блокировки IP адреса

Для того, чтобы fail2ban не блокировал определенный IP адрес (или несколько IP адресов) независимо от того, сколько неудачных попыток подбора пароля (и прочих “неправомерных” действий) они совершили, необходимо произвести дополнительную настройку jails в файле /etc/fail2ban/jail.conf

В каждом правиле файла jail.conf может присутствовать параметр ignoreip, который задает список IP адресов, попадающих в “белый список” для этого правила

Поскольку правил у нас может быть два, обратите внимание, что Ваш IP необходимо прописывать в обоих правилах!. Параметр имеет следующий вид:

Параметр имеет следующий вид:

То есть Вы можете прописывать как подсети, так и отдельные IP адреса (в данном случае в “белый список” попадают IP 127.0.0.1-127.0.0.255, 192.168.0.1-192.168.255.255 и 1.2.3.4).

Разблокировка IP адреса, с которого производилось тестирование

Во время проверки правильности настройки fail2ban Вы неоднократно запускали SIP клиента для тестирования работы по блокировке будущих атак из интернета. И в процессе последующей работы Вам, возможно, также понадобится время от времени производить действия, последствиями которых может быть блокировка со стороны fail2ban / iptables. Хотелось бы не дожидаться, когда fail2ban “соизволит” разблокировать IP сам (а это может быть довольно долго – поскольку параметр bantime можно выставить хоть на час, хоть на день, хоть на год).

Существуют 2 пути решения подобной проблемы:

  1. Внести IP адрес в правилах fail2ban в список ignoreip. Но иногда это может быть нежелательно (чтобы, например, производить периодическое тестирование работы fail2ban)
  2. Обычно время findtime (это длительность интервала в секундах, за которое событие должно повториться maxretry раз, после чего бан вступит в силу) намного меньше, чем bantime (это время бана в секундах, по истечении которого IP адрес удаляется из списка заблокированных). Например, findtime выставляется в 10 минут, а bantime – час. Либо findtime – час, а bantime – день или даже больше. И так далее. Поэтому имеет смысл сделать паузу длительностью не менее, чем findtime с момента последнего тестирования (и забанивания Вашего IP адреса), после чего перезагрузить сервис fail2ban. При перезагрузке сервиса fail2ban все блокировки аннулируются. Однако при последующей загрузке fail2ban логи анализируются снова, и если в логах в течение findtime было maxretry неудачных попыток подключения с одного IP, этот IP будет снова забанен сразу после запуска fail2ban.

Тестирование конфигурации fail2ban

Вы можете проверить, как будет применяться фильтр fail2ban к тому или иному логу. Для этого можно запустить команду:

Где /var/log/asterisk/messages – это пример пути к файлу с логами, который будет фильтроваться, а /etc/fail2ban/filter.d/asterisk.conf – сам фильтр, который содержит те фрагменты , которые должны быть в логе .

И напоследок: вместо перезагрузки fail2ban с помощью  можно выполнить следующую команду 

Отладка работы fail2ban

После добавления правил блокировки ip адресов с помощью fail2ban, я некоторое время наблюдаю за сервером, чтобы проверить правильность работы. Для этого делаю вот такое окно в отдельном мониторе и наблюдаю некоторое время.

Здесь открыт лог postfix, dovecot и fail2ban. Если вижу, что правила отрабатываются корректно, завершаю настройку. На этом этапе могут быть заблокированы валидные ip адреса пользователей, у которых одна из учеток указана с неверным паролем. В итоге он банится по ip и у него вообще перестает работать вся почта. Если это локальные пользователи, то можно всю их подсеть добавить в доверенные, но я бы не рекомендовал так делать. В этом случае вы не узнаете, что кто-то вас перебирает из локальной сети. А это случается не редко.

Limitations

Reaction time

First of all, remember that Fail2ban is a log parser. It cannot do anything before something is written in the log files. Lots of syslog daemons buffer their outputs. This can impact performance of Fail2ban. Thus, it could be good to disable buffering of your syslog daemon.

It is quite difficult to evaluate the reaction time. Fail2ban waits 1 second before checking for new logs to be scanned. This should be fine in most cases. However, it is possible to get more login failures than specified by maxretry.

Here is an excerpt of a /var/log/auth.log:

Jan 15 15:28:46 homebrou sshd: Invalid user recruit from 81.74.87.66
Jan 15 15:28:46 homebrou sshd: error: Could not get shadow information for NOUSER
Jan 15 15:28:46 homebrou sshd: Failed password for invalid user recruit from 81.74.87.66 port 47672 ssh2
Jan 15 18:33:27 homebrou sshd: Did not receive identification string from 88.191.23.27
Jan 15 19:23:37 homebrou sshd: Invalid user test from 88.191.23.27
Jan 15 19:23:37 homebrou sshd: error: Could not get shadow information for NOUSER
Jan 15 19:23:37 homebrou sshd: Failed password for invalid user test from 88.191.23.27 port 41017 ssh2
Jan 15 19:23:38 homebrou sshd: Invalid user test from 88.191.23.27
Jan 15 19:23:38 homebrou sshd: error: Could not get shadow information for NOUSER
Jan 15 19:23:38 homebrou sshd: Failed password for invalid user test from 88.191.23.27 port 41096 ssh2
Jan 15 19:23:38 homebrou sshd: Invalid user test from 88.191.23.27
Jan 15 19:23:38 homebrou sshd: error: Could not get shadow information for NOUSER
Jan 15 19:23:38 homebrou sshd: Failed password for invalid user test from 88.191.23.27 port 41162 ssh2
Jan 15 19:23:38 homebrou sshd: Invalid user test from 88.191.23.27
Jan 15 19:23:38 homebrou sshd: error: Could not get shadow information for NOUSER
Jan 15 19:23:38 homebrou sshd: Failed password for invalid user test from 88.191.23.27 port 41209 ssh2
Jan 15 19:23:39 homebrou sshd: Invalid user test from 88.191.23.27
Jan 15 19:23:39 homebrou sshd: error: Could not get shadow information for NOUSER
Jan 15 19:23:39 homebrou sshd: Failed password for invalid user test from 88.191.23.27 port 41267 ssh2
Jan 15 19:23:39 homebrou sshd: Invalid user test from 88.191.23.27
Jan 15 19:23:39 homebrou sshd: error: Could not get shadow information for NOUSER
Jan 15 19:23:39 homebrou sshd: Failed password for invalid user test from 88.191.23.27 port 41323 ssh2
Jan 15 19:23:40 homebrou sshd: Invalid user test from 88.191.23.27
Jan 15 19:23:40 homebrou sshd: error: Could not get shadow information for NOUSER
Jan 15 19:23:40 homebrou sshd: Failed password for invalid user test from 88.191.23.27 port 41376 ssh2
Jan 15 19:23:40 homebrou sshd: Invalid user test from 88.191.23.27
Jan 15 19:23:40 homebrou sshd: error: Could not get shadow information for NOUSER
Jan 15 19:23:40 homebrou sshd: Failed password for invalid user test from 88.191.23.27 port 41433 ssh2
Jan 15 19:23:41 homebrou sshd: Invalid user test from 88.191.23.27
Jan 15 19:23:41 homebrou sshd: error: Could not get shadow information for NOUSER
Jan 15 19:23:41 homebrou sshd: Failed password for invalid user test from 88.191.23.27 port 41484 ssh2
Jan 16 12:13:43 homebrou sshd: Did not receive identification string from 209.126.131.150

Looking at /var/log/fail2ban.log around the corresponding period of time:

2007-01-15 15:38:47,142 fail2ban.actions: WARNING  Unban 81.74.87.66
2007-01-15 19:23:41,175 fail2ban.actions: WARNING  Ban 88.191.23.27
2007-01-15 19:23:42,373 fail2ban.actions: WARNING  88.191.23.27 already banned
2007-01-15 19:33:41,508 fail2ban.actions: WARNING  Unban 88.191.23.27
2007-01-16 12:29:50,496 fail2ban.actions: WARNING  Ban 209.126.131.150

Thus, you can see that between 19:23:37 and 19:23:41, i.e. within 4 seconds, 9 login (ssh) attempts (instead of only 3) from 88.191.23.27 have been recorded in auth.log before it has been banned by Fail2ban.

Possibility of DOS attack by a local user

Because syslog entries can be ‘forged’ by a regular user, e.g.:

logger -p auth.warning -t 'sshd' 'Illegal user user1 from 1.2.3.4'

Fail2Ban should not be run on systems which provide ssh/CGI/PHP services to unknown
users without any level of trust. They might be able to block other users from ssh and probably other
access with a call to logger. A malicious user may also write via PHP’s openlog()/syslog() to syslog.

N.B. chmod o-x /usr/bin/logger might provide at least obfuscation solution.

fail2ban ban distribution to multiple servers

I’m using fail2ban for blocking misconfigured mailservers on couple of servers:

 File "/etc/fail2ban/filter.d/postfix-badhelo.conf":
 ...
 failregex = reject: RCPT from (.*)\: 450 4.7.1 (.*) Helo command rejected: Host not found
 ...
 File "/etc/fail2ban/filter.d/postfix-nohostname.conf":
 ...
 failregex = reject: RCPT from (.*)\: 450 4.7.1 Client host rejected: cannot find your hostname
 ...

Currently my servers are using separate netfilter policies (and each checks it’s own /var/log/maillog).
I’d like fail2ban to «push» the ban and unban action to remote servers (so fail2ban-server would be aware of it and block/unblock accordingly).

What kind of action would you suggest? I have a couple of ideas but none is good enough:

  • distribute ssh pubkeys between the servers and save them to /root/.ssh/authorized_keys and use ssh action that would connect to the rest of the servers, using iptables remotely… It’s really a shame fail2ban-client doesn’t support manually banning/unbanning IPs from console)
  • distribute mail logs to multiple servers, which can be a bit awkward

Настройка джейла

Тюрьмы позволяют перемещать типы соединений в и из мониторинг. Если настройки по умолчанию не соответствуют тем, которые вы хотите применить к тюрьме, вы можете установить конкретные значения для , , а также ,

Прокрутите вниз до строки 280, и вы увидите раздел.

Здесь вы можете установить значения для тюрьмы SSH-соединения. Чтобы включить эту тюрьму в мониторинг и запрет, мы должны набрать следующую строку:

enabled = true

Мы также вводим эту строку:

maxretry = 3

Значение по умолчанию было пять, но мы хотим быть более осторожными с SSH-соединениями. Мы опустили его до трех, а затем сохранили и закрыли файл.

Мы добавили эту тюрьму в мониторинг и переопределить одну из настроек по умолчанию. Тюрьма может использовать комбинацию настроек по умолчанию и специфичных для тюрьмы настроек.

Тюрьмы Fail2ban

Fail2ban использует концепцию тюрем. Тюрьма описывает службу и включает фильтры и действия. Записи журнала, соответствующие шаблону поиска, подсчитываются, и при выполнении заранее определенного условия выполняются соответствующие действия.

Fail2ban поставляется с несколькими тюрьмами для различных сервисов. Вы также можете создавать свои собственные конфигурации тюрьмы.

По умолчанию включен только ssh jail. Для включения jail вам нужно добавить enabled = true после заголовка jail. В следующем примере показано, как включить jail в proftpd:

/etc/fail2ban/jail.local


port     = ftp,ftp-data,ftps,ftps-data
logpath  = %(proftpd_log)s
backend  = %(proftpd_backend)s

Параметры, которые мы обсуждали в предыдущем разделе, могут быть установлены для каждой тюрьмы. Вот пример:

/etc/fail2ban/jail.local

enabled   = true
maxretry  = 3
findtime  = 1d
bantime   = 4w
ignoreip  = 127.0.0.1/8 23.34.45.56

Фильтры расположены в каталоге /etc/fail2ban/filter.d, хранящемся в файле с тем же именем, что и тюрьма. Если у вас есть индивидуальная настройка и опыт работы с регулярными выражениями, вы можете точно настроить фильтры.

Каждый раз, когда вы редактируете файл конфигурации, вам необходимо перезапускать сервис Fail2ban, чтобы изменения вступили в силу:

sudo systemctl restart fail2ban

Установка Fail2ban на Ubuntu

Пакет Fail2ban включен в репозитории Ubuntu 20.04 по умолчанию. Чтобы установить его, введите следующую команду от имени пользователя root или пользователя с привилегиями sudo :

sudo apt update
sudo apt install fail2ban

После завершения установки служба Fail2ban запустится автоматически. В этом можно убедиться, проверив статус услуги:

sudo systemctl status fail2ban

Результат будет выглядеть так:

● fail2ban.service - Fail2Ban Service
     Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-08-19 06:16:29 UTC; 27s ago
       Docs: man:fail2ban(1)
   Main PID: 1251 (f2b/server)
      Tasks: 5 (limit: 1079)
     Memory: 13.8M
     CGroup: /system.slice/fail2ban.service
             └─1251 /usr/bin/python3 /usr/bin/fail2ban-server -xf start

Вот и все. На этом этапе у вас есть Fail2Ban, работающий на вашем сервере Ubuntu.

what wail2ban does

wail2ban is a real-time event sink for these messages. As messages come in, wail2ban takes note of the time of the attempt and the IP used in the attempt. Given enough attempts in a specific period of time, wail2ban will generate a firewall rule to block all access to the client machine for a certain period of time.

In a default setup, if an IP attempts 5 failed passwords in a 2 minute period, they get banned from attempting again for a period of time.

How long? Well, that depends on how many times they’ve been banned before!

There is a file called BannnedIPLog.ini that will keep a count of how many times an IP has been banned.

The punishment time is based on the function , where x is the amount of times it has been banned, and y is the amount of minutes it’s banned for.

This allows for scaling of bans, but prevent permenant bans, which may cause issues in the future as IPs are reassigned around the blagosphere.

There is also a in place, which means that an IP cannot be banned for more than 3 months. Given the ban duration function gives values of years at the 10th increment, it’s better to cap things out.

Использование

Fail2ban, после чего включите и запустите службу .

fail2ban-client

Утилита fail2ban-client позволяет следить за «клетками» (jails) (reload, restart, status и т.д.). Чтобы увидеть список всех доступных команд, введите:

$ fail2ban-client

Просмотр включённых «клеток» (jails):

# fail2ban-client status

Проверка статуса «клетки» на примере таковой для sshd:

# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     9
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 1
   |- Total banned:     1
   `- Banned IP list:   0.0.0.0

Emails from fail2ban not containing whois info help needed.

Hi,

The IP xx.xx.xx.xx has just been banned by Fail2Ban after
4 attempts against ssh.

Here are more information about xx.xx.xx.xx:

Lines containing IP:xx.xx.xx.xx in /var/log/auth.log

Apr 6 11:55:05 user sshd: Invalid user dg from xx.xx.xx.xx
Apr 6 11:55:05 user sshd: Failed none for invalid user dg from xx.xx.xx.xx port 57992 ssh2
Apr 6 11:55:09 user sshd: Failed password for invalid user dg from xx.xx.xx.xx port 57992 ssh2
Apr 6 11:55:13 user sshd: Failed password for invalid user dg from xx.xx.xx.xx port 57992 ssh2
Apr 6 13:42:53 user sshd: Invalid user kjhgfd from xx.xx.xx.xx
Apr 6 13:42:53 user sshd: Failed none for invalid user kjhgfd from xx.xx.xx.xx port 59527 ssh2
Apr 6 13:42:59 user sshd: Failed password for invalid user kjhgfd from xx.xx.xx.xx port 59527 ssh2
Apr 6 13:43:03 user sshd: Failed password for invalid user kjhgfd from xx.xx.xx.xx port 59527 ssh2

Regards,

Fail2Ban

Заключение

На практике правила в fail2ban для dovecot особо не нужны. Пробивкой учетных записей занимаются боты, которые сразу пробивают smtp и imap порты. Все эти боты первым делом попадают в блокировку postfix и до правил dovecot просто не доходят. Но для полноты картины можно оставить и их, хотя бы для того, чтобы выявлять сотрудников с настроенными неактивными учетками.

С помощью fail2ban можно так же банить различные почтовые серверы, которые не проходят встроенные проверки postfix на спам. Но я обычно этого не делаю, так как бывают ложные срабатывания. Потом приходится лишнее время тратить на разбор полетов, так как он усложняется. Так стоит делать, если левые коннекты реально замедляют работу почтового сервера. Обычно это не добавляет каких-то серьезных проблем, в отличие от перебора паролей.

Онлайн курсы по Mikrotik

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте .

Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курсов:

  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: