Как установить и настроить Fail2Ban на Ubuntu 22.04 и CentOS 8

Системное администрирование

Безопасность серверов является ключевым аспектом для обеспечения защиты от вредоносных атак и несанкционированного доступа. Один из важных инструментов в арсенале защиты сервера — настроить Fail2Ban. Этот инструмент предоставляет механизм для обнаружения и блокировки потенциально вредоносной активности, такой как попытки взлома паролей и атаки на различные службы.

В данной статье мы рассмотрим шаги по установке и настройке Fail2Ban на двух популярных операционных системах — Ubuntu 22.04 и CentOS 8. Мы разберем необходимые команды и конфигурационные шаги для эффективной защиты вашего сервера.

В предыдущей статье мы провели детальный обзор Fail2Ban, рассмотрев его ключевые характеристики и принципы работы. Fail2Ban представляет собой мощный инструмент, предназначенный для защиты серверов от несанкционированных доступов, атак и других видов злоупотреблений.

Давайте начнем с установки Fail2Ban на обеих платформах и последующей пошаговой настройки для создания надежного барьера против потенциальных угроз.

Содержание
  1. Установка Fail2Ban на Ubuntu 22.04
  2. Установка Fail2Ban на CentOS 8
  3. Настройка и конфигурация Fail2Ban на сервере
  4. Как настроить Fail2Ban для Apache?
  5. Создание фильтра для Apache:
  6. Создание jail для Apache:
  7. Перезапуск Fail2Ban:
  8. Как настроить Fail2Ban для Nginx?
  9. Создание фильтра для Nginx:
  10. Создание jail для Nginx:
  11. Перезапуск Fail2Ban:
  12. Как настроить Fail2Ban для SSH?
  13. Создание фильтра для SSH:
  14. Создание jail для SSH:
  15. Перезапуск Fail2Ban:
  16. Как настроить Fail2Ban для SMTP?
  17. Создание фильтра для SMTP:
  18. Создание jail для SMTP:
  19. Перезапуск Fail2Ban:
  20. Как настроить Fail2Ban для Dovecot?
  21. Создание фильтра для Dovecot:
  22. Создание jail для Dovecot:
  23. Перезапуск Fail2Ban:
  24. Как настроить Fail2Ban для BIND (DNS)?
  25. Создание фильтра для BIND:
  26. Создание jail для BIND:
  27. Перезапуск Fail2Ban:
  28. Как настроить Fail2Ban для PowerDNS?
  29. Создание фильтра для PowerDNS:
  30. Создание jail для PowerDNS:
  31. Перезапуск Fail2Ban:
  32. Как настроить Fail2Ban для Pure-FTPd?
  33. Создание фильтра для Pure-FTPd:
  34. Создание jail для Pure-FTPd:
  35. Перезапуск Fail2Ban:
  36. Как настроить Fail2Ban для ProFTPD?
  37. Создание фильтра для ProFTPD:
  38. Создание jail дляProFTPD:
  39. Перезапуск Fail2Ban:
  40. Как настроить Fail2Ban для TeamSpeak?
  41. Создание фильтра для TeamSpeak :
  42. Создание jail для TeamSpeak:
  43. Перезапуск Fail2Ban:
  44. Как настроить Fail2Ban для OpenVPN?
  45. Создание фильтра для OpenVPN:
  46. Создание jail для OpenVPN:
  47. Перезапуск Fail2Ban:
  48. Заключение

Установка Fail2Ban на Ubuntu 22.04

Откройте терминал на Вашем сервере и выполните следующие команды:

  1. Обновите список пакетов:
    sudo apt update
  2. Установите Fail2Ban:
    sudo apt install fail2ban
  3. После установки, скопируйте конфигурационный файл по умолчанию:
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  4. Теперь вы можете настроить Fail2Ban, внесите необходимые изменения в файл /etc/fail2ban/jail.local.
  5. Запустите Fail2Ban:
    sudo systemctl start fail2ban
  6. Активируйте автозапуск Fail2Ban при загрузке системы:
    sudo systemctl enable fail2ban

