Установка fail2ban на CentOS 7.5

Попробуем быстро защитить подключение по SSH к нашему серверу с белым IP адресом от атак назойливых бесчисленных ботов. Fail2ban самое популярное и простое в настройке средство для защиты от перебора паролей. Сервис анализирует неудачные попытки подключения и блокирует доступ для клиента на заданное время.

Ниже проверенная методичка Fail2ban на сервере CentOS 7.5, причем в качестве межсетевого экрана использовался сервис iptables.

Установка Fail2ban на CentOS 7.5

Так как Fail2ban не доступен в официальном репозитории CentOS 7.5, поставим его из EPEL. EPEL, содержит расширенные пакеты для CentOS:

 

yum install -y epel-release

Если вдруг появится вопрос «Is this ОК», жмем Enter:

yum prompt
Transaction Summary
================
Install  1 Package

Total download size: 14 k
Installed size: 24 k
Is this ok [y/d/N]: y

Теперь ставим fail2ban:

 yum install -y fail2ban

После установки используем systemctl, чтобы ативировать сервис fail2ban:

systemctl enable fail2ban

 

Настройка

Fail2ban хранит настройки в папке /etc/fail2ban. Настройки по умолчанию хранятся в jail.conf. Так как этот файл может быть перезаписан, мы добавим наши настройки в файл jail.local. Все, что указано в jail.local переписывает настройки из jail.conf.

mcedit /etc/fail2ban/jail.local

Вставляем настройки:

[DEFAULT]
# Ban hosts for one hour:
bantime = 3600

# Override /etc/fail2ban/jail.d/00-firewalld.conf:
banaction = iptables-multiport

[sshd]
enabled = true

Время блокировки можно и увеличить. Практика показывает, что на 10 часов можно смело блокировать злоумышленников.
Сохраняем и перезапускаем

sudo systemctl restart fail2ban

Посмотрим статус сервиса

fail2ban-client status
Output
Status
|- Number of jail:      1
`- Jail list:   sshd

Можно посмотреть статус нашего правила, предварительно сымитировав неудачные попытки входа с неправильным паролем:

fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     40
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 1
   |- Total banned:     1
   `- Banned IP list:   128.5.29.14

В /etc/fail2ban/jail.local можно добавить еще одно полезное правило:

[nginx-http-auth]
enabled = true

И перезапустить fail2ban:

systemctl restart fail2ban

Правила в iptables можно посмотреть так:

sudo iptables -L

или

sudo iptables -S

Авторизуйтесь, чтобы получить возможность оставлять комментарии
Go to top