это такое?
Идея Fail2ban очень проста: временно или навсегда отправлять в бан IP, с которых проделывалось несколько нежелательных действий — неудачный вход, доступ к запрещенной области, и так далее. Сначала программа была разработана для отлавливания безуспешных попыток входа по SSH, но позже выросла в легко настраиваемый инструментарий быстрого реагирования на разного рода события (неудачные попытки входа), фиксируемые в логах.
Устанавливаем:
apt-get install fail2ban
После установки, его нужно сконфигурировать по вашим нуждам, сделать это можно в файле /etc/fail2ban/jail.conf. Для того, чтобы активировать ту или иную опцию нужно лишь заменить значение параметра enabled с false на true.
Например:
# время проверки,за которое событие успеет повторится, чтоб отловить # и забанить findtime = 900 # срок бана в секундах, после чего хост удаляется из заблокированного списка, до следующего попадания. # Для того чтобы не забанить по ошибке себя, рекомендуется добавить в секцию [DEFAULT] все Ваши адреса, # с которых будете заходить в систему. # Для этого добавьте разделяя пробелом адреса хостов, сетей или доменные имена в переменную ignoreip. bantime = 60000 #Мыло админа, куда будет идти почта. destemail = [email protected] [ssh] enabled = true port = 22 filter = sshd #имя фильтра logpath = /var/log/auth.log maxretry = 6 #число попыток повторить «запрещённое» действие прежде чем попасть в бан [proftpd] enabled = true port = ftp,ftp-data,ftps,ftps-data filter = proftpd logpath = /var/log/proftpd/proftpd.log maxretry = 6 [sasl] enabled = true port = 25,587,110,143,993,995 filter = sasl logpath = /var/log/mail.log maxretry = 6 [lighttpd-fastcgi] enabled = false port = http,https filter = lighttpd-fastcgi logpath = /var/log/lighttpd/error.log maxretry = 6 [webmin-auth] enabled = false port = 10000 filter = webmin-auth logpath = /var/log/auth.log maxretry = 3
Применяем измененный конфиг:
/etc/init.d/fail2ban restart
Лог работы сервиса fail2ban можно смотреть так:
tail -f /var/log/fail2ban.log
Забаненые айпи можно смотреть вот так:
iptables -L
Раазбанивать ошибочно забаненых юзеров вот так:
iptables -nvL --line-numbers
Удаляем правило для первого клиента:
iptables -D fail2ban-ssh 1
для проверки, реагиреут ли fail2ban на записи в логах можно воспользоваться утилитой fail2ban-regex:
fail2ban-regex "line" "failregex" fail2ban-regex /var/log/auth.log "Failed [-/\w]+ for .* from " fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf
Источник : http://blogs.hub21.ru/blog/sysadmins/36.html
Проверить конфигурацию
fail2ban-client -d
Источник : http://blogs.hub21.ru/blog/sysadmins/36.html