🚫 Как установить Fail2Ban на CentOS 7 — Information Security Squad

🚫 Как установить Fail2Ban на CentOS 7

Большинство серверов Linux предлагают SSH-вход через порт 22 для удаленного администрирования.

Этот порт является известным портом, поэтому он часто подвергается атакам с использованием брутфорса.

Fail2ban — это программа, которая сканирует файлы журналов для попыток входа в систему методом брута в режиме реального времени и блокирует атакующих с помощью firewalld или iptables.

Fail2ban распознает нежелательные попытки доступа или взлома системы безопасности на сервере в пределах установленного администратором временного интервала и блокирует IP-адреса, которые показывают признаки атак методом перебора или атак по словарю.

Эта программа работает в фоновом режиме и постоянно сканирует файлы журналов на наличие необычных шаблонов входа в систему и попыток взлома системы безопасности.

Из этого туториала Вы узнаете, как установить и настроить Fail2Ban с firewalld на CentOS 7.

Ранее мы уже рассматривали этот инструмент:

 

Установка Fail2Ban

Чтобы установить Fail2Ban в CentOS 7, сначала нам нужно будет установить репозиторий EPEL (Extra Packages for Enterprise Linux).

EPEL содержит дополнительные пакеты для всех версий CentOS, одним из этих дополнительных пакетов является Fail2Ban.

Следующие команды должны быть выполнены после переключения на пользователя root.

yum install epel-release
yum install fail2ban fail2ban-systemd

Если у вас установлен SELinux, обновите политики SELinux:

yum update -y selinux-policy*

Настройте параметры для Fail2Ban

После установки нам потребуется настроить программное обеспечение с помощью файла конфигурации jail.local.

Файл jail.local переопределяет файл jail.conf и используется для обеспечения безопасности пользовательского обновления конфигурации.

Сделайте копию файла jail.conf и сохраните его с именем jail.local:

cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Откройте файл jail.local для редактирования в Nano с помощью следующей команды.

nano /etc/fail2ban/jail.local

Содержимое файла может состоять из множества строк, которые выполняются для предотвращения запрета одного или нескольких IP-адресов, установки продолжительности запрета и т. д.

Типичный файл конфигурации содержит следующие строки.

[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

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

Список IP-адресов следует указывать через пробел.

Этот параметр используется для установки вашего личного IP-адреса (если вы обращаетесь к серверу с фиксированного IP-адреса).

Параметр Bantime используется для установки продолжительности секунд, на которые необходимо запретить хост.

Findtime — это параметр, который используется для проверки того, должен ли хост быть забанен или нет. Когда хост генерирует maxrety в последний раз, он блокируется.

Maxretry — это параметр, используемый для установки ограничения на количество повторов хостом, после превышения которого ограничение хоста блокируется.

Добавьте файл jail для защиты SSH.

Создайте новый файл с помощью редактора Nano

nano /etc/fail2ban/jail.d/sshd.local

К приведенному выше файлу добавьте следующие строки кода.

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

Параметр enabled имеет значение true, для обеспечения защиты, для деактивации защиты — значение false. Параметр фильтра проверяет файл конфигурации sshd, расположенный по пути /etc/fail2ban/filter.d/sshd.conf.

Параметр action используется для получения IP-адреса, который необходимо заблокировать, используя фильтр, доступный в /etc/fail2ban/action.d/firewallcmd-ipset.conf.

Параметр порта может быть изменен на новое значение, такое как порт = 1212, как это имеет место. При использовании порта 22 нет необходимости изменять этот параметр.

Logpath предоставляет путь, где хранится файл журнала. Этот файл журнала сканируется Fail2Ban.

Maxretry используется для установки максимального лимита неудачных входов в систему.

Параметр Bantime используется для установки продолжительности секунд, на которые необходимо запретить хост.

Запуск службы Fail2Ban

Если вы еще не используете CentOS Firewall, запустите его:

systemctl enable firewalld
systemctl start firewalld

Выполните следующие  команды для запуска защитного программного обеспечения Fail2Ban на сервере.

systemctl enable fail2ban
systemctl start fail2ban 

Отслеживание записей неудачного входа

Следующая команда используется для проверки неудачных попыток входа на сервер через ssh-порт.

cat /var/log/secure | grep 'Failed password'

Выполнение вышеупомянутой команды выведет список неудачных попыток ввода пароля с разных IP-адресов.

Формат результатов будет похож на тот, который показан ниже:

Apr 4 17:05:12 htf sshd[4287]: Failed password for root from 108.61.157.25 port 23121 ssh2
Apr 4 17:05:15 htf sshd[3154]: Failed password for root from 108.61.157.25 port 14486 ssh2
Apr 4 17:05:16 htf sshd[3154]: Failed password for root from 108.61.157.25 port 24157 ssh2
Apr 4 17:05:18 htf sshd[3154]: Failed password for root from 108.61.157.25 port 24157 ssh2

Проверка заблокированных IP-адресов

Следующая команда используется для получения списка запрещенных IP-адресов, которые были признаны угрозами перебора пароля.\

iptables -L -n

Проверьте статус Fal2Ban

Используйте следующую команду, чтобы проверить состояние Fail2Ban jails:

fail2ban-client status

Результат должен быть похож на этот вывод:

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

Разблокировка IP-адреса

Чтобы удалить IP-адрес из списка запрещенных, для параметра IPADDRESS задан соответствующий IP-адрес, который необходимо разблокировать.

Имя «sshd» — это имя джейла, в данном случае это джейл «sshd», который мы настроили выше.

Следующая команда сделает эту работу.

fail2ban-client set sshd unbanip IPADDRESS

cryptoparty

Cryptography is typically bypassed, not penetrated.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40