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

Как установить Fail2ban с Firewalld на Rocky Linux 8.4


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

  1. Предпосылки
  2. Настройка брандмауэра
  3. Добавление репозитория EPEL в Rocky Linux
  4. Установка Fail2ban в Rocky Linux
  5. Настройка Fail2ban
  6. Защита службы SSH с помощью Fail2ban
  7. Проверьте установку Fail2ban и Firewalld
  8. IP-адрес Uban на Fail2ban
  9. Заключение

Fail2ban — это системный демон для защиты серверов от злонамеренного входа в систему и атак грубой силы. Fail2ban — это фреймворк IPS (программное обеспечение для предотвращения вторжений) с открытым исходным кодом, написанный на Python и обладающий широкими возможностями настройки. Он работает как служба демона, которая будет отслеживать журнал SystemD и файлы журналов, а затем искать любые неудачные попытки аутентификации. Когда неудачная аутентификация достигает максимального числа X, fail2ban автоматически заблокирует IP-адрес с помощью программного обеспечения брандмауэра.

Если вы являетесь владельцем VPS (виртуального частного сервера) или выделенного сервера, вам следует рассмотреть возможность установки fail2ban на всех ваших серверах. Это поможет вам защитить некоторые базовые службы, такие как SSH и FTP, от злонамеренных атак грубой силы. Кроме того, fail2ban очень удобен, прост в настройке и гибок.

В этом руководстве вы узнаете, как установить fail2ban в Rocky Linux, настроить fail2ban с помощью firewalld и защитить службу SSH от атак грубой силы.

Предпосылки

  • Пользователь с привилегиями sudo root.

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

Firewalld — это программное обеспечение брандмауэра по умолчанию в Rocky Linux. Он автоматически устанавливается во время установки Rocky Linux, но не активируется по умолчанию.

1. Выполните следующую команду, чтобы убедиться, что пакет firewalld доступен в вашей системе.

sudo dnf info firewalld

Вы получите аналогичный результат, как показано ниже.

Как видно на снимке экрана, пакет firewalld указан как «Установленные пакеты».

2. Затем запустите службу firewalld с помощью следующей команды.

sudo systemctl start firewalld

3. Теперь включите службу firewalld для автоматического запуска при каждой загрузке системы.

sudo systemctl enable firewalld

И вы получите следующий вывод.

Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.

4. После этого проверьте статус службы firewalld с помощью приведенной ниже команды.

sudo systemctl status firewalld

И вы получите следующий вывод.

Как видно, служба firewalld активна и работает.

5. При желании вы можете проверить статус службы firewalld с помощью команды firewall-cmd. firewall-cmd — это основной интерфейс для взаимодействия с firewalld. Команда firewall-cmd — это утилита для управления правилами firewalld, она позволяет добавлять правила, удалять правила, проверять статус и т.д.

Выполните приведенную ниже команду firewall-cmd, чтобы проверить состояние службы firewalld.

sudo firewall-cmd --state

Если ваш брандмауэр активен, вы получите вывод как «работает». В противном случае вы получите вывод «не работает».

Теперь выполните следующую команду firewall-cmd для проверки всех применяемых правил firewalld.

sudo firewall-cmd --list-all

Вы получите аналогичный результат, как показано ниже.

Добавление репозитория EPEL в Rocky Linux

Перед установкой fail2ban вы должны добавить в свою систему репозиторий EPEL (Extra Packages for Enterprise Linux).

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

sudo dnf install epel-release

Введите \y\, чтобы установить и продолжить.

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

sudo dnf repolist

Теперь вы увидите вывод, как показано ниже.

Как видно, репозиторий EPEL доступен и активен в системе. Теперь давайте перейдем к установке fail2ban.

Установка Fail2ban на Rocky Linux

1. Чтобы установить fail2ban, выполните команду ниже.

sudo dnf install fail2ban fail2ban-firewalld

Введите «y», чтобы подтвердить установку, и нажмите «Enter», чтобы продолжить.

Как и в командной строке, вы также устанавливаете дополнительный пакет «fail2ban-firewalld». Это позволит fail2ban манипулировать правилами firewalld.

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

sudo systemctl start fail2ban

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

sudo systemctl enable fail2ban

4. Теперь проверьте службы состояния fail2ban, выполнив следующую команду.

sudo systemctl status fail2ban

И вы получите, что служба fail2ban активна и работает с конфигурацией по умолчанию, как показано ниже.

Настройка Fail2ban

Теперь вы будете настраивать fail2ban и активировать работу fail2ban с файлом firewalld.

1. Скопируйте конфигурацию fail2ban по умолчанию из «jail.conf» в «jail.local», используя следующую команду.

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

2. Затем отредактируйте конфигурацию fail2ban с помощью приведенной ниже команды редактора nano.

sudo nano /etc/fail2ban/jail.local

В разделе \[ПО УМОЛЧАНИЮ]\ проверьте приведенные ниже конфигурации.

