Как установить и настроить Fail2ban на Alma Linux 8
На этой странице
- Предпосылки
- Проверьте установку брандмауэра
- Установите Fail2Ban
- Настроить Fail2Ban
- Защитите SSH с помощью Fail2Ban
- Заключение
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 в производственной среде, чтобы защитить свою систему от атак грубой силы.