Серверы не изолированы полностью от сети, и те серверы, которые имеют только базовую конфигурацию SSH, могут быть уязвимыми для атак с использованием “брутфорса”. Fail2ban обеспечивает способ автоматической защиты сервера от вредоносных атак. Программа работает путем сканирования файлов журнала и реагирует на подозрительные действия, такие как повторные неудачные попытки входа.
Сначла установим репозиторий, в котором есть fail2ban, а потом сам fail2ban.
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # yum install fail2ban
Сделаем бэкап конфига
# cp /etc/fail2ban/jail.conf{,.bak}
Откроем конфиг
# vim /etc/fail2ban/jail.conf
По-умолчанию основные настройки таковы
[DEFAULT] # "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not # ban a host which matches an address in this list. Several addresses can be # defined using space separator. ignoreip = 127.0.0.1 # "bantime" is the number of seconds that a host is banned. bantime = 3600 # A host is banned if it has generated "maxretry" during the last "findtime" # seconds. findtime = 600 # "maxretry" is the number of failures before a host get banned. maxretry = 3
Настройте их по своему вкусу.
Нас интересует SSH, поэтому идем в соответствующую секцию
[ssh-iptables] enabled = true filter = sshd action = iptables[name=SSH, port=ssh, protocol=tcp] sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com] logpath = /var/log/secure maxretry = 5
Собственно, даем 5 неуданых попыток авторизации, а потом заносим негодяя в iptables.
Применим конфигурацию
# service fail2ban restart
Посмотреть, кто у нас в “бане” можно, как обычно
# iptables -L