[DEFAULT]
....
bantime = 1h
findtime = 1h
maxretry = 5

Опции, которые вы должны знать.

  • [DEFAULT]=Все конфигурации в этом разделе будут применяться как глобальные конфигурации по умолчанию.
  • bantime=количество блокировок x IP-адрес. Он поддерживает формат как день, минута или часы. В этом примере хост или IP-адрес будут заблокированы на «1 час» после максимального количества неудачных попыток аутентификации.
  • findtime=IP-адрес будет заблокирован, если максимальная аутентификация не удалась в течение последнего \findtime\.
  • maxretry=Когда IP-адрес имеет число X ошибок при входе в систему maxrtry, этот IP-адрес будет заблокирован. В этом примере IP-адрес будет заблокирован после 5 неудачных попыток аутентификации.

Настройте bantime, findtime и maxrety по своему усмотрению, затем нажмите «Ctrl + x» и введите «y», затем нажмите «Enter», чтобы сохранить конфигурацию.

3. Конфигурация fail2ban по умолчанию использует iptables для блокировки. Чтобы разрешить fail2ban использовать firewalld для блокировки, скопируйте конфигурацию \00-firewalld.conf\ в \00-firewalld.local\, используя приведенную ниже команду.

sudo mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local

Эта конфигурация \00-firewalld.conf\ является частью пакета \fail2ban-firewalld\.

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

sudo systemctl restart fail2ban

Защита службы SSH с помощью Fail2ban

По умолчанию fail2ban не блокирует ни один IP-адрес, пока вы не включите настройку тюрьмы для каждой службы, которую хотите защитить. Кроме того, конфигурация тюрьмы переопределит конфигурацию по умолчанию на \jail.local\. Конфигурация джейла будет доступна в каталоге \/etc/fail2ban/jail.d\.

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

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

Теперь вставьте следующую конфигурацию.

[sshd]
enabled = true

# Override the default global configuration
# for specific jail sshd
bantime = 1d
maxretry = 3

Как видно, конфигурация переопределяет параметры «bantime» и «maxretry» для тюрьмы «sshd».

Нажмите \Ctrl+x\ и введите \Y\, затем нажмите \Enter\, чтобы сохранить новую конфигурацию тюрьмы.

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

sudo systemctl restart fail2ban

3. После этого проверьте статус fail2ban с помощью команды fail2ban-client. fail2ban-client — это командная строка для управления сервером управления fail2ban.

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

sudo fail2ban-client status

И вы получите аналогичный результат, как показано ниже.

Fail2ban работает с 1 активным именем тюрьмы \sshd\.

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

Проверьте конфигурацию «maxretry» для тюрьмы «sshd», используя приведенную ниже команду.

sudo fail2ban-client get sshd maxretry

И вы увидите, что вывод равен \3\, соответствует значению в конфигурации \sshd.local\.

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

sudo fail2ban-client get sshd actions

И вы увидите вывод \firewallcmd-rich-rules\, соответствующий глобальной конфигурации fail2ban в \00-firewalld.local\.

Проверьте установку Fail2ban и Firewalld

Чтобы проверить установку fail2ban, проверьте полный статус джейла (для этого руководства это sshd jail) и проверьте правила firewalld, сгенерированные fail2ban.

В целях тестирования ниже приведен снимок экрана после попытки подключения к SSH-серверу с неверным паролем. После достижения maxretry «3» раз соединение разрывается сервером.

1. Выполните следующую команду, чтобы проверить состояние определенного джейла (в этом примере sshd jail).

sudo fail2ban-client status sshd

И вы получите аналогичный результат, как показано ниже.

Как видно, тюрьма sshd имеет 1 забаненный IP-адрес. Если вы находитесь на живом VPS или выделенном сервере, вы увидите гораздо больше IP-адресов.

2. Fail2ban сгенерирует расширенные правила firewalld для блокировки IP-адресов. Расширенные правила firewalld — это расширенная возможность фильтрации в firewalld.

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

firewall-cmd --list-rich-rules

И вы получите аналогичный результат, как показано ниже.

IP-адрес Uban на Fail2ban

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

1. Выполните приведенную ниже команду fail2ban-client, чтобы разблокировать IP-адрес \192.168.1.10\.

sudo fail2ban-client unban 192.168.1.10

И IP-адрес будет удален из списка запрещенных на fail2ban.

Затем выполните следующую команду, чтобы убедиться, что IP-адрес удален из базы данных fail2ban (в данном примере это тюрьма sshd).

sudo fail2ban-client status sshd

И вы получите IP-адрес, удаленный из раздела «Список запрещенных IP-адресов».

Заключение

Поздравляем! вы успешно установили инфраструктуру IPS fail2ban на Rocky Linux 8.4. И в качестве следующего шага вы можете изучить другую конфигурацию тюрьмы для защиты других служб, таких как FTP-сервер, phpMyAdmin, WordPress и т. д.