Защитите свой SSH-сервер с помощью Fail2ban: эффективные методы и примеры кода

В этой статье блога мы рассмотрим различные методы и примеры кода с использованием Fail2ban и регулярных выражений (регулярных выражений) для повышения безопасности вашего SSH-сервера. Fail2ban — это программное обеспечение для предотвращения вторжений с открытым исходным кодом, которое отслеживает файлы журналов и динамически блокирует IP-адреса, на которых проявляются признаки вредоносной активности. Используя возможности регулярных выражений Fail2ban, мы можем создавать мощные фильтры для обнаружения и предотвращения попыток несанкционированного доступа. Давайте углубимся в различные методы и фрагменты кода, которые вы можете реализовать для защиты своего SSH-сервера.

  1. Метод 1: Блокировка IP-адресов после неудачных попыток входа в систему:
    Fail2ban можно настроить для мониторинга файлов журналов SSH и блокировки IP-адресов, которые неоднократно не проходят аутентификацию. По умолчанию Fail2ban использует фильтр «sshd» для обнаружения неудачных попыток входа в систему. Вот пример файла конфигурации Fail2ban (/etc/fail2ban/jail.local) для включения этого метода:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
  1. Метод 2. Создание пользовательских фильтров регулярных выражений.
    Fail2ban позволяет создавать собственные фильтры с использованием регулярных выражений для обнаружения определенных шаблонов в файлах журналов. Например, вы можете создать фильтр для блокировки IP-адресов, которые генерируют чрезмерное количество попыток подключения. Вот пример конфигурации:
[sshd-custom]
enabled = true
port = ssh
filter = sshd-custom
logpath = /var/log/auth.log
maxretry = 5
bantime = 7200

Создайте новый файл фильтра в /etc/fail2ban/filter.d/sshd-custom.confсо следующим содержимым:

[Definition]
failregex = ^.*sshd.*Failed password.*<HOST>$
  1. Метод 3. Внесение в белый список доверенных IP-адресов.
    Чтобы гарантировать, что вы случайно не заблокируете законных пользователей, Fail2ban позволяет вам вносить в белый список доверенные IP-адреса. Вы можете добавить доверенные IP-адреса в директиву ignoreipв файле конфигурации Fail2ban. Вот пример:
ignoreip = 192.168.0.1 10.0.0.0/8
  1. Метод 4. Мониторинг дополнительных файлов журналов.
    Fail2ban может отслеживать несколько файлов журналов, чтобы повысить безопасность вашего сервера. Например, вы можете настроить его для мониторинга журналов SSH из разных мест или мониторинга системных журналов на предмет подозрительных действий. Вот пример мониторинга дополнительных файлов журналов:
[sshd-extended]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log /var/log/secure
maxretry = 3
bantime = 3600

Реализуя Fail2ban с фильтрами регулярных выражений, вы можете значительно повысить безопасность своего SSH-сервера. Мы исследовали несколько методов, включая блокировку IP-адресов после неудачных попыток входа в систему, создание пользовательских фильтров регулярных выражений, внесение в белый список доверенных IP-адресов и мониторинг дополнительных файлов журналов. Эти методы в сочетании с мощными возможностями Fail2ban помогут защитить ваш сервер от попыток несанкционированного доступа и потенциальных нарушений безопасности.

Не забывайте регулярно обновлять Fail2ban и настраивать его в соответствии с вашими конкретными требованиями. Проактивно защитив свой SSH-сервер, вы можете свести к минимуму риск несанкционированного доступа и обеспечить целостность вашей системы.