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
- enabled определяет, защищена ли эта служба с помощью fail2ban или нет. Если включено – истина, то служба защищена; в противном случае он не защищен.
- port определяет служебный порт.
- filter относится к файлу конфигурации, который будет использовать 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 и т. д.