Fail2ban – это инструмент, используемый для повышения безопасности серверов и защиты от кибератак.
Он позволяет вам временно или постоянно блокировать удаленные IP-адреса в зависимости от определенных настроек.
Он помогает защитить ваш сервер и данные от злоумышленников.
Это руководство поможет вам установить Fail2ban в системах Linux с Ubuntu 20.04 LTS.
Предпосылки
У вас должен быть доступ к оболочке системы Ubuntu 20.04 с привилегированной учетной записью sudo.
Шаг 1 – Установка Fail2ban
Пакеты Fail2ban Debian доступны в репозиториях apt по умолчанию.
Вам просто нужно обновить кеш Apt и установить пакет debian fail2ban в вашей системе.
Откройте терминал и введите:
sudo apt update
sudo apt install fail2ban -y
После успешной установки убедитесь, что служба запущена.
sudo systemctl status fail2ban
Убедитесь, что служба активна и работает.
Шаг 2 – Начальная настройка Fail2ban
Fail2ban хранит файлы конфигурации в каталоге /etc/fail2ban.
Файл jail.conf содержит базовую конфигурацию, которую вы можете использовать для создания новых настроек.
Fail2ban использует отдельный файл jail.local в качестве конфигурации, чтобы избежать обновления jail.conf во время обновления пакетов.
Итак, создайте копию файла конфигурации с именем jail.local:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Затем отредактируйте файл конфигурации jail.local в текстовом редакторе.
sudo vim /etc/fail2ban/jail.local
Обновите начальные настройки в разделе [Default].
ignoreip – список IP-адресов, которые следует игнорировать от бана Fail2ban.
[DEFAULT]
ignoreip = 127.0.0.1/8 192.168.1.0/24
bantime – это количество секунд, на которое хост будет забанен.
bantime = 60m
findtime – Хост забанен, если он сгенерировал «maxretry» в течение последних секунд «findtime».
findtime = 5m
maxretry – количество сбоев при входе до того, как хост будет забанен.
maxretry = 5
В следующем разделе вы можете защитить системные службы от брутфорса.
Шаг 3 – Защита SSH / SFTP
После завершения настройки по умолчанию перейдите в тот же файл jail.local и обновите раздел [ssh-iptables], как показано ниже.
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=22, protocol=tcp]
sendmail-whois[name=SSH, dest=root, sender=info@example.com, sendername="Fail2Ban"]
logpath = /var/log/secure
maxretry = 3
Шаг 4 – Защита FTP
Давайте защитим наш FTP-сервер (vsFTPd).
Найдите приведенную ниже запись в разделе [vsftpd-iptables] и внесите изменения, как показано ниже.
Если вы не используете vsFTPd, вы можете пропустить этот раздел.
[vsftpd-iptables]
enabled = true
filter = vsftpd
action = iptables[name=VSFTPD, port=21, protocol=tcp]
sendmail-whois[name=VSFTPD, dest=you@example.com]
logpath = /var/log/vsftpd.log
maxretry = 5
bantime = 1800
Шаг 5 – Управление службой Fail2ban
После внесения всех изменений сохраните файл и перезапустите службу Fail2ban с помощью следующей команды.
sudo systemctl restart fail2ban.service
sudo systemctl enable fail2ban.service
В целях тестирования я попробовал зайти по SSH с неправильными учетными данными с другого компьютера.
После трех неправильных попыток Fail2ban заблокировал этот IP-адрес через iptables с отклонением ICMP пакетов.
Вы можете проверить правила в iptables после блокировки IP-адреса!
Для систем только с SSH убедитесь, что у вас есть доступ по SSH с другого IP-адреса, прежде чем проводить эти тесты.
Заключение
Это руководство показывает, как установить и настроить Fail2ban в системе Ubuntu 20.04 LTS.
Дополнительно предоставлены сведения о конфигурации для защиты определенных служб, таких как SSH, SFTP и FTP.
см. также:
CrowdSec сейчас в моде вместо Fail2ban.
https://habr.com/ru/company/crowdsec/blog/537372/
Для Win есть такая штука: IPBan
https://github.com/DigitalRuby/IPBan
https://ipban.com/
Да, вы правы, популярный аналог!