fail2ban. Основные настройки
fail2ban. Основные настройки.
Содержание
1 Общая информация
- Репозиторий: https://github.com/fail2ban/fail2ban
- Fail2Ban сканирует файлы журналов
/var/log/auth.log
и блокирует IP-адреса, совершающие слишком много неудачных попыток входа в систему. - Это достигается путем обновления правил системного брандмауэра, запрещающих новые подключения с этих IP-адресов в течение настраиваемого периода времени.
2 Настройка
2.1 Общие настройки
2.2 Время блокирования
- Создайте файл локальной конфигурации:
touch /etc/fail2ban/jail.d/50-default.conf
- В файле
/etc/fail2ban/jail.d/50-default.conf
задайте время блокирования хостов:[DEFAULT] bantime = 360000
2.3 Игнорирование избранных ip-адресов
- Добавим игнорирование избранных ip-адресов в файле
/etc/fail2ban/jail.d/50-default.conf
:# "ignoreself" specifies whether the local resp. own IP addresses should be ignored # (default is true). Fail2ban will not ban a host which matches such addresses. ignoreself = true # "ignoreip" can be a list of IP addresses, CIDR masks or DNS hosts. Fail2ban # will not ban a host which matches an address in this list. Several addresses # can be defined using space (and/or comma) separator. ignoreip = 127.0.0.1/8 ::1 10.0.0.0/8
- Диапазон
10.0.0.0/8
добавлен для примера.
2.4 Защита ssh
- Создадим файл для локальной конфигурации ssh:
touch /etc/fail2ban/jail.d/80-ssh.conf
- В файле
/etc/fail2ban/jail.d/80-ssh.conf
активируйте защиту ssh:[sshd] enabled = true # To use more aggressive sshd modes set filter parameter "mode" in jail.local: # normal (default), ddos, extra or aggressive (combines all). # See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details. #mode = normal port = ssh logpath = %(sshd_log)s backend = %(sshd_backend)s [selinux-ssh] port = ssh logpath = %(auditd_log)s
3 Настройка для Proxmox
3.1 Время блокирования
- Создайте файл локальной конфигурации:
touch /etc/fail2ban/jail.d/50-default.conf
- В файле
/etc/fail2ban/jail.d/50-default.conf
задайте время блокирования хостов:[DEFAULT] bantime = 360000
3.2 Игнорирование избранных ip-адресов
- Добавим игнорирование избранных ip-адресов в файле
/etc/fail2ban/jail.d/50-default.conf
:# "ignoreself" specifies whether the local resp. own IP addresses should be ignored # (default is true). Fail2ban will not ban a host which matches such addresses. ignoreself = true # "ignoreip" can be a list of IP addresses, CIDR masks or DNS hosts. Fail2ban # will not ban a host which matches an address in this list. Several addresses # can be defined using space (and/or comma) separator. ignoreip = 127.0.0.1/8 ::1 10.0.0.0/8
- Диапазон
10.0.0.0/8
добавлен для примера.
3.3 Защита ssh
- Создадим файл для локальной конфигурации ssh:
touch /etc/fail2ban/jail.d/80-ssh.conf
- В файле
/etc/fail2ban/jail.d/80-ssh.conf
активируйте защиту ssh:[sshd] enabled = true backend = systemd
- Удалите файл
/etc/fail2ban/jail.d/defaults-debian.conf
.
3.4 Защита proxmox web-интерфейс
- Создадим файл для локальной конфигурации proxmox:
touch /etc/fail2ban/jail.d/80-proxmox.conf
- В файле
/etc/fail2ban/jail.d/80-proxmox.conf
активируйте защиту web-интерфейса:[proxmox] enabled = true port = https,http,8006 filter = proxmox backend = systemd maxretry = 3 findtime = 2d bantime = 1h
- Создайте файл фильтра:
touch /etc/fail2ban/filter.d/proxmox.conf
- Настройте фильтр в файле
/etc/fail2ban/filter.d/proxmox.conf
:[Definition] failregex = pvedaemon\[.*authentication failure; rhost=<HOST> user=.* msg=.* ignoreregex = journalmatch = _SYSTEMD_UNIT=pvedaemon.service
4 Основные операции
4.1 Удалить все записи из списков блокировки
- Для удаления всех записей из списков блокировки выполните скрипт:
#!/bin/bash for JAIL in $(fail2ban-client status | grep 'Jail list:' | awk 'BEGIN {FS="\t"} {print $2}' | sed 's/, / /g') do for IP in $(fail2ban-client status ${JAIL} | grep 'Banned IP list:' | awk 'BEGIN {FS="\t"} {print $2}' | sed 's/ /\n/g') do fail2ban-client set ${JAIL} unbanip ${IP} done done unset JAIL IP exit 0