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

Как установить и настроить Fail2ban в Ubuntu 22.04


На этой странице

  1. Предпосылки
  2. Настройка брандмауэра UFW
  3. Установка Fail2ban в Ubuntu 22.04
  4. Настройка Fail2ban
  5. Использование Fail2ban-client для проверки статуса Fail2ban
  6. Запретить и разбанить IP с помощью Fail2ban-client
  7. Заключение

Fail2ban — это бесплатное программное обеспечение IPS (программное обеспечение для предотвращения вторжений) с открытым исходным кодом, которое помогает администраторам защищать серверы Linux от злонамеренного входа в систему и атак грубой силы. Fail2ban написан на Python и поставляется с фильтрами для различных служб, таких как Apache2, SSH, FTP и т. д. Fail2ban уменьшает количество злонамеренных попыток входа в систему, блокируя IP-адреса исходных атак.

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

В этом руководстве мы покажем вам, как установить и настроить Fail2ban для защиты сервера Ubuntu 22.04. В этом руководстве также рассматриваются основные команды fail2ban-client для управления службой Fail2ban и тюрьмами.

Предпосылки

  • Сервер Ubuntu 22.04
  • Пользователь без полномочий root с привилегиями sudo.

Настройка брандмауэра UFW

Прежде чем приступить к установке Fail2ban, вам необходимо настроить брандмауэр на вашем сервере Ubuntu.

Установка сервера Ubuntu по умолчанию поставляется с брандмауэром UFW, которым проще управлять, чем другим брандмауэром, таким как iptables.

Теперь проверьте состояние брандмауэра UFW, используя следующую команду.

sudo ufw status

Если вы получаете выходное сообщение, такое как «Статус: неактивный», значит, ваш брандмауэр UFW еще не запущен. Но если вы получаете выходное сообщение, такое как «Команда ufw не найдена», значит, брандмауэр UFW не установлен на вашем сервере.

Чтобы установить пакет брандмауэра UFW, выполните приведенную ниже команду apt.

sudo apt install ufw -y

После завершения установки UFW выполните приведенную ниже команду, чтобы добавить службу SSH в брандмауэр UFW.

sudo ufw allow ssh

Затем выполните приведенную ниже команду, чтобы запустить и включить брандмауэр UFW.

sudo ufw enable

Введите y для подтверждения и запуска брандмауэра UFW.

Наконец, снова проверьте брандмауэр UFW, используя следующую команду.

sudo ufw status

Ниже показан брандмауэр UFW \Статус: активен\ с SSH-портом 22, добавленным в правила брандмауэра.

Установка Fail2ban на Ubuntu 22.04

После того, как вы установили и настроили брандмауэр UFW, теперь вы будете устанавливать пакет Fail2ban на свой сервер.

Выполните следующую команду, чтобы обновить и обновить репозиторий Ubuntu.

sudo apt update

Теперь установите пакет Fail2ban с помощью приведенной ниже команды.

sudo apt install fail2ban -y

Начнется установка.

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

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Наконец, проверьте статус службы Fail2ban, используя следующую команду.

sudo systemctl status fail2ban

На приведенном ниже снимке экрана вы увидите, что служба Fail2ban работает на сервере Ubuntu 22.04.

Настройка Fail2ban

После того, как вы установили Fail2ban, пришло время установить и настроить Fail2ban.

Вся конфигурация Fail2ban хранится в каталоге /etc/fail2ban. Ниже приведена подробная конфигурация Fail2ban, которую вы должны знать:

  • Конфигурация fail2ban.conf является основной конфигурацией Fail2ban.
  • Конфигурация jail.conf является примером конфигурации тюрьмы Fail2ban.
  • Каталог action.d содержит настройки действий fail2ban, такие как настройки почты и настройки брандмауэра.
  • Каталог jail.d содержит дополнительную конфигурацию для fail2ban jail.

Чтобы начать настройку Fail2ban, вам потребуется скопировать конфигурацию тюрьмы по умолчанию jail.conf в jail.local с помощью следующей команды.

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Теперь отредактируйте конфигурацию jail.local с помощью редактора nano.

sudo nano /etc/fail2ban/jail.local

Сначала раскомментируйте параметр ignoreip и добавьте свой IP-адрес. Все IP-адреса внутри опции ignoreip не будут заблокированы Fail2ban.

ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 192.168.10.20

Для настроек бана вы можете изменить конфигурацию, как вам нужно. В этом примере глобальное время бана составит 1 день, время поиска — 10 минут, а максимальное количество попыток — до 5 раз.

Параметр bantime — это время, когда IP-адрес будет заблокирован для доступа к серверу. Опция findtime — это продолжительность между количеством сбоев до действия бана. А опция maxretry — это количество неудачных попыток блокировки IP-адресов.

bantime  = 1d
findtime  = 10m
maxretry = 5

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

