Як налаштувати 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:

    Створіть файл конфігурації для Dovecot у директорії 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 відповідно до змін умов та вимог безпеки. Пам’ятайте, що безпека – це процес, а не разова настройка, і регулярне оновлення та моніторинг відіграють ключову роль у забезпеченні захисту вашого сервера.

Використовуйте знання, отримані з цієї статті, щоб зробити вашу серверну інфраструктуру більш захищеною та стійкою до потенційних загроз.

Оцініть статтю