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

Как установить и настроить Fail2ban на Alma Linux 8


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

  1. Предпосылки
  2. Проверьте установку брандмауэра
  3. Установите Fail2Ban
  4. Настроить Fail2Ban
  5. Защитите SSH с помощью Fail2Ban
  6. Заключение

Fail2ban — это бесплатная система предотвращения вторжений с открытым исходным кодом, написанная на Python. Он используется для защиты вашей системы от атак грубой силы. Он постоянно отслеживает файлы журнала SSH (и другие) на предмет попыток аутентификации, после определенного количества попыток неправильного ввода пароля IP-адрес клиента блокируется Fail2Ban. Его можно использовать для защиты нескольких сервисов, включая SSH, vsftpd, Apache и Webmin.

В этом руководстве я покажу вам, как установить брандмауэр Fail2Ban на Alma Linux 8.

Предпосылки

  • Сервер под управлением Alma Linux 8.
  • На сервере настроен пароль root.

Проверить установку брандмауэра

По умолчанию пакет Firewalld предустановлен в Alma Linux 8. Во-первых, вам нужно проверить, запущен он или нет. Вы можете проверить это с помощью следующей команды:

systemctl status firewalld

Если firewalld не запущен, вы получите следующий вывод:

? firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

Теперь запустите службу firewalld с помощью следующей команды:

systemctl start firewalld

Вы можете проверить состояние firewalld с помощью следующей команды:

systemctl status firewalld

Вы должны увидеть следующий вывод:

? firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: active (running) since Sat 2022-02-19 08:57:14 UTC; 40s ago
     Docs: man:firewalld(1)
 Main PID: 7214 (firewalld)
    Tasks: 2 (limit: 23696)
   Memory: 27.9M
   CGroup: /system.slice/firewalld.service
           ??7214 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid

Feb 19 08:57:14 linux systemd[1]: Starting firewalld - dynamic firewall daemon...
Feb 19 08:57:14 linux systemd[1]: Started firewalld - dynamic firewall daemon.

Теперь перечислите все службы, настроенные firewalld, с помощью следующей команды:

firewall-cmd --list-all

Вы должны увидеть следующий вывод:

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  forward: no
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Установить Fail2Ban

По умолчанию пакет Fail2Ban недоступен в стандартном репозитории Alma Linux. Поэтому вам нужно будет установить его из репозитория EPEL. Вы можете установить репозиторий EPEL с помощью следующей команды:

dnf install epel-release -y

После установки репозитория EPEL вы можете установить брандмауэр Fail2Ban с помощью следующей команды:

dnf install fail2ban fail2ban-firewalld -y

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

systemctl start fail2ban
systemctl enable fail2ban

Вы можете проверить статус службы fail2ban, выполнив команду:

systemctl status fail2ban

Вы должны увидеть следующий вывод:

? fail2ban.service - Fail2Ban Service
   Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-02-19 08:58:34 UTC; 6s ago
     Docs: man:fail2ban(1)
  Process: 7838 ExecStartPre=/bin/mkdir -p /run/fail2ban (code=exited, status=0/SUCCESS)
 Main PID: 7840 (fail2ban-server)
    Tasks: 3 (limit: 23696)
   Memory: 10.8M
   CGroup: /system.slice/fail2ban.service
           ??7840 /usr/bin/python3.6 -s /usr/bin/fail2ban-server -xf start

Feb 19 08:58:34 linux systemd[1]: Starting Fail2Ban Service...
Feb 19 08:58:34 linux systemd[1]: Started Fail2Ban Service.
Feb 19 08:58:35 linux fail2ban-server[7840]: Server ready

Настроить Fail2Ban

Основной файл конфигурации Fail2Ban находится в /etc/fail2ban/jail.conf. Рекомендуется создать копию основного файла конфигурации. Вы можете создать его с помощью следующей команды:

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

По умолчанию Fail2Ban использует брандмауэр Iptables. Чтобы включить поддержку firewalld, выполните следующую команду:

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

Затем перезапустите службу Fail2Ban, чтобы применить изменения:

systemctl restart fail2ban

Безопасный SSH с Fail2Ban

По умолчанию Fail2Ban не настроен на блокировку удаленных IP-адресов. Вам нужно будет настроить файл конфигурации тюрьмы Fail2Ban для каждой службы, которую вы хотите защитить.

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

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

Добавьте следующие строки:

# This configuration will block the remote host for 2 hours after 3 failed SSH login attempts. 
[sshd]
enabled = true
bantime = 2h
maxretry = 3

Сохраните и закройте файл, когда закончите, затем перезапустите службу SSH, чтобы применить изменения:

systemctl restart fail2ban

Теперь вы можете проверить конфигурацию джейла с помощью следующей команды:

fail2ban-client status

Вы получите настроенную тюрьму в следующем выводе:

Status
|- Number of jail:	1
`- Jail list:	sshd

Чтобы проверить SSH-тюрьму на наличие запрещенных IP-адресов, выполните следующую команду:

fail2ban-client status sshd

Вы получите весь список запрещенных IP-адресов в следующем выводе:

Status for the jail: sshd
|- Filter
|  |- Currently failed:	6
|  |- Total failed:	15
|  `- Journal matches:	_SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned:	2
   |- Total banned:	2
   `- Banned IP list:	96.9.67.48 43.154.142.8

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

fail2ban-client unban remote-ip-address

Заключение

В приведенном выше руководстве мы объяснили, как установить Fail2Ban на Alma Linux 8. Мы также объяснили, как использовать Fail2Ban для защиты службы SSH. Теперь вы можете внедрить Fail2Ban в производственной среде, чтобы защитить свою систему от атак грубой силы.