Измените параметр действия, как показано ниже, и измените почтовый адрес отправителя и получателя по умолчанию.

action = %(action_mw)s
destemail =

Затем, для интеграции с брандмауэром UFW, вам нужно изменить параметр banaction на ufw, как показано ниже.

banaction = ufw

Наконец, для конфигурации тюрьмы. В этом разделе вы добавляете свой сервис и защищаете его с помощью fail2ban.

В этом примере мы включим джейл для службы SSH, но также переопределим глобальную конфигурацию по умолчанию для джейла sshd. Время бана составит 1 неделю с максимальным повторением ошибок 3 раза и временем поиска в 10 минут.

[sshd]
enabled   = true
maxretry  = 3
findtime  = 1d
bantime   = 1w

port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

Сохраните и закройте файл, когда закончите.

Теперь выполните следующую команду, чтобы перезапустить службу Fail2ban и применить новые изменения к конфигурации jail.local.

sudo systemctl restart fail2ban

Вы завершили настройку Fail2ban с включенным уведомлением по электронной почте и включенной тюрьмой sshd для защиты службы SSH.

Использование Fail2ban-client для проверки статуса Fail2ban

Fail2ban предоставляет клиент fail2ban командной строки для взаимодействия со службой Fail2ban. Это позволяет вам управлять и настраивать Fail2ban из командной строки, а также позволяет управлять тюрьмами Fail2ban.

Чтобы проверить установку и конфигурацию fail2ban, выполните приведенную ниже команду fail2ban-client.

sudo fail2ban-client ping

Если вы получаете выходное сообщение, такое как \Сервер ответил: pong\, это означает, что Fail2ban работает без ошибок.

Затем выполните приведенную ниже команду fail2ban-client, чтобы проверить состояние тюрьмы sshd.

sudo fail2ban-client status sshd

Ниже вы можете увидеть подробный статус sshd jail. Это включает в себя файл журнала для службы SSH и список запрещенных IP-адресов в тюрьме sshd.

Теперь, если вы хотите получить подробную конфигурацию тюрьмы sshd, вы можете использовать команду fail2ban-client, как показано ниже.

Проверьте конфигурацию bantime для sshd jail. Здесь вы получите вывод бантайма в секундах.

sudo fail2ban-client get sshd bantime

Проверьте конфигурацию maxrtey для тюрьмы sshd. Вы увидите, что maxretry здесь равно 3, потому что оно переопределено из глобальной конфигурации, которая равна maxrety 5times.

sudo fail2ban-client get sshd maxretry

Для блокировки в sshd jail вы можете использовать следующую команду. И вы должны получить вывод ufw в качестве запрета по умолчанию для тюрьмы sshd.

sudo fail2ban-client get sshd actions

Для времени поиска здесь вы также увидите значение переопределения для тюрьмы sshd. Вывод здесь также будет в формате секунд.

sudo fail2ban-client get sshd findtime

Наконец, вы также можете проверить игнорирование по умолчанию для тюрьмы sshd, используя приведенную ниже команду. И вы увидите, что ignoreip имеет то же значение, что и глобальная конфигурация Fail2ban.

sudo fail2ban-client get sshd ignoreip

Бан и разбан IP с помощью Fail2ban-клиента

Еще одна важная вещь о Fail2ban здесь заключается в том, как блокировать и разблокировать IP-адреса на Fail2ban. Для этого вы также можете использовать команду fail2ban-client.

Чтобы вручную заблокировать IP-адрес в тюрьме sshd, вы можете использовать приведенную ниже команду fail2ban-client. Измените IP-адрес на IP-адрес, который вы хотите заблокировать.

sudo fail2ban-client set sshd banip IP-ADDRESS

Чтобы разблокировать IP-адрес из тюрьмы sshd, вы можете использовать приведенную ниже команду fail2ban-client. Просто не забудьте изменить IP-адрес на IP-адрес, который вы хотите разблокировать.

sudo fail2ban-client set sshd unbanip IP-ADDRESS

Теперь, после того как вы заблокируете IP-адрес вручную или разблокируете IP-адрес, вы можете выполнить проверку с помощью приведенной ниже команды fail2ban-client.

sudo fail2ban-client status sshd

Если вы блокируете IP-адрес вручную, убедитесь, что этот IP-адрес присутствует в списке запрещенных IP-адресов. Но если вы разблокируете IP-адрес, убедитесь, что этот IP-адрес исчез из списка запрещенных IP-адресов.

Заключение

Поздравляем! Вы успешно установили и настроили Fail2ban для защиты Ubuntu 22.04. Вы также узнали, как включить брандмауэр UFW и как интегрировать Fail2ban с брандмауэром UFW. Наконец, вы также узнали, как управлять Fail2ban с помощью команды fail2ban-client, которая включает в себя, как блокировать и разблокировать IP-адреса из Fail2ban.