Установите и настройте Fail2ban на CentOS 8 | РЭЛ 8 |
В этом руководстве мы обсудим, как установить и настроить Fail2ban на Centos 8 | RHEL 8. Fail2ban — это инструмент обнаружения и предотвращения вторжений с открытым исходным кодом, который сканирует вредоносные IP-адреса в журналах доступа, которые показывают признаки нескольких неудачных попыток входа в систему с паролем. Затем инструмент блокирует IP-адреса, обновляя правила брандмауэра, чтобы отклонять IP-адреса.
Fail2ban можно использовать для защиты различных служб в системе Linux, включая sshd, доступ к WordPress, Postfix и т. д.
Установите Fail2ban на CentOS 8 | РЭЛ 8
Вам необходимо установить репозиторий EPEL в вашей системе CentOS/RHEL 8, чтобы получить пакет Fail2ban.
sudo dnf -y install epel-release
Установите пакет Fail2ban:
sudo dnf -y install fail2ban
Запустите и включите Fail2ban.
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Настройте Fail2ban в CentOS 8 | РЭЛ 8
После успешной установки следующим шагом будет настройка Fail2ban.
Файлы конфигурации Fail2ban находятся в каталоге /etc/fail2ban/
.
Основной файл конфигурации — /etc/fail2ban/jail.conf
. Фильтры хранятся в каталоге /etc/fail2ban/filter.d/
.
Не рекомендуется вносить какие-либо изменения в файл jail.conf
, так как конфигурация будет перезаписана настройками в файлах *.local.
Поэтому лучше всего создать отдельный файл jail.local, который будет содержать наши конфигурации.
Давайте настроим некоторые значения по умолчанию в файле /etc/fail2ban/jail.local
.
sudo vi /etc/fail2ban/jail.local
Добавьте следующие параметры:
[DEFAULT]
bantime = 21600
findtime = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd
banaction_allports = iptables-allports
Краткое описание вышеуказанных параметров:
- Bantime – время, на которое IP-адрес будет заблокирован в секундах.
- maxretry – количество повторных попыток, прежде чем хост будет заблокирован.
- Findtime – Fail2ban блокирует хост, если он сгенерировал «maxretry» за последние «findtime» секунды.
- banaction – тип действия по бану, который будет реализован.
- ignoreip – вы можете указать IP-адреса, которые будут игнорироваться Fail2ban.
- backend – сервер, используемый для получения изменений в файле журнала.
- Banaction_allports – Fail2ban блокирует удаленный IP-адрес на каждом порту.
Настройка джейлов для защиты SSH, Postfix и Dovecot
В этом разделе мы рассмотрим, как настроить тюрьмы Fail2ban для SSH, Postfix и dovecot.
В файле /etc/fail2ban/jail.local
добавьте параметры служб, которые вы хотите включить.
Для SSH:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
Для Postfix:
[postfix]
enabled = true
port = smtp,465,submission
Голубь:
[dovecot]
enabled = true
port = pop3,pop3s,imap,imaps,submission,465,sieve
Постфикс-SASL
[postfix-sasl]
enabled = true
port = smtp,465,submission,imap,imaps,pop3,pop3s
В приведенной выше конфигурации использовались следующие атрибуты:
- Включено – можно установить значение true или false, чтобы включить/отключить фильтр.
- Порт – порт, на котором работает служба. Вы можете использовать имена сервиса, если используемые порты являются портами по умолчанию, в противном случае вам необходимо явно указать номер порта.
- Фильтр – имя файла фильтра, расположенного в каталоге /etc/fail2ban/filter.d/, который содержит информацию о регулярном выражении файла, используемую для анализа журналов.
- Logpath – путь к журналам службы.
Использование клиента Fail2ban
Fail2ban-client — это инструмент командной строки, который используется для запуска Fail2ban из оболочки.
Обычно используется fail2ban-client
.
Ниже приведен список команд Fail2ban-клиента:
start
: используется для запуска сервера Fail2ban и джейлов.reload
: используется для перезагрузки конфигурации Fail2ban.stop
: останавливает сервер.status
: используется для проверки статуса сервера и включения джейлов.status JAIL
: показывает статус тюрем и запрещенных в данный момент IP-адресов.
Примеры:
- Статус Fail2ban-клиента
$ sudo fail2ban-client status
Status
|- Number of jail: 6
`- Jail list: dovecot, postfix, postfix-sasl, proftpd, sshd, webmin-auth
2. Fail2ban-статус клиента sshd
$ sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 22
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
|- Currently banned: 0
|- Total banned: 4
`- Banned IP list:
3. Запрещенные IP-адреса:
Чтобы удалить IP-адрес из тюрьмы, вы можете сделать это с помощью следующей команды:
$ sudo fail2ban-client set <jailname> unbanip <IP>
Пример :
$ sudo fail2ban-client set sshd unbanip 192.168.100.12
В приведенном выше примере мы удалили IP 192.168.100.12 из тюрьмы sshd.
Заключение
Мы ознакомились с руководством по настройке Fail2ban в CentOS/RHEL 8. Этот инструмент полезен для обнаружения вторжений и предотвращения атак, таких как перебор, в системе RHEL/CentOS 8.
Ознакомьтесь с другими статьями по теме на нашем сайте;
- Автоматизируйте операции по тестированию на проникновение с помощью Infection Monkey
- Faraday — IDE для тестирования на проникновение и платформа управления уязвимостями