Безопасность серверов является ключевым аспектом для обеспечения защиты от вредоносных атак и несанкционированного доступа. Один из важных инструментов в арсенале защиты сервера – настроить Fail2Ban. Этот инструмент предоставляет механизм для обнаружения и блокировки потенциально вредоносной активности, такой как попытки взлома паролей и атаки на различные службы.
В данной статье мы рассмотрим шаги по установке и настройке Fail2Ban на двух популярных операционных системах – Ubuntu 22.04 и CentOS 8. Мы разберем необходимые команды и конфигурационные шаги для эффективной защиты вашего сервера.
В предыдущей статье мы провели детальный обзор Fail2Ban, рассмотрев его ключевые характеристики и принципы работы. Fail2Ban представляет собой мощный инструмент, предназначенный для защиты серверов от несанкционированных доступов, атак и других видов злоупотреблений.
Давайте начнем с установки Fail2Ban на обеих платформах и последующей пошаговой настройки для создания надежного барьера против потенциальных угроз.
- Установка Fail2Ban на Ubuntu 22.04
- Установка Fail2Ban на CentOS 8
- Настройка и конфигурация Fail2Ban на сервере
- Как настроить Fail2Ban для Apache?
- Создание фильтра для Apache:
- Создание jail для Apache:
- Перезапуск Fail2Ban:
- Как настроить Fail2Ban для Nginx?
- Создание фильтра для Nginx:
- Создание jail для Nginx:
- Перезапуск Fail2Ban:
- Как настроить Fail2Ban для SSH?
- Создание фильтра для SSH:
- Создание jail для SSH:
- Перезапуск Fail2Ban:
- Как настроить Fail2Ban для SMTP?
- Создание фильтра для SMTP:
- Создание jail для SMTP:
- Перезапуск Fail2Ban:
- Как настроить Fail2Ban для Dovecot?
- Создание фильтра для Dovecot:
- Создание jail для Dovecot:
- Перезапуск Fail2Ban:
- Как настроить Fail2Ban для BIND (DNS)?
- Создание фильтра для BIND:
- Создание jail для BIND:
- Перезапуск Fail2Ban:
- Как настроить Fail2Ban для PowerDNS?
- Создание фильтра для PowerDNS:
- Создание jail для PowerDNS:
- Перезапуск Fail2Ban:
- Как настроить Fail2Ban для Pure-FTPd?
- Создание фильтра для Pure-FTPd:
- Создание jail для Pure-FTPd:
- Перезапуск Fail2Ban:
- Как настроить Fail2Ban для ProFTPD?
- Создание фильтра для ProFTPD:
- Создание jail дляProFTPD:
- Перезапуск Fail2Ban:
- Как настроить Fail2Ban для TeamSpeak?
- Создание фильтра для TeamSpeak :
- Создание jail для TeamSpeak:
- Перезапуск Fail2Ban:
- Как настроить Fail2Ban для OpenVPN?
- Создание фильтра для OpenVPN:
- Создание jail для OpenVPN:
- Перезапуск Fail2Ban:
- Заключение
Установка Fail2Ban на Ubuntu 22.04
Откройте терминал на Вашем сервере и выполните следующие команды:
- Обновите список пакетов:
sudo apt update
- Установите Fail2Ban:
sudo apt install fail2ban
- После установки, скопируйте конфигурационный файл по умолчанию:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- Теперь вы можете настроить Fail2Ban, внесите необходимые изменения в файл
/etc/fail2ban/jail.local
. - Запустите Fail2Ban:
sudo systemctl start fail2ban
- Активируйте автозапуск Fail2Ban при загрузке системы:
sudo systemctl enable fail2ban
На этом установка Fail2Ban за Вашем Ubuntu сервере завершена и можно переходить к его настройке.
Установка Fail2Ban на CentOS 8
Используйте эти команды для установки Fail2Ban на сервере под управлением CentOS 8:
- Обновите систему:
sudo yum update
- Установите Fail2Ban:
sudo yum install epel-release sudo yum install fail2ban
- Как и в Ubuntu, скопируйте конфигурационный файл по умолчанию:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- Настройте Fail2Ban в файле
/etc/fail2ban/jail.local
в соответствии с вашими предпочтениями. - Запустите Fail2Ban:
sudo systemctl start fail2ban
- Включите автозапуск Fail2Ban при загрузке:
sudo systemctl enable fail2ban
На этом установка Fail2Ban на Вашем CentOS 8 сервера завершена и можно переходить к его настройке для работы с теми или иными службами.
Настройка и конфигурация Fail2Ban на сервере
Fail2Ban представляет собой гибкую систему, способную эффективно работать с практически любыми службами, поддерживающими логирование запросов. Эта гибкость делает его идеальным инструментом для защиты сервера от широкого спектра потенциальных угроз. В этом разделе мы погрузимся в процесс настройки и конфигурации Fail2Ban на вашем сервере.
Как настроить Fail2Ban для Apache?
Настройка Fail2Ban для защиты Apache – это важный шаг для обеспечения безопасности вашего веб-сервера. Для этого выполните следующие действия:
-
Создание фильтра для 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.
-
Создание 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 час).
-
Перезапуск Fail2Ban:
Перезапустите Fail2Ban, чтобы применить внесенные изменения:
sudo service fail2ban restart
Теперь Fail2Ban будет мониторить логи Apache на предмет неудачных попыток аутентификации и автоматически блокировать IP-адреса, превышающие установленные пороги безопасности. Убедитесь, что параметры maxretry
, findtime
и bantime
соответствуют вашим потребностям и рискам безопасности вашего сервера.
Как настроить Fail2Ban для Nginx?
Настройка Fail2Ban для защиты Nginx включает несколько шагов:
-
Создание фильтра для Nginx:
Создайте файл конфигурации для Nginx в директории
filter.d
Fail2Ban:sudo nano /etc/fail2ban/filter.d/nginx.conf
Добавьте следующее содержимое:
[Definition] failregex = ^<HOST> -.*GET \/.* HTTP\/.* 444 ignoreregex =
Этот фильтр будет срабатывать при обнаружении кода ответа 444 в логах Nginx (это может быть изменено в зависимости от вашей конфигурации).
-
Создание 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 час).
-
Перезапуск Fail2Ban:
Перезапустите Fail2Ban, чтобы применить внесенные изменения:
sudo service fail2ban restart
Теперь Fail2Ban будет мониторить логи доступа Nginx и блокировать IP-адреса, превышающие установленные пороги безопасности. Убедитесь, что параметры maxretry
, findtime
и bantime
соответствуют вашим потребностям и рискам безопасности вашего сервера.
Как настроить Fail2Ban для SSH?
Настройка Fail2Ban для защиты SSH – одна из основных и важных задач. Чтобы это сделать, вам понадобятся следующие шаги:
-
Создание фильтра для 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.
-
Создание 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 час).
-
Перезапуск Fail2Ban:
Перезапустите Fail2Ban, чтобы применить внесенные изменения:
sudo service fail2ban restart
Теперь Fail2Ban будет мониторить логи SSH на предмет неудачных попыток входа и автоматически блокировать IP-адреса, превышающие установленные пороги безопасности. Убедитесь, что параметры maxretry
, findtime
и bantime
соответствуют вашим потребностям и рискам безопасности вашего сервера.
Как настроить Fail2Ban для SMTP?
Для настройки Fail2Ban для защиты SMTP-сервера (например, Postfix или Sendmail) выполните следующие шаги:
-
Создание фильтра для 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.
-
Создание 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 час).
-
Перезапуск Fail2Ban:
Перезапустите Fail2Ban, чтобы применить внесенные изменения:
sudo service fail2ban restart
Теперь Fail2Ban будет мониторить логи SMTP на предмет неудачных попыток аутентификации и блокировать IP-адреса, превышающие установленные пороги безопасности. Убедитесь, что параметры maxretry
, findtime
и bantime
соответствуют вашим потребностям и рискам безопасности вашего сервера.
Как настроить Fail2Ban для Dovecot?
Для настройки Fail2Ban для защиты Dovecot (почтовый сервер) выполните следующие шаги:
-
Создание фильтра для 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.
-
Создание 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 час).
-
Перезапуск Fail2Ban:
Перезапустите Fail2Ban, чтобы применить внесенные изменения:
sudo service fail2ban restart
Теперь Fail2Ban будет мониторить логи Dovecot на предмет неудачных попыток аутентификации и блокировать IP-адреса, превышающие установленные пороги безопасности. Убедитесь, что параметры maxretry
, findtime
и bantime
соответствуют вашим потребностям и рискам безопасности вашего сервера.
Как настроить Fail2Ban для BIND (DNS)?
Настройка Fail2Ban для защиты BIND (DNS-сервер) включает определение фильтра для мониторинга логов BIND и создание соответствующего jail.
-
Создание фильтра для 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.
-
Создание 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 час).
-
Перезапуск Fail2Ban:
Перезапустите Fail2Ban, чтобы применить внесенные изменения:
sudo service fail2ban restart
Это базовая конфигурация, и она может потребовать доработок в зависимости от вашей специфики BIND и путей к логам. Убедитесь, что параметры maxretry
, findtime
и bantime
соответствуют вашим потребностям и рискам безопасности вашего сервера.
Как настроить Fail2Ban для PowerDNS?
Настройка Fail2Ban для защиты PowerDNS включает определение фильтра для мониторинга логов PowerDNS и создание соответствующего jail.
-
Создание фильтра для 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.
-
Создание 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 час).
-
Перезапуск Fail2Ban:
Перезапустите Fail2Ban, чтобы применить внесенные изменения:
sudo service fail2ban restart
Это базовая конфигурация и может потребовать доработок в зависимости от вашей специфики PowerDNS и путей к логам. Убедитесь, что параметры maxretry
, findtime
и bantime
соответствуют вашим потребностям и рискам безопасности вашего сервера.
Как настроить Fail2Ban для Pure-FTPd?
Для настройки Fail2Ban для защиты Pure-FTPd, необходимо определить фильтр для мониторинга логов Pure-FTPd и настроить соответствующий jail.
-
Создание фильтра для 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.
-
Создание 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 час).
-
Перезапуск Fail2Ban:
Перезапустите Fail2Ban, чтобы применить внесенные изменения:
sudo service fail2ban restart
Это базовая конфигурация и может потребовать доработок в зависимости от вашей специфики Pure-FTPd и путей к логам. Убедитесь, что параметры maxretry
, findtime
и bantime
соответствуют вашим потребностям и рискам безопасности вашего сервера.
Как настроить Fail2Ban для ProFTPD?
Для настройки Fail2Ban для защиты ProFTPD (FTP-сервера) необходимо определить фильтр для мониторинга логов ProFTPD и настроить соответствующий jail.
-
Создание фильтра для 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.
-
Создание 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 час).
-
Перезапуск Fail2Ban:
Перезапустите Fail2Ban, чтобы применить внесенные изменения:
sudo service fail2ban restart
Это базовая конфигурация и может потребовать доработок в зависимости от вашей специфики ProFTPD и путей к логам. Убедитесь, что параметры maxretry
, findtime
и bantime
соответствуют вашим потребностям и рискам безопасности вашего сервера.
Как настроить Fail2Ban для TeamSpeak?
Настройка Fail2Ban для защиты TeamSpeak сервера включает определение фильтра для мониторинга логов TeamSpeak и создание соответствующего jail.
-
Создание фильтра для 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.
-
Создание 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 час).
-
Перезапуск Fail2Ban:
Перезапустите Fail2Ban, чтобы применить внесенные изменения:
sudo service fail2ban restart
Это базовая конфигурация и может потребовать доработок в зависимости от вашей специфики TeamSpeak и путей к логам. Убедитесь, что параметры maxretry
, findtime
и bantime
соответствуют вашим потребностям и рискам безопасности вашего сервера.
Как настроить Fail2Ban для OpenVPN?
Для настройки Fail2Ban для защиты OpenVPN (как установить OpenVPN мы рассказывали ранее) необходимо определить фильтр для мониторинга логов OpenVPN и настроить соответствующий jail.
-
Создание фильтра для 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, что может указывать на попытки взлома или атаки.
-
Создание 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 час).
-
Перезапуск Fail2Ban:
Перезапустите Fail2Ban, чтобы применить внесенные изменения:
sudo service fail2ban restart
Это базовая конфигурация и может потребовать доработок в зависимости от вашей специфики OpenVPN и путей к логам. Убедитесь, что параметры maxretry
, findtime
и bantime
соответствуют вашим потребностям и рискам безопасности вашего сервера.
Например, настройка Fail2Ban для WireGuard не возможна, так как по-умолчанию не поддерживает журналирование в системных логах или отдельных файлах журналов, что ограничивает возможности использования Fail2Ban для этой цели.
Заключение
Эффективная защита серверов становится все более важной в современном цифровом мире, и Fail2Ban представляет собой мощный инструмент в этой области. В этой статье мы рассмотрели процесс установки, настройки и использования Fail2Ban на операционных системах Ubuntu 22.04 и CentOS 8.
Fail2Ban – это не просто инструмент, блокирующий атаки, но и гибкая система, позволяющая вам контролировать доступ к различным службам, идентифицировать потенциально опасные события и автоматически реагировать на них. Правильно настроенный Fail2Ban может существенно повысить безопасность вашего сервера, уменьшив уязвимости и риск возможных атак.
Не забывайте регулярно обновлять и адаптировать конфигурацию Fail2Ban в соответствии с изменяющимися условиями и требованиями безопасности. Помните, что безопасность – это процесс, а не одноразовая настройка, и регулярное обновление и мониторинг играют ключевую роль в обеспечении защиты вашего сервера.
Используйте знания, полученные из этой статьи, чтобы сделать вашу серверную инфраструктуру более защищенной и устойчивой к потенциальным угрозам.