October 18, 2022

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

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

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

Fail2ban — это инструмент, который помогает защитить ваш компьютер с Linux от грубой силы и других автоматических атак, отслеживая журналы служб на предмет вредоносной активности. Он использует регулярные выражения для сканирования файлов журналов. Все записи, соответствующие шаблонам, подсчитываются, и когда их количество достигает определенного предопределенного порога, Fail2ban блокирует нарушающий IP-адрес с помощью системного брандмауэра на определенный период времени. По истечении срока блокировки IP-адрес удаляется из списка банов.

В этой статье объясняется, как установить и настроить Fail2ban в Debian 10.

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

Пакет Fail2ban включен в репозитории Debian 10 по умолчанию. Чтобы установить его, выполните следующую команду от имени пользователя 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 2021-03-10 18:57:32 UTC; 47s ago
...

Вот и все. На данный момент у вас есть Fail2Ban, работающий на вашем сервере Debian.

Конфигурация Fail2ban

Установка Fail2ban по умолчанию поставляется с двумя файлами конфигурации: /etc/fail2ban/jail.conf и /etc/fail2ban/jail.d/defaults-debian.conf. Вы не должны изменять эти файлы, так как они могут быть перезаписаны при обновлении пакета.

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

  • /etc/fail2ban/jail.conf
  • /etc/fail2ban/jail.d/*.conf
  • /etc/fail2ban/jail.local
  • /etc/fail2ban/jail.d/*.local

Самый простой способ настроить Fail2ban — скопировать файл jail.conf в файл jail.local и изменить файл .local. Более опытные пользователи могут создать файл конфигурации .local с нуля. Файл .local не обязательно должен включать все настройки из соответствующего файла .conf, а только те, которые вы хотите переопределить.

Создайте файл конфигурации .local, скопировав файл jail.conf по умолчанию:

sudo cp /etc/fail2ban/jail.{conf,local}

Чтобы начать настройку сервера Fail2ban, откройте файл jail.local в текстовом редакторе:

sudo nano /etc/fail2ban/jail.local

Файл включает комментарии, описывающие, что делает каждый параметр конфигурации. В этом примере мы изменим основные настройки.

Внесение IP-адресов в белый список

IP-адреса, диапазоны IP-адресов или хосты, которые вы хотите исключить из бана, можно добавить в директиву ignoreip. Здесь вы должны добавить свой локальный IP-адрес ПК и все другие машины, которые вы хотите добавить в белый список.

Раскомментируйте строку, начинающуюся с ignoreip, и добавьте свои IP-адреса через пробел:

/etc/fail2ban/jail.local

ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24

Настройки бана

Параметры bantime, findtime и maxretry устанавливают время бана и условия бана.

bantime время, на которое блокируется IP-адрес. Если суффикс не указан, по умолчанию используются секунды. По умолчанию bantime установлен на 10 минут. Большинство пользователей предпочитают устанавливать более длительное время бана. Измените значение на свое усмотрение:

/etc/fail2ban/jail.local

bantime  = 1d

Чтобы навсегда заблокировать IP, используйте отрицательное число.

findtime это продолжительность между количеством отказов до установки бана. Например, если Fail2ban настроен на запрет IP-адреса после пяти отказов (maxretry, см. ниже), эти отказы должны произойти в течение findtime.

/etc/fail2ban/jail.local

findtime  = 10m

maxretry — количество сбоев до блокировки IP-адреса. По умолчанию установлено значение пять, что должно подойти большинству пользователей.

/etc/fail2ban/jail.local

maxretry = 5

Уведомления по Email

Fail2ban может отправлять оповещения по электронной почте, когда IP-адрес был заблокирован. Чтобы получать электронные письма, вам необходимо установить SMTP на вашем сервере и изменить действие по умолчанию, которое запрещает только IP-адрес, на %(action_mw)s, как показано ниже:

/etc/fail2ban/jail.local

action = %(action_mw)s

%(action_mw)s блокирует нарушающий IP-адрес и отправляет электронное письмо с отчетом whois. Если вы хотите включить соответствующие журналы в электронное письмо, установите действие %(action_mwl)s.

Вы также можете изменить адреса отправки и получения электронной почты:

/etc/fail2ban/jail.local

destemail = admin@linuxize.com

sender = root@linuxize.com

Fail2ban Jails

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

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

Чтобы включить джейл, вам нужно добавить enable = true после названия джейла. В следующем примере показано, как включить постфиксные jails:

/etc/fail2ban/jail.local

[postfix]
enabled  = true
port     = smtp,ssmtp
filter   = postfix
logpath  = /var/log/mail.log

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

Вот пример:

/etc/fail2ban/jail.local

[sshd]
enabled   = true
maxretry  = 3
findtime  = 1d
bantime   = 4w
ignoreip  = 127.0.0.1/8 11.22.33.44

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

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

sudo systemctl restart fail2ban

Fail2ban Client

Fail2ban поставляется с инструментом командной строки под названием fail2ban-client, который можно использовать для взаимодействия со службой Fail2ban.

Чтобы просмотреть все доступные параметры, вызовите команду с параметром -h:

fail2ban-client -h

Этот инструмент можно использовать для блокировки/разблокировки IP-адресов, изменения настроек, перезапуска службы и многого другого. Вот несколько примеров:

  • Получить текущий статус сервера:
sudo fail2ban-client status
  • Проверьте статус jails:
sudo fail2ban-client status sshd
  • Разблокировать IP:
sudo fail2ban-client set sshd unbanip 11.22.33.44
  • Заблокировать IP:
sudo fail2ban-client set sshd banip 11.22.33.44

Вывод

Мы показали вам, как установить и настроить Fail2ban в Debian 10.

Для получения дополнительной информации по этой теме посетите документацию Fail2ban.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.