Защита SSH с Fail2Ban в CentOS 7

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

Ниже проверенный мануал по установке Fail2ban на сервере CentOS 7.

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


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

sudo yum install epel-release 

На вопрос «Is this ok» жмем 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:
sudo yum install fail2ban

Опять жмем enter

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

Настройка

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

Сохраняем и перезапускаем
sudo systemctl restart fail2ban

Посмотрим статус сервиса
sudo fail2ban-client status
Output
Status
|- Number of jail:      1
`- Jail list:   sshd

Можно посмотреть статус нашего правила:
sudo 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:   221.229.172.104


В /etc/fail2ban/jail.local можно добавить еще одно полезное правило:
[nginx-http-auth]
enabled = true

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

sudo systemctl restart fail2ban

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

Или так
sudo iptables -S

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.