Alma Linux 8에서 Fail2ban을 설치하고 구성하는 방법
이 페이지에서
- 전제 조건
- 방화벽 설치 확인\n
- Fail2Ban 설치
- Fail2Ban 구성
- Fail2Ban으로 SSH 보안
- 결론
Fail2ban은 Python으로 작성된 무료 오픈 소스 침입 방지 시스템입니다. 무차별 대입 공격으로부터 시스템을 보호하는 데 사용됩니다. 인증 시도에 대해 SSH(및 기타) 로그 파일을 지속적으로 모니터링하고 지정된 수의 잘못된 암호 시도 후 클라이언트 IP 주소가 Fail2Ban에 의해 금지됩니다. SSH, vsftpd, Apache 및 Webmin을 포함한 여러 서비스를 보호하는 데 사용할 수 있습니다.
이 튜토리얼에서는 Alma Linux 8에 Fail2Ban 방화벽을 설치하는 방법을 보여줍니다.
전제 조건
- Alma Linux 8을 실행하는 서버.\n
- 루트 암호는 서버에서 구성됩니다.\n
방화벽 설치 확인
기본적으로 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
다음 명령을 사용하여 방화벽의 상태를 확인할 수 있습니다.
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
Fail2Ban으로 SSH 보안
기본적으로 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
금지된 IP에 대한 SSH 감옥을 확인하려면 다음 명령을 실행하십시오.
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
결론
위 가이드에서는 Alma Linux 8에 Fail2Ban을 설치하는 방법에 대해 설명했습니다. Fail2Ban을 사용하여 SSH 서비스를 보호하는 방법도 설명했습니다. 이제 프로덕션 환경에서 Fail2Ban을 구현하여 무차별 대입 공격으로부터 시스템을 보호할 수 있습니다.