На этом установка Fail2Ban за Вашем Ubuntu сервере завершена и можно переходить к его настройке.

Установка Fail2Ban на CentOS 8

Используйте эти команды для установки Fail2Ban на сервере под управлением CentOS 8:

  1. Обновите систему:
    sudo yum update
  2. Установите Fail2Ban:
    sudo yum install epel-release sudo yum install fail2ban
  3. Как и в Ubuntu, скопируйте конфигурационный файл по умолчанию:
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  4. Настройте Fail2Ban в файле /etc/fail2ban/jail.local в соответствии с вашими предпочтениями.
  5. Запустите Fail2Ban:
    sudo systemctl start fail2ban
  6. Включите автозапуск Fail2Ban при загрузке:
    sudo systemctl enable fail2ban

На этом установка Fail2Ban на Вашем CentOS 8 сервера завершена и можно переходить к его настройке для работы с теми или иными службами.

Настройка и конфигурация Fail2Ban на сервере

Fail2Ban представляет собой гибкую систему, способную эффективно работать с практически любыми службами, поддерживающими логирование запросов. Эта гибкость делает его идеальным инструментом для защиты сервера от широкого спектра потенциальных угроз. В этом разделе мы погрузимся в процесс настройки и конфигурации Fail2Ban на вашем сервере.

Как настроить Fail2Ban для Apache?

Настройка Fail2Ban для защиты Apache — это важный шаг для обеспечения безопасности вашего веб-сервера. Для этого выполните следующие действия:

  1. Создание фильтра для Apache:

    Создайте файл конфигурации для Apache в директории filter.d Fail2Ban:

    sudo nano /etc/fail2ban/filter.d/apache-auth.conf
    

    Добавьте следующее содержимое:

    [Definition]
    failregex = ^\[\]\s+\[error\]\s+\[client <HOST>\]\s+user .* (authentication failure|not found|password mismatch)\s*$
    ignoreregex =
    

    Этот фильтр будет срабатывать при обнаружении неудачных попыток аутентификации в логах Apache.

  2. Создание jail для Apache:

    Откройте файл jail.local:

    sudo nano /etc/fail2ban/jail.local
    

    Добавьте следующую секцию или отредактируйте, если она уже есть:

    [apache-auth]
    enabled = true
    port = http,https
    filter = apache-auth
    logpath = /var/log/apache*/error.log
    maxretry = 3
    findtime = 600
    bantime = 3600
    
    • enabled = true: Включает этот jail для мониторинга.
    • port = http,https: Порты, на которых работает Apache (обычно 80 и 443 для HTTP и HTTPS соответственно).
    • filter = apache-auth: Имя фильтра, созданного в шаге 1.
    • logpath = /var/log/apache*/error.log: Путь к лог-файлам Apache. Убедитесь, что путь соответствует вашей конфигурации. При необходимости, проверьте, соответствует ли путь вашей настройке логирования Apache.
    • maxretry = 3: Максимальное количество попыток до блокировки IP.
    • findtime = 600: Время в секундах, в течение которого считается количество попыток.
    • bantime = 3600: Время блокировки IP в секундах (в данном случае, 1 час).
  3. Перезапуск Fail2Ban:

    Перезапустите Fail2Ban, чтобы применить внесенные изменения:

    sudo service fail2ban restart
    

Теперь Fail2Ban будет мониторить логи Apache на предмет неудачных попыток аутентификации и автоматически блокировать IP-адреса, превышающие установленные пороги безопасности. Убедитесь, что параметры maxretry, findtime и bantime соответствуют вашим потребностям и рискам безопасности вашего сервера.

Как настроить Fail2Ban для Nginx?

