Поиск по сайту:

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


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]

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

enabled определяет, защищена ли эта служба с помощью fail2ban или нет. Если enable равно true, то служба защищена; в противном случае он не защищен.

port определяет порт службы.

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

logpath определяет путь к логам, fail2ban будет отслеживать, чтобы защитить сервис от различных атак. Для службы ssh журналы аутентификации можно найти в /var/log/auth.log, поэтому fail2ban будет отслеживать этот файл журнала и обновлять брандмауэр, обнаруживая неудачные попытки входа в систему.

maxretry определяет количество неудачных попыток входа в систему перед блокировкой fail2ban.

После применения приведенной выше конфигурации для 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 и т. д.