Site icon IT Draft

Установка и настройка Fail2Ban в Centos 7

Установка и настройка Fail2Ban в Centos 7

Установка и настройка Fail2Ban в Centos 7

Fail2Ban – это программная среда, предназначенная для предотвращения вторжений, защищающая серверы от атак методом перебора.
Fail2Ban работает, отслеживая файлы журналов (например, /var/log/auth.log, /var/log/apache/access.log и т. Д.) для выбранных сервисов и запускает сценарии на их основе. Чаще всего используется для блокировки выбранных IP-адресов, которые могут принадлежать хостам, которые пытаются нарушить безопасность системы.

Установка Fail2Ban

Добавляем в систему репозиторий EPEL, обновляемся и устанавливаем программное обеспечение

[root@localhost]# yum install epel-release
[root@localhost]# yum update
[root@localhost]# yum install fail2ban fail2ban-systemd

Если у вас не отключен SELinux, то обновляем политики

[root@localhost]# yum update -y selinux-policy*

Настройка Fail2Ban

Fail2Ban хранит свои настройки в файле /etc/fail2ban/jail.conf, и при обновлении перезаписывает этот файл, по-этому скопируем файл jail.conf под именем jail.local

[root@localhost]# cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

По-умолчанию файл конфигурации содержит следующие строки:

Selectel — ведущий провайдер облачной инфраструктуры и услуг дата-центров

Компания занимает лидирующие позиции на рынке на рынке выделенных серверов и приватных облаков, и входит в топ-3 крупнейших операторов дата-центров в России.


[DEFAULT]

#
# MISCELLANEOUS OPTIONS
#

# "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/8

# External command that will take an tagged arguments to ignore, e.g. <ip>,
# and return true if the IP is to be ignored. False otherwise.
#
# ignorecommand = /path/to/command <ip>
ignorecommand =

# "bantime" is the number of seconds that a host is banned.
bantime = 600

# 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 = 5

Т.е. в конфиге по-умолчанию прописано, что пользователь будет забанен на 10 минут, если в течение 10 минут будет совершено 5 неудачных попыток.

Защита SSH соединения

Создадим новый файл sshd.local, и добавим в него следующие строки

[root@localhost]# nano /etc/fail2ban/jail.d/sshd.local

[sshd]
enabled = true
port = ssh
action = firewallcmd-ipset
logpath = %(sshd_log)s
maxretry = 5
bantime = 86400

Добавим сервис Fail2Ban в автозагрузку и запустим его

[root@localhost]# systemctl enable fail2ban
[root@localhost]# systemctl start fail2ban

Что бы проверить статус,выполним команду

[root@localhost]# fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd

Для разблокирования IP-адреса надо выполнить команду

[root@localhost]# fail2ban-client set sshd unbanip IPADDRESS
Exit mobile version