Настройка Fail2Ban для защиты Nginx включает несколько шагов:

  1. Создание фильтра для Nginx:

    Создайте файл конфигурации для Nginx в директории filter.d Fail2Ban:

    sudo nano /etc/fail2ban/filter.d/nginx.conf
    

    Добавьте следующее содержимое:

    [Definition]
    failregex = ^<HOST> -.*GET \/.* HTTP\/.* 444
    ignoreregex =
    

    Этот фильтр будет срабатывать при обнаружении кода ответа 444 в логах Nginx (это может быть изменено в зависимости от вашей конфигурации).

  2. Создание jail для Nginx:

    Откройте файл jail.local:

    sudo nano /etc/fail2ban/jail.local
    

    Добавьте следующую секцию или отредактируйте, если она уже есть:

    [nginx]
    enabled = true
    port = http,https
    filter = nginx
    logpath = /var/log/nginx/*access.log
    maxretry = 5
    findtime = 600
    bantime = 3600
    
    • enabled = true: Включает этот jail для мониторинга.
    • port = http,https: Порт или порты, которые вы хотите мониторить на активность.
    • filter = nginx: Имя фильтра, созданного в шаге 2.
    • logpath = /var/log/nginx/*access.log: Путь к лог-файлам Nginx. Убедитесь, что путь соответствует вашей конфигурации.
    • maxretry = 5: Максимальное количество попыток до блокировки IP.
    • findtime = 600: Время в секундах, в течение которого считается количество попыток.
    • bantime = 3600: Время блокировки IP в секундах (в данном случае, 1 час).
  3. Перезапуск Fail2Ban:

    Перезапустите Fail2Ban, чтобы применить внесенные изменения:

    sudo service fail2ban restart
    

Теперь Fail2Ban будет мониторить логи доступа Nginx и блокировать IP-адреса, превышающие установленные пороги безопасности. Убедитесь, что параметры maxretry, findtime и bantime соответствуют вашим потребностям и рискам безопасности вашего сервера.

Как настроить Fail2Ban для SSH?

Настройка Fail2Ban для защиты SSH — одна из основных и важных задач. Чтобы это сделать, вам понадобятся следующие шаги:

  1. Создание фильтра для SSH:

    Создайте файл конфигурации для SSH в директории filter.d Fail2Ban:

    sudo nano /etc/fail2ban/filter.d/sshd.conf
    

    Добавьте следующее содержимое:

    [Definition]
    failregex = ^(?:\S+ )?(?:kernel: \[?\d*\] )?(?:@vserver_\S+ )?(?:[\w.-]+ )?(?:ssh|sshd|dropbear)\[?\d*\]?:? (?:[\d.]+)?:? \s*(?:%(__prefix_line)s|Connection closed|Disconnected from|Failed \S+ for|^accepted \S+ for) .* \(port \d+\s*(?:ssh\d*)?\)?(?: \[preauth\])?$
    ignoreregex =
    

    Этот фильтр будет срабатывать при обнаружении неудачных попыток входа в логах SSH.

  2. Создание jail для SSH:

    Откройте файл jail.local:

    sudo nano /etc/fail2ban/jail.local
    

    Добавьте следующую секцию или отредактируйте, если она уже есть:

    [sshd]
    enabled = true
    port = ssh
    filter = sshd
    logpath = /var/log/auth.log
    maxretry = 5
    findtime = 600
    bantime = 3600
    
    • enabled = true: Включает этот jail для мониторинга.
    • port = ssh: Порт, на котором работает SSH (обычно 22).
    • filter = sshd: Имя фильтра, созданного в шаге 1.
    • logpath = /var/log/auth.log: Путь к лог-файлам SSH. Убедитесь, что путь соответствует вашей конфигурации.
    • maxretry = 5: Максимальное количество попыток до блокировки IP.
    • findtime = 600: Время в секундах, в течение которого считается количество попыток.
    • bantime = 3600: Время блокировки IP в секундах (в данном случае, 1 час).
  3. Перезапуск Fail2Ban:

    Перезапустите Fail2Ban, чтобы применить внесенные изменения:

    sudo service fail2ban restart
    

Теперь Fail2Ban будет мониторить логи SSH на предмет неудачных попыток входа и автоматически блокировать IP-адреса, превышающие установленные пороги безопасности. Убедитесь, что параметры maxretry, findtime и bantime соответствуют вашим потребностям и рискам безопасности вашего сервера.

Как настроить Fail2Ban для SMTP?

Для настройки Fail2Ban для защиты SMTP-сервера (например, Postfix или Sendmail) выполните следующие шаги:

  1. Создание фильтра для SMTP:

    Создайте файл конфигурации для SMTP в директории filter.d Fail2Ban:

    sudo nano /etc/fail2ban/filter.d/smtp.conf
    

    Добавьте следующее содержимое:

    [Definition]
    failregex = ^%(__prefix_line)sauthentication failed: .*(rhost=<HOST>|port=\d+|user=)
    ignoreregex =
    

    Этот фильтр будет срабатывать при обнаружении неудачных попыток аутентификации в логах SMTP.

  2. Создание jail для SMTP:

    Откройте файл jail.local:

    sudo nano /etc/fail2ban/jail.local
    

    Добавьте следующую секцию или отредактируйте, если она уже есть:

    [smtp]
    enabled = true
    port = smtp,ssmtp
    filter = smtp
    logpath = /var/log/mail.log
    maxretry = 3
    findtime = 600
    bantime = 3600
    
    • enabled = true: Включает этот jail для мониторинга.
    • port = smtp,ssmtp: Порты SMTP-сервера (обычно 25 для SMTP и 465 для SMTPS).
    • filter = smtp: Имя фильтра, созданного в шаге 1.
    • logpath = /var/log/mail.log: Путь к лог-файлам SMTP. Убедитесь, что путь соответствует вашей конфигурации.
    • maxretry = 3: Максимальное количество попыток до блокировки IP.
    • findtime = 600: Время в секундах, в течение которого считается количество попыток.
    • bantime = 3600: Время блокировки IP в секундах (в данном случае, 1 час).
  3. Перезапуск Fail2Ban:

    Перезапустите Fail2Ban, чтобы применить внесенные изменения:

    sudo service fail2ban restart
    

Теперь Fail2Ban будет мониторить логи SMTP на предмет неудачных попыток аутентификации и блокировать IP-адреса, превышающие установленные пороги безопасности. Убедитесь, что параметры maxretry, findtime и bantime соответствуют вашим потребностям и рискам безопасности вашего сервера.

Как настроить Fail2Ban для Dovecot?

Для настройки Fail2Ban для защиты Dovecot (почтовый сервер) выполните следующие шаги:

  1. Создание фильтра для Dovecot:

    Создайте файл конфигурации для SMTP в директории filter.d Fail2Ban:

    sudo nano /etc/fail2ban/filter.d/dovecot.conf
    

    Добавьте следующее содержимое:

    [Definition]
    failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed).*rip=(?P<host>\S*),.*
    ignoreregex =
    

    Этот фильтр будет срабатывать при обнаружении неудачных попыток аутентификации в логах Dovecot.

  2. Создание jail для Dovecot:

    Откройте файл jail.local:

    sudo nano /etc/fail2ban/jail.local
    

    Добавьте следующую секцию или отредактируйте, если она уже есть:

    [dovecot]
    enabled = true
    port = pop3,pop3s,imap,imaps
    filter = dovecot
    logpath = /var/log/mail.log
    maxretry = 3
    findtime = 600
    bantime = 3600
    
    • enabled = true: Включает этот jail для мониторинга.
    • port = pop3,pop3s,imap,imaps: Порты Dovecot (обычно 110 и 143 для POP3, 993 и 995 для IMAP).
    • filter = dovecot: Имя фильтра, созданного в шаге 1.
    • logpath = /var/log/mail.log: Путь к лог-файлам Dovecot. Убедитесь, что путь соответствует вашей конфигурации.
    • maxretry = 3: Максимальное количество попыток до блокировки IP.
    • findtime = 600: Время в секундах, в течение которого считается количество попыток.
    • bantime = 3600: Время блокировки IP в секундах (в данном случае, 1 час).
  3. Перезапуск Fail2Ban:

    Перезапустите Fail2Ban, чтобы применить внесенные изменения:

    sudo service fail2ban restart
    

Теперь Fail2Ban будет мониторить логи Dovecot на предмет неудачных попыток аутентификации и блокировать IP-адреса, превышающие установленные пороги безопасности. Убедитесь, что параметры maxretry, findtime и bantime соответствуют вашим потребностям и рискам безопасности вашего сервера.

Как настроить Fail2Ban для BIND (DNS)?

Настройка Fail2Ban для защиты BIND (DNS-сервер) включает определение фильтра для мониторинга логов BIND и создание соответствующего jail.

  1. Создание фильтра для BIND:

    Создайте файл конфигурации для BIND в директории filter.d Fail2Ban:

    sudo nano /etc/fail2ban/filter.d/named.conf
    

    Добавьте следующее содержимое:

    [Definition]
    failregex = named.*security: warning: client <HOST>#\d+.*failure\s\(.*\)$
    ignoreregex =
    

    Этот фильтр будет срабатывать при обнаружении предупреждений безопасности в логах BIND.

  2. Создание jail для BIND:

    Откройте файл jail.local:

    sudo nano /etc/fail2ban/jail.local
    

    Добавьте следующую секцию или отредактируйте, если она уже есть:

    [named]
    enabled = true
    port = domain
    filter = named
    logpath = /var/log/named/security.log
    maxretry = 3
    findtime = 600
    bantime = 3600
    
    • enabled = true: Включает этот jail для мониторинга.
    • port = domain: Порт, на котором работает BIND (обычно 53 для DNS).
    • filter = named: Имя фильтра, созданного в шаге 1.
    • logpath = /var/log/named/security.log: Путь к лог-файлам BIND. Убедитесь, что путь соответствует вашей конфигурации.
    • maxretry = 3: Максимальное количество попыток до блокировки IP.
    • findtime = 600: Время в секундах, в течение которого считается количество попыток.
    • bantime = 3600: Время блокировки IP в секундах (в данном случае, 1 час).
  3. Перезапуск Fail2Ban:

    Перезапустите Fail2Ban, чтобы применить внесенные изменения:

    sudo service fail2ban restart
    

Это базовая конфигурация, и она может потребовать доработок в зависимости от вашей специфики BIND и путей к логам. Убедитесь, что параметры maxretry, findtime и bantime соответствуют вашим потребностям и рискам безопасности вашего сервера.

Как настроить Fail2Ban для PowerDNS?

Настройка Fail2Ban для защиты PowerDNS включает определение фильтра для мониторинга логов PowerDNS и создание соответствующего jail.

  1. Создание фильтра для PowerDNS:

    Создайте файл конфигурации для PowerDNS в директории filter.d Fail2Ban:

    sudo nano /etc/fail2ban/filter.d/powerdns.conf
    

    Добавьте следующее содержимое:

    [Definition]
    failregex = query-errors: client <HOST>#\d+: query .* denied: \d+
    ignoreregex =
    

    Этот фильтр будет срабатывать при обнаружении отказов в запросах в логах PowerDNS.

  2. Создание jail для PowerDNS:

    Откройте файл jail.local:

    sudo nano /etc/fail2ban/jail.local
    

    Добавьте следующую секцию или отредактируйте, если она уже есть:

    [powerdns]
    enabled = true
    port = domain
    filter = powerdns
    logpath = /var/log/pdns.log # Путь к лог-файлам PowerDNS, может отличаться в зависимости от вашей конфигурации
    maxretry = 3
    findtime = 600
    bantime = 3600
    
    • enabled = true: Включает этот jail для мониторинга.
    • port = domain: Порт, на котором работает PowerDNS (обычно 53 для DNS).
    • filter = powerdns: Имя фильтра, созданного в шаге 1.
    • logpath = /var/log/pdns.log: Путь к лог-файлам PowerDNS. Убедитесь, что путь соответствует вашей конфигурации.
    • maxretry = 3: Максимальное количество попыток до блокировки IP.
    • findtime = 600: Время в секундах, в течение которого считается количество попыток.
    • bantime = 3600: Время блокировки IP в секундах (в данном случае, 1 час).
  3. Перезапуск Fail2Ban:

    Перезапустите Fail2Ban, чтобы применить внесенные изменения:

    sudo service fail2ban restart
    

Это базовая конфигурация и может потребовать доработок в зависимости от вашей специфики PowerDNS и путей к логам. Убедитесь, что параметры maxretry, findtime и bantime соответствуют вашим потребностям и рискам безопасности вашего сервера.

Как настроить Fail2Ban для Pure-FTPd?

Для настройки Fail2Ban для защиты Pure-FTPd, необходимо определить фильтр для мониторинга логов Pure-FTPd и настроить соответствующий jail.

  1. Создание фильтра для Pure-FTPd:

    Создайте файл конфигурации для Pure-FTPd в директории filter.d Fail2Ban:

    sudo nano /etc/fail2ban/filter.d/pureftpd.conf
    

    Добавьте следующее содержимое:

    [Definition]
    failregex = .*pure-ftpd: \(.*@<HOST>\) \[WARNING\] Authentication failed for user.*
    ignoreregex =
    

    Этот фильтр будет срабатывать при обнаружении неудачных попыток аутентификации в логах Pure-FTPd.

  2. Создание jail для Pure-FTPd:

    Откройте файл jail.local:

    sudo nano /etc/fail2ban/jail.local
    

    Добавьте следующую секцию или отредактируйте, если она уже есть:

    [pureftpd]
    enabled = true
    port = ftp
    filter = pureftpd
    logpath = /var/log/auth.log # Путь к лог-файлам Pure-FTPd, может отличаться в зависимости от вашей конфигурации
    maxretry = 3
    findtime = 600
    bantime = 3600
    
    • enabled = true: Включает этот jail для мониторинга.
    • port = ftp: Порт FTP (обычно 21 для FTP).
    • filter = pureftpd: Имя фильтра, созданного в шаге 1.
    • logpath = /var/log/auth.log: Путь к лог-файлам Pure-FTPd. Убедитесь, что путь соответствует вашей конфигурации.
    • maxretry = 3: Максимальное количество попыток до блокировки IP.
    • findtime = 600: Время в секундах, в течение которого считается количество попыток.
    • bantime = 3600: Время блокировки IP в секундах (в данном случае, 1 час).
  3. Перезапуск Fail2Ban:

    Перезапустите Fail2Ban, чтобы применить внесенные изменения:

    sudo service fail2ban restart
    

Это базовая конфигурация и может потребовать доработок в зависимости от вашей специфики Pure-FTPd и путей к логам. Убедитесь, что параметры maxretry, findtime и bantime соответствуют вашим потребностям и рискам безопасности вашего сервера.

Как настроить Fail2Ban для ProFTPD?

Для настройки Fail2Ban для защиты ProFTPD (FTP-сервера) необходимо определить фильтр для мониторинга логов ProFTPD и настроить соответствующий jail.

  1. Создание фильтра для ProFTPD:

    Создайте файл конфигурации для ProFTPD в директории filter.d Fail2Ban:

    sudo nano /etc/fail2ban/filter.d/proftpd.conf
    

    Добавьте следующее содержимое:

    [Definition]
    failregex = .*proftpd\[\d+\]: \S+ \(\S+\[<HOST>\]\): USER \S+: no such user found from \S+\[<HOST>\]
    ignoreregex =
    

    Этот фильтр будет срабатывать при обнаружении неудачных попыток аутентификации в логах ProFTPD.

  2. Создание jail для ProFTPD:

    Откройте файл jail.local:

    sudo nano /etc/fail2ban/jail.local
    

    Добавьте следующую секцию или отредактируйте, если она уже есть:

    [proftpd]
    enabled = true
    port = ftp
    filter = proftpd
    logpath = /var/log/proftpd/proftpd.log # Путь к лог-файлам ProFTPD, может отличаться в зависимости от вашей конфигурации
    maxretry = 3
    findtime = 600
    bantime = 3600
    
    • enabled = true: Включает этот jail для мониторинга.
    • port = ftp: Порт FTP (обычно 21 для FTP).
    • filter = proftpd: Имя фильтра, созданного в шаге 1.
    • logpath = /var/log/proftpd/proftpd.log: Путь к лог-файлам ProFTPD. Убедитесь, что путь соответствует вашей конфигурации.
    • maxretry = 3: Максимальное количество попыток до блокировки IP.
    • findtime = 600: Время в секундах, в течение которого считается количество попыток.
    • bantime = 3600: Время блокировки IP в секундах (в данном случае, 1 час).
  3. Перезапуск Fail2Ban:

    Перезапустите Fail2Ban, чтобы применить внесенные изменения:

    sudo service fail2ban restart
    

Это базовая конфигурация и может потребовать доработок в зависимости от вашей специфики ProFTPD и путей к логам. Убедитесь, что параметры maxretry, findtime и bantime соответствуют вашим потребностям и рискам безопасности вашего сервера.

Как настроить Fail2Ban для TeamSpeak?

Настройка Fail2Ban для защиты TeamSpeak сервера включает определение фильтра для мониторинга логов TeamSpeak и создание соответствующего jail.

  1. Создание фильтра для TeamSpeak :

    Создайте файл конфигурации для TeamSpeak в директории filter.d Fail2Ban:

    sudo nano /etc/fail2ban/filter.d/teamspeak.conf
    

    Добавьте следующее содержимое:

    [Definition]
    failregex = error\s\sclient <HOST> tried to login\s\swith\sinvalid\saccounting\scredentials\sis\saccounting\smade\sfor\s.+:\s.+:\s.+:\s.+:\s\d+:\s\d+$
    client\s<HOST>\s+tried\sto\slogin\s3\s+times
    client\s<HOST>\s+tried\sto\slogin\s5\s+times
    ignoreregex =
    

    Этот фильтр будет срабатывать при обнаружении попыток неудачного входа в логах TeamSpeak.

  2. Создание jail для TeamSpeak:

    Откройте файл jail.local:

    sudo nano /etc/fail2ban/jail.local
    

    Добавьте следующую секцию или отредактируйте, если она уже есть:

    [teamspeak]
    enabled = true
    port = 9987,10011,30033 # Порты TeamSpeak (обычно 9987 для голоса, 10011 для query, 30033 для файлов)
    filter = teamspeak
    logpath = /путь/к/логам/teamspeak/server.log # Путь к лог-файлам TeamSpeak
    maxretry = 3
    findtime = 600
    bantime = 3600
    
    • enabled = true: Включает этот jail для мониторинга.
    • port = 9987,10011,30033: Порты, используемые TeamSpeak.
    • filter = teamspeak: Имя фильтра, созданного в шаге 1.
    • logpath = /путь/к/логам/teamspeak/server.log: Путь к лог-файлам TeamSpeak. Убедитесь, что путь соответствует вашей конфигурации.
    • maxretry = 3: Максимальное количество попыток до блокировки IP.
    • findtime = 600: Время в секундах, в течение которого считается количество попыток.
    • bantime = 3600: Время блокировки IP в секундах (в данном случае, 1 час).
  3. Перезапуск Fail2Ban:

    Перезапустите Fail2Ban, чтобы применить внесенные изменения:

    sudo service fail2ban restart
    

Это базовая конфигурация и может потребовать доработок в зависимости от вашей специфики TeamSpeak и путей к логам. Убедитесь, что параметры maxretry, findtime и bantime соответствуют вашим потребностям и рискам безопасности вашего сервера.

Как настроить Fail2Ban для OpenVPN?

Для настройки Fail2Ban для защиты OpenVPN (как установить OpenVPN мы рассказывали ранее) необходимо определить фильтр для мониторинга логов OpenVPN и настроить соответствующий jail.

  1. Создание фильтра для OpenVPN:

    Создайте файл конфигурации для OpenVPN в директории filter.d Fail2Ban:

    sudo nano /etc/fail2ban/filter.d/openvpn.conf
    

    Добавьте следующее содержимое:

    [Definition]
    failregex = <HOST>:\d+ VERIFY ERROR: .*: SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca:
                <HOST>:\d+ TLS_ERROR: BIO read tls_read_plaintext error:
                <HOST>:\d+ TLS Error: TLS handshake failed
    ignoreregex =
    

    Этот фильтр будет срабатывать при обнаружении ошибок TLS/SSL в логах OpenVPN, что может указывать на попытки взлома или атаки.

  2. Создание jail для OpenVPN:

    Откройте файл jail.local:

    sudo nano /etc/fail2ban/jail.local
    

    Добавьте следующую секцию или отредактируйте, если она уже есть:

    [openvpn]
    enabled = true
    port = openvpn
    filter = openvpn
    logpath = /var/log/openvpn.log # Путь к лог-файлам OpenVPN
    maxretry = 3
    findtime = 600
    bantime = 3600
    
    • enabled = true: Включает этот jail для мониторинга.
    • port = openvpn: Порт OpenVPN (обычно 1194, но может отличаться в зависимости от настроек).
    • filter = openvpn: Имя фильтра, созданного в шаге 1.
    • logpath = /var/log/openvpn.log: Путь к лог-файлам OpenVPN. Убедитесь, что путь соответствует вашей конфигурации.
    • maxretry = 3: Максимальное количество попыток до блокировки IP.
    • findtime = 600: Время в секундах, в течение которого считается количество попыток.
    • bantime = 3600: Время блокировки IP в секундах (в данном случае, 1 час).
  3. Перезапуск Fail2Ban:

    Перезапустите Fail2Ban, чтобы применить внесенные изменения:

    sudo service fail2ban restart
    

Это базовая конфигурация и может потребовать доработок в зависимости от вашей специфики OpenVPN и путей к логам. Убедитесь, что параметры maxretry, findtime и bantime соответствуют вашим потребностям и рискам безопасности вашего сервера.

Например, настройка Fail2Ban для WireGuard не возможна, так как по-умолчанию не поддерживает журналирование в системных логах или отдельных файлах журналов, что ограничивает возможности использования Fail2Ban для этой цели.

Заключение

Эффективная защита серверов становится все более важной в современном цифровом мире, и Fail2Ban представляет собой мощный инструмент в этой области. В этой статье мы рассмотрели процесс установки, настройки и использования Fail2Ban на операционных системах Ubuntu 22.04 и CentOS 8.

Fail2Ban — это не просто инструмент, блокирующий атаки, но и гибкая система, позволяющая вам контролировать доступ к различным службам, идентифицировать потенциально опасные события и автоматически реагировать на них. Правильно настроенный Fail2Ban может существенно повысить безопасность вашего сервера, уменьшив уязвимости и риск возможных атак.

Не забывайте регулярно обновлять и адаптировать конфигурацию Fail2Ban в соответствии с изменяющимися условиями и требованиями безопасности. Помните, что безопасность — это процесс, а не одноразовая настройка, и регулярное обновление и мониторинг играют ключевую роль в обеспечении защиты вашего сервера.

Используйте знания, полученные из этой статьи, чтобы сделать вашу серверную инфраструктуру более защищенной и устойчивой к потенциальным угрозам.

Оцените статью