ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Как настроить IPS (Fail2ban) для защиты от различных атак

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

IPS или система предотвращения вторжений — это технология, используемая в сетевой безопасности для проверки сетевого трафика и предотвращения различных атак путем обнаружения вредоносных входных данных. Помимо простого обнаружения вредоносных входов, как это делает система обнаружения вторжений, она также предотвращает вредоносные атаки в сети. Он может предотвратить сеть от грубой силы, DoS (отказ в обслуживании), DDoS (распределенный отказ в обслуживании), эксплойтов, червей, вирусов и других распространенных атак. IPS размещаются сразу за брандмауэром, и они могут отправлять сигналы тревоги, отбрасывать вредоносные пакеты и блокировать оскорбительные IP-адреса. В этой статье мы будем использовать Fail2ban, пакет программного обеспечения для предотвращения вторжений, чтобы добавить уровень безопасности против различных атак методом грубой силы.

 

Как работает Fail2ban

Fail2ban читает файлы журнала (например, /var/log/apache/error_log) и получает IP-адреса, которые пытаются ввести слишком много неудачных паролей или ищут эксплойты. По сути, Fail2ban обновляет правила брандмауэра, чтобы блокировать разные IP-адреса на сервере. Fail2ban также предоставляет фильтры, которые мы можем использовать для конкретной службы (например, apache, ssh и т. д.).

 

Установка Fail2ban

Fail2ban не предустановлен в Ubuntu, поэтому перед его использованием мы должны установить его.

ubuntu@ubuntu:~$ sudo apt-get update -y

ubuntu@ubuntu:~$ sudo apt-get install fail2ban

 

После установки Fail2ban запустите и включите службу Fail2ban с помощью командной строки.

ubuntu@ubuntu:~$ sudo systemctl start fail2ban

ubuntu@ubuntu:~$ sudo systemctl enable fail2ban

 

Теперь проверьте статус службы fail2ban, чтобы убедиться, запущена она или нет.

ubuntu@ubuntu:~$ sudo systemctl status fail2ban

 

Настройка Fail2ban для SSH

Мы можем настроить Fail2ban, изменив файл /etc/fail2ban/jail.conf. Перед изменением сделайте резервную копию этого файла.

ubuntu@ubuntu:~$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

 

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

ubuntu@ubuntu:~$ sudo nano /etc/fail2ban/jail.local

Перейдите в раздел [DEFAULT] и введите параметры конфигурации в разделе [DEFAULT].

[DEFAULT]

ignoreip = 127.0.0.1/8 192.168.18.10/32

bantime = 300

maxretry = 2

findtime = 600

 

ignoreip — это список масок cidr, IP-адресов или DNS-хостов, разделенных пробелом. Добавьте свои доверенные IP-адреса в этот список, и эти IP-адреса будут внесены в белый список и не будут заблокированы fail2ban, даже если они выполнят атаку грубой силы на сервере.

bantime — это время, в течение которого IP-адрес будет заблокирован после определенного количества неудачных попыток доступа к серверу.

maxretry — это максимальное количество неудачных попыток, после которых IP-адрес блокируется fail2ban на определенное время.

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

 

После настройки вышеуказанных параметров теперь мы настроим сервис, к которому будут применяться вышеуказанные правила. По умолчанию Fail2ban имеет предварительно определенные фильтры для различных сервисов, поэтому нам не нужно вводить какие-либо конкретные записи для сервисов. Мы только включаем или отключаем различные службы в файле конфигурации. Откройте файл /etc/fail2ban/jail.local в своем любимом редакторе.

ubuntu@ubuntu:~$ sudo nano /etc/fail2ban/jail.local

Найдите в файле раздел [ sshd ] и введите в него следующие параметры.

[sshd]

enable = true

port = ssh

filter = sshd

logpath = /var/log/auth.log

maxretry = 3

 

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

ubuntu@ubuntu:~$ sudo systemctl restart fail2ban.service

ubuntu@ubuntu:~$ sudo systemctl status fail2ban.service

 

Тестирование Fail2ban

Мы настроили fail2ban для защиты нашей системы от атак грубой силы на службу ssh. Теперь мы сделаем неудачные попытки входа в нашу систему из другой системы, чтобы проверить, работает ли fail2ban или нет. После нескольких неудачных попыток входа в систему мы проверим журналы fail2ban.

ubuntu@ubuntu:~$ cat /var/log/fail2ban.log

 

Мы видим, что после неудачных попыток входа в систему IP был заблокирован fail2ban.

Мы можем получить список всех сервисов, для которых включен fail2ban, с помощью следующей команды.

ubuntu@ubuntu:~$ sudo fail2ban-client status

 

Мы включили fail2ban только для службы sshd. Мы можем получить дополнительную информацию о службе sshd, указав имя службы в приведенной выше команде.

ubuntu@ubuntu:~$ sudo fail2ban-client status sshd

 

Fail2ban автоматически разблокирует заблокированный IP-адрес после блокировки, но мы можем разблокировать любой IP-адрес в любое время с помощью командной строки. Это даст больше контроля над fail2ban. Используйте следующую команду, чтобы разблокировать IP-адрес.

ubuntu@ubuntu:~$ sudo fail2ban-client set sshd unbanip 192.168.43.35

 

Если вы попытаетесь разблокировать IP-адрес, который не заблокирован fail2ban, он просто сообщит вам, что IP-адрес не заблокирован.

ubuntu@ubuntu:~$ sudo fail2ban-client set sshd unbanip 192.168.43.35

 

Вывод

Для системного администратора или инженера по безопасности поддержание безопасности серверов является большой проблемой. Если ваш сервер защищен паролем, а не парой открытого и закрытого ключей, то ваш сервер более уязвим для атак методом грубой силы. Они могут попасть в вашу систему, применяя разные комбинации паролей. Fail2ban — это инструмент, который может запретить злоумышленникам запускать различные виды атак, включая атаки грубой силы и DDoS-атаки на ваш сервер. В этой статье мы обсудили, как мы можем использовать Fail2ban для защиты нашего сервера от различных атак. Мы также можем использовать Fail2ban для защиты других сервисов, таких как apache, nginx и т. д.

Exit mobile version