
Любой сервис, доступный через Интернет, подвержен риску атак вредоносного ПО. Например, если вы используете сервис в общедоступной сети, злоумышленники могут использовать метод подбора паролей для входа в вашу учётную запись.
Fail2ban — это инструмент, который помогает защитить ваш Linux-компьютер от атак методом подбора и других автоматизированных атак, отслеживая журналы служб на наличие вредоносной активности. Он использует регулярные выражения для сканирования файлов журналов. Все записи, соответствующие шаблонам, подсчитываются, и когда их количество достигает заданного порогового значения, Fail2ban блокирует нарушающий IP-адрес через системный брандмауэр на определённый период времени. По истечении срока блокировки IP-адрес удаляется из списка заблокированных.
В этой статье описывается, как установить и настроить Fail2ban в Ubuntu 20.04.
Установка Fail2ban на Ubuntu
Пакет Fail2ban входит в стандартные репозитории Ubuntu 20.04. Чтобы установить его, выполните следующую команду от имени пользователя root или пользователя с правами sudo :
sudo apt updatesudo 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.
Конфигурация 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
Уведомления по электронной почте
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@linuxgazette.ru sender = root@linuxgazette.ru
Тюрьмы Fail2ban
Fail2ban использует концепцию тюрем. «Жильё» описывает сервис и включает в себя фильтры и действия. Записи журнала, соответствующие шаблону поиска, подсчитываются, и при выполнении предопределённого условия выполняются соответствующие действия.
Fail2ban поставляется с несколькими джейлами для различных сервисов. Вы также можете создавать собственные конфигурации джейлов.
По умолчанию включен только ssh -сервер. Чтобы включить джейл, добавьте enabled = true после его названия. В следующем примере показано, как включить джейл proftpd:
/etc/fail2ban/jail.local
[proftpd] enabled = true port = ftp,ftp-data,ftps,ftps-data logpath = %(proftpd_log)s backend = %(proftpd_backend)s
Настройки, которые мы обсуждали в предыдущем разделе, можно задать для каждой тюрьмы отдельно. Вот пример:
/etc/fail2ban/jail.local
[sshd] 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
Fail2ban поставляется с инструментом командной строки fail2ban-client , который можно использовать для взаимодействия со службой Fail2ban.
Чтобы просмотреть все доступные параметры, вызовите команду с опцией -h :
fail2ban-client -h
Этот инструмент можно использовать для блокировки/разблокировки IP-адресов, изменения настроек, перезапуска сервиса и многого другого. Вот несколько примеров:
-
Проверьте статус тюрьмы:
sudo fail2ban-client status sshd -
Разбанить IP:
sudo fail2ban-client set sshd unbanip 23.34.45.56 -
Запретить IP:
sudo fail2ban-client set sshd banip 23.34.45.56
Заключение
Мы показали вам, как установить и настроить Fail2ban в Ubuntu 20.04.
Более подробную информацию по этой теме можно найти в документации Fail2ban .
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.
fail2ban безопасность ubuntu Не используете Ubuntu 20.04?
Выберите другую ОС: центос 8 дебиан 10
Связанные руководства
- Как настроить WireGuard VPN в Ubuntu 20.04
- Как установить и настроить Fail2ban на CentOS 8
- Как настроить SSH-ключи в Ubuntu 20.04
- Как настроить брандмауэр с UFW в Ubuntu 20.04
- Как настроить WireGuard VPN в Ubuntu 18.04
- Установка и настройка Fail2ban в Debian 10
- Как настроить автоматические обновления в Ubuntu 18.04