Установка 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-адреса через пробел:
ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24
Параметры bantime, findtime и maxretry устанавливают время бана и условия бана.
bantime время, на которое блокируется IP-адрес. Если суффикс не указан, по умолчанию используются секунды. По умолчанию bantime установлен на 10 минут. Большинство пользователей предпочитают устанавливать более длительное время бана. Измените значение на свое усмотрение:
bantime = 1d
Чтобы навсегда заблокировать IP, используйте отрицательное число.
findtime это продолжительность между количеством отказов до установки бана. Например, если Fail2ban настроен на запрет IP-адреса после пяти отказов (maxretry, см. ниже), эти отказы должны произойти в течение findtime.
findtime = 10m
maxretry — количество сбоев до блокировки IP-адреса. По умолчанию установлено значение пять, что должно подойти большинству пользователей.
maxretry = 5
Уведомления по Email
Fail2ban может отправлять оповещения по электронной почте, когда IP-адрес был заблокирован. Чтобы получать электронные письма, вам необходимо установить SMTP на вашем сервере и изменить действие по умолчанию, которое запрещает только IP-адрес, на %(action_mw)s, как показано ниже:
action = %(action_mw)s
%(action_mw)s блокирует нарушающий IP-адрес и отправляет электронное письмо с отчетом whois. Если вы хотите включить соответствующие журналы в электронное письмо, установите действие %(action_mwl)s.
Вы также можете изменить адреса отправки и получения электронной почты:
destemail = admin@linuxize.com sender = root@linuxize.com
Fail2ban Jails
Fail2ban использует концепцию jails. jail описывает службу и включает в себя фильтры и действия. Записи журнала, соответствующие шаблону поиска, подсчитываются, и при выполнении предопределенного условия выполняются соответствующие действия.
Fail2ban поставляется с несколькими s для разных сервисов. Вы также можете создавать свои собственные конфигурации jails. По умолчанию включена только jails ssh.
Чтобы включить джейл, вам нужно добавить enable = true после названия джейла. В следующем примере показано, как включить постфиксные jails:
[postfix] enabled = true port = smtp,ssmtp filter = postfix logpath = /var/log/mail.log
Настройки, которые мы обсуждали в предыдущем разделе, могут быть установлены для каждого jail.
[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
sudo fail2ban-client status sshd
sudo fail2ban-client set sshd unbanip 11.22.33.44
sudo fail2ban-client set sshd banip 11.22.33.44
Вывод
Мы показали вам, как установить и настроить Fail2ban в Debian 10.
Для получения дополнительной информации по этой теме посетите документацию Fail2ban.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.