Fail2ban — это программное обеспечение, которое защищает ваш сервер от атак. ПО отслеживает журналы сервера и выявляет любую подозрительную активность.
Программа обнаруживает необоснованное количество неудачных попыток и автоматически добавляет в iptables новые параметры, блокирующие данный IP. Затем этот IP (или хост) блокируется на определенное время или бессрочно.
Таким образом, установка этого программного обеспечения для мониторинга логов — отличный способ обеспечить еще один уровень безопасности вашего сервера.
В этом руководстве вы узнаете, как установить и настроить Fail2ban на своем сервере.
Необходимые условия:
- Доступ к командной строке / окну терминала
- Доступ к учетной записи пользователя с правами sudo или root
Установка Fail2ban
Способ установки Fail2ban зависит от операционной системы, установленной на вашем сервере. Ниже вы найдете команды для установки и включения Fail2ban на Ubuntu, CentOS, Fedora и Debian.
Установка Fail2ban на Ubuntu
1. Прежде чем добавлять новые пакеты, необходимо обновить системный репозиторий и программное обеспечение. Для этого выполните команду:
|
Нажмите y и Enter для подтверждения.
2. Теперь вы можете установить Fail2ban с помощью команды:
|
3. По желанию вы можете установить Sendmail для поддержки электронной почты:
|
4. Далее необходимо разрешить доступ к SSH через файервол:
|
5. Наконец, включите файрвол:
|
Установка Fail2ban на CentOS
1. Чтобы установить Fail2ban на CentOS, вам понадобится репозиторий EPEL. Обновите систему и добавьте репозиторий, выполнив команду:
|
2. Установив репозиторий EPEL, установите Fail2ban с помощью команды:
|
3. Далее необходимо запустить службу Fail2ban и включить ее при загрузке:
|
|
4. Для поддержки электронной почты вы можете установить Sendmail с помощью:
|
5. Чтобы запустить и включить службу Sendmail, выполните команду:
|
|
Установка Fail2ban на Fedora
1. Начните с обновления системы:
|
2. Затем установите Fail2ban и Sendmail (необязательно, если вам нужна поддержка электронной почты):
|
|
3. Поскольку эти службы не запускаются автоматически на Fedora, вам нужно запустить и включить их с помощью:
|
|
|
|
Установка Fail2ban на Debian
1. Обновите и модернизируйте систему:
|
Нажмите y и Enter для подтверждения.
2. Затем установите Fail2ban с помощью команды:
|
3. Для поддержки электронной почты вы также можете установить Sendmail с помощью команды:
|
Настройка Fail2ban
Настройте Fail2ban, отредактировав следующие файлы конфигурации:
- файл fail2ban.local
- файл jail.local
Настройка файла fail2ban.local
Fail2ban определяет свою глобальную конфигурацию в файле fail2ban.conf. Этот файл содержит конфигурацию по умолчанию и обычно не рекомендуется его изменять.
Все изменения в конфигурации должны производиться в отдельном файле fail2ban.local.
1. Поэтому первое, что нужно сделать, — это скопировать содержимое файла .conf в файл .local. Для этого нужно выполнить следующую команду:
|
2. После этой команды не будет никакого вывода. Следующим шагом будет открытие файла fail2ban.local с помощью выбранного вами текстового редактора:
|
3. Вы должны увидеть файл, похожий на изображение ниже:
В этом примере комментарии, выделенные синим цветом, объясняют каждую опцию и ее возможные значения. Белые линии - это опции, которые вы можете изменять, и они включают в себя:
- loglevel — установка вывода журнала в CRITICAL, ERROR, WARNING, NOTICE, INFO или DEBUG.
- logtarget — установка цели журнала, которая может быть либо FILE, либо SYSLOG, либо STDERR, либо STDOUT.
- syslogsocket — установка файла сокета syslog в auto или FILE (используется только в том случае, если целью журнала является SYSLOG).
- socket — установка файл сокета, который используется для связи с демоном. Убедитесь, что не удалили этот файл. По умолчанию он имеет следующий путь: /var/run/fail2ban/fail2ban.sock
- pidfile — установка PID-файла, который используется для хранения идентификатора процесса сервера fail2ban. По умолчанию он расположен по адресу: /var/run/fail2ban/fail2ban.pid
Настройка файла jail.local
Еще один файл конфигурации Fail2ban, который вам может понадобиться изменить, - это файл jail.conf, который включает в себя джейлы, определяющие фильтры и действия.
Как и в случае с глобальной конфигурацией, файл jail.config не следует изменять напрямую. Вместо этого все настройки должны быть сделаны в файле jail.local.
1. Если вам необходимо внести некоторые изменения, скопируйте содержимое файла .conf в файл .local:
|
2. Откройте файл jail.local с помощью выбранного вами текстового редактора:
|
3. Вы должны увидеть следующее содержимое:
В нем вы можете задать следующие параметры:
- ignoreself — укажите, следует ли игнорировать локальный IP-адрес, установив значение true (по умолчанию) или false.
- ignoreip — позволяет указать IP-адреса, CIDR-маски или DNS-хосты, которые должны быть запрещены. Разделите несколько адресов пробелом.
- ignorecommand — определите путь/к/команде, если она должна быть проигнорирована.
- bantime — укажите количество секунд, в течение которых хост будет запрещен (по умолчанию 600).
- maxretry — количество отказов, допустимых перед тем, как хост будет забанен (по умолчанию установлено значение 5).
- findtime — время, в течение которого хост не должен использовать число maxretry, чтобы не быть забаненным (обычно задается 10 минут). Например, если хост потерпел неудачу 5 раз за 10 минут, он будет забанен на 600 секунд.
- backend — укажите бэкэнд, используемый для получения модификации файлов. Если вы используете CentOS или Fedora, вам нужно установить backend на systemd. Для других операционных систем достаточно значения по умолчанию auto.
- [ssh] — по умолчанию в Fail2ban не включены джейлы. Поэтому вам нужно сделать это вручную, добавив джейлы в конфигурационный файл. Например, вы можете включить джейл демона SSH, откомментировав (удалив #) строки [ssh] и enabled = true.
- destemail — укажите адрес электронной почты, на который вы хотите получать уведомления
- sender — определяет адрес электронной почты, с которого вы получаете уведомления.
Дополнительные конфигурации jail.local
В файле jail.local можно задать дополнительные настройки, например, для SSH и iptables. К ним относятся:
- banaction — указывает действие по умолчанию, которое используется при достижении максимального числа попыток.
- banaction_allports — позволяет обозначить IP, который должен быть заблокирован в каждом порту.
- port — значение должно соответствовать установленному сервису. Это может быть ssh или номер порта (если вы используете альтернативный порт).
- filter — имя файла, содержащего информацию о failregex, расположенного в файле /etc/fail2ban/filter.d.
Перезапуск системы
Если вы внесли какие-либо изменения в файлы fail2ban.local и jail.local, обязательно перезапустите службу fail2ban.
Чтобы перезапустить службу fail2ban с новой конфигурацией, выполните команду:
|
Итак
Следуя этому руководству, вы должны были установить и настроить базовую конфигурацию Fail2ban.
Fail2ban - это отличный инструмент для добавления еще одного уровня безопасности. Он особенно эффективен против атак грубой силы по SSH.