Себе на память, другим в помощь.

fail2ban

Moloko 01.02.2018, чт 23:32

Fail2ban - простой в использовании локальный сервис, который отслеживает log–файлы запущенных программ, и на основании различных условий блокирует по IP найденных нарушителей.

Программа умеет бороться с различными атаками на все популярные *NIX–сервисы, такие как Apache, Nginx, ProFTPD, vsftpd, Exim, Postfix, named, и т.д.

Но в первую очередь fail2ban известен благодаря готовности "из коробки" к защите ssh–сервера от атак типа "bruteforce", то есть к защите ssh от перебора паролей.

 

Установка:

# apt-get install fail2ban

 

Настройка:

У fail2ban два основных файла конфигурации

 - /etc/fail2ban/fail2ban.conf - отвечает за настройки запуска процесса Fail2ban.

 - /etc/fail2ban/jail.conf - содержит настройки защиты конкретных сервисов.

 

Файл jail.conf поделён на секции, так называемые jails, каждая секция отвечает за определённый сервис:

[DEFAULT]
ignoreip = 127.0.0.1/8
bantime  = 600
maxretry = 5
banaction = iptables-multiport

[ssh]
enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 5

Параметры из секции [DEFAULT] применяются ко всем остальным секциям, если не будут переопределены.

Секция [ssh] отвечает за защиту SSH от повторяющихся неудачных попыток авторизации на SSH–сервере.

 

Подробнее по каждому из основных параметров файла jail.conf:

ignoreip - IP-адреса, которые не будут блокироваться. Можно указать список IP-адресов разделённых пробелами, маску подсети, или имя DNS–сервера.

bantime - время бана в секундах, по истечении которого IP-адрес удаляется из списка заблокированных.

maxretry - количество неудачных попыток, после которых применяется правило блокировки.

enabled - значение true указывает что данный jail активен, false выключает действие изолятора.

port - указывает на каком порту или портах запущен отслеживаемый сервис. Стандартный порт ssh-сервера - 22, или его буквенное наименование - ssh.

filter - имя фильтра с регулярными выражениями, по которым идёт поиск неудачных попыток входа в журналах сервиса.

logpath - путь к log-файлу, который программа fail2ban будет обрабатывать с помощью заданного ранее фильтра. Вся история удачных и неудачных входов в систему по умолчанию записывается в log-файл /var/log/auth.log.

 

После изменения конфигурационных файлов сервис fail2ban нужно перезагрузить.

# service fail2ban reload

 

 

Посмотреть список забаненых:

# iptables -L -n

 

Удалить IP адрес из fail2ban:

iptables -D f2b-[Chain] -s [IP] -j REJECT

[Chain] - имя цепочки, из которой будет удален ip адрес. (sshd, vsftpd и тд)

[IP] - ip адрес который нужно удалить

 

Например:

# iptables -D f2b-sshd -s 192.168.1.1 -j REJECT