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