Использование Fail2Ban
В качестве системы обнаружения и предотвращения вторжений в РОСА Виртуализация используется система Snort. Система Snort способна в реальном времени осуществлять анализ трафика.# Использование Fail2Ban
Fail2Ban — это сервис, который отслеживает log-файлы согласно установленным правилам поиска подозрительной активности и блокирует IP- адреса нарушителей с помощью Firewall.
Для установки пакета fail2ban требуется включить репозиторий DVD и примонтировать диск в директорию /mnt:
dnf config-manager --set-enabled DVD
mount -t iso9660 -o ro /dev/sr0 /mnt
Затем нужно установить пакет fail2ban:
dnf install fail2ban
Базовая настройка Fail2Ban
В качестве примера будет выполнена настройка мониторинга активности для log-файла сервиса SSHD. Для удобства настройки fail2ban необходимо создать файл /etc/fail2ban/jail.d/default.conf с параметрами по умолчанию для всех сервисов:
[DEFAULT]
maxretry = 5
findtime = 300
bantime = 900
ignoreip = 127.0.0.1/8 ::1
Согласно таким настройкам после обнаружения 5 случаев подозрительной активности (maxretry), произошедших в течении 300 секунд (findtime), IP-адрес нарушителя будет заблокирован на 900 секунд (bantime). Все действия с IP-адресов 127.0.0.1/8::1 (ignoreip) игнорируются.
Далее нужно создать файл /etc/fail2ban/jail.d/service.conf, в котором будут прописаны индивидуальные настройки для каждого сервиса:
[sshd]
enabled = true
port = ssh
filter = sshd
Такие настройки включают мониторинг log-файла для SSHD (enabled), который запущен на стандартном порту (port). Для фильтрации подозрительных действий применяется фильтр с названием SSHD (filter).
После всех выполненных настроек необходимо включить и запустить сервис fail2ban:
systemctl enable --now fail2ban.service
Если обнаруженные подозрительные действия в контролируемом log-файле будут соответствовать всем установленным критериям, то IP-адрес нарушителя будет заблокирован с помощью соответствующего правила для firewalld:
firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens160 ovirtmgmt
sources:
services: cockpit dhcpv6-client ipsec libvirt-tls ovirt-imageio ovirt-vmconsole snmp ssh vdsm
ports: 22/tcp 4789/udp 6081/udp
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="192.168.210.69" port port="ssh" protocol="tcp" reject type="icmp-port-unreachable"
Статистика Fail2Ban
C помощью утилиты fail2ban-client можно получить статистику по мониторингу сервиса SSHD:
fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 69
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd _COMM=sshd-session
`- Actions
|- Currently banned: 1
|- Total banned: 1
`- Banned IP list: 192.168.210.69
В файле /var/log/fail2ban.log сохраняется подробный отчёт по работе сервиса fail2ban.