Настраиваем защиту SSH сервера с помощью Fail2Ban на CentOS 5

Настраиваем защиту SSH сервера с помощью Fail2Ban на CentOS 5 | neur0n.kz

Fail2Ban помогает защищать Linux сервера от brute-force атак. Он сканирует логи на наличие признаков вредоносной активности и на определенное время банит подозрительные IP адреса с помощью iptables.

Подключаем репозиторий EPEL:

$ rpm -ivh http://download.fedoraproject.org/pub/epel/5/$(arch)/epel-release-5-4.noarch.rpm

Проверяем:

$ rpm -qa | grep epel
Чтобы удалить репозиторий, выполните команду rpm -e epel-release-5-4.noarch

Устанавливаем Fail2Ban из репозитория:

$ yum install fail2ban

Создаем локальную копию конфига Fail2Ban и редактируем:

$ cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
$ vim /etc/fail2ban/jail.local
# добавляем IP, которые не надо блокировать (через пробел)
ignoreip = 127.0.0.1/8
# меняем с auto (на CentOS 6 оставляем auto)  
backend = gamin
[ssh-iptables]
# 'enabled = true' означает что защита SSH включена.
# Ее можно отключить с помощью 'enabled = false'.
enabled = true
# Использовать фильтр : /etc/fail2ban/filter.d/sshd.conf
filter = sshd
# Действия, выполняемые при бане IP адреса :
action = iptables[name=SSH, port=ssh, protocol=tcp]
# Отправлять уведомления на admin@example.com
sendmail-whois[name=SSH, dest=admin@example.com, sendername="Fail2Ban"]
# Файл с логами, которые будет отслеживать Fail2Ban :
logpath = /var/log/secure
# если в течении 1 часа
findtime = 3600
# произведено 5 неудачных попыток залогиниться
maxretry = 5
# IP адрес будет забанен на 24 часа
bantime = 86400

Настраиваем логирование Fail2Ban в отдельный файл:

$ vim /etc/fail2ban/fail2ban.conf
logtarget = /var/log/fail2ban.log

Перезапускаем демон и ставим на автозагрузку:

$ /etc/init.d/fail2ban restart
$ chkconfig fail2ban on

Смотрим iptables -L как банятся брутфорсеры :)