Fail2ban — это инструмент с открытым исходным кодом, который обеспечивает простой способ защиты вашего сервера от атак методом грубой силы. Для этого он отслеживает файлы журналов и запрещает любые IP-адреса, которые неоднократно терпят неудачу в попытках аутентификации. В этой статье мы расскажем вам о том, как установить и настроить fail2ban на Linux-сервере в большинстве известных дистрибутивов (CentOS, Ubuntu, RedHat, …).
Шаг 1: Установка Fail2ban
Первым шагом будет установка fail2ban на ваш сервер. Процесс установки зависит от дистрибутива Linux. Здесь приведены команды для нескольких популярных дистрибутивов:
Debian/Ubuntu:
$ sudo apt-get update
$ sudo apt-get install fail2ban
CentOS/RHEL:
$ sudo yum update
$ sudo yum install epel-release
$ sudo yum install fail2ban
Шаг 2: Настройка Fail2ban
Конфигурационные файлы fail2ban находятся в каталоге /etc/fail2ban/. Главный файл конфигурации — jail.conf, который содержит конфигурацию по умолчанию для всех служб, которые может отслеживать fail2ban. Однако не следует изменять этот файл напрямую. Вместо этого создайте новый конфигурационный файл в каталоге /etc/fail2ban/jail.d/, чтобы изменить настройки по умолчанию.
Например, допустим, вы хотите защитить службу SSH. Вы можете создать новый конфигурационный файл sshd.conf в каталоге /etc/fail2ban/jail.d/ и добавить в него следующее содержимое:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 86400
Давайте разберем значение каждой строки:
- [sshd]: Имя тюрьмы. Оно должно совпадать с именем службы, которую вы хотите защитить.
- enabled = true: Это позволяет включить джейл.
- порт = ssh: Порт, на котором запущена служба. В данном случае это порт SSH.
- filter = sshd: Имя файла фильтра, который содержит регулярные выражения, используемые для обнаружения неудачных попыток входа в систему.
- logpath = /var/log/auth.log: Путь к файлу журнала для службы.
- maxretry = 5: Количество неудачных попыток входа в систему, допустимое для запрета IP-адреса.
- bantime = 86400: Количество времени (в секундах), в течение которого IP-адрес должен быть запрещен.
Шаг 3: Протестируйте Fail2ban
После создания файла конфигурации вы можете протестировать fail2ban, попытавшись несколько раз войти на сервер с неверными учетными данными. После указанного количества неудачных попыток ваш IP-адрес должен быть заблокирован на указанное время. Вы можете проверить это, выполнив следующую команду:
$ sudo fail2ban-client status sshd
Это отобразит статус sshd jail, включая запрещенные IP-адреса.
Шаг 4: Мониторинг Fail2ban
Fail2ban будет работать автоматически в фоновом режиме, отслеживая файлы журналов на предмет неудачных попыток аутентификации. Тем не менее, чтобы убедиться в правильности работы fail2ban, неплохо было бы проконтролировать его. Для просмотра журналов fail2ban можно использовать следующие команды:
$ sudo journalctl -u fail2ban
$ sudo tail -f /var/log/fail2ban.log
Первая команда отобразит журналы systemd для fail2ban, а вторая — файл журнала fail2ban в режиме реального времени.
Заключение
Fail2ban — это мощный инструмент, который может помочь защитить ваш сервер от атак методом перебора. Следуя шагам, описанным в этой статье, вы сможете установить и настроить fail2ban на вашем Linux-сервере. Не забудьте создать конфигурационный файл для каждой службы, которую вы хотите защитить, и следите за работой fail2ban, чтобы убедиться, что он работает правильно.