웹사이트 검색

CentOS/RHEL 8에서 SSH를 보호하기 위해 Fail2Ban을 설치하는 방법


Fail2ban은 무료 오픈 소스이며 널리 사용되는 침입 방지 도구로, 로그 파일에서 너무 많은 비밀번호 오류 등 악의적인 징후를 보이는 IP 주소를 검색하여 차단합니다(방화벽 업데이트). IP 주소를 거부하는 규칙). 기본적으로 sshd를 포함한 다양한 서비스에 대한 필터가 함께 제공됩니다.

추가 읽기: CentOS/RHEL 8을 사용한 초기 서버 설정

이 문서에서는 SSH를 보호하고 SSH에 대한 무차별 대입 공격으로부터 SSH 서버 보안을 향상시키기 위해 fail2ban을 설치 및 구성하는 방법을 설명합니다. CentOS/RHEL 8.

CentOS/RHEL 8에 Fail2ban 설치

fail2ban 패키지는 공식 저장소에는 없지만 EPEL 저장소에서 사용할 수 있습니다. 시스템에 로그인한 후 명령줄 인터페이스에 액세스한 다음 표시된 대로 시스템에서 EPEL 저장소를 활성화합니다.

dnf install epel-release
OR
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

이후 다음 명령을 실행하여 Fail2ban 패키지를 설치합니다.

dnf install fail2ban

SSH를 보호하도록 Fail2ban 구성

fail2ban 구성 파일은 /etc/fail2ban/ 디렉터리에 있으며 필터는 /etc/fail2ban/filter.d/에 저장됩니다. 디렉토리(sshd의 필터 파일은 /etc/fail2ban/filter.d/sshd.conf)입니다.

Fail2ban 서버의 전역 구성 파일은 /etc/fail2ban/jail.conf이지만, 패키지의 경우 덮어쓰이거나 개선될 수 있으므로 이 파일을 직접 수정하지 않는 것이 좋습니다. 앞으로는 업그레이드하세요.

대안으로 jail.local 파일이나 /etc/fail2ban/jail 아래의 별도 .conf 파일에 구성을 생성하고 추가하는 것이 좋습니다. d/ 디렉토리. jail.local에 설정된 구성 매개변수는 jail.conf에 정의된 모든 항목보다 우선 적용됩니다.

이 문서에서는 표시된 대로 /etc/fail2ban/ 디렉토리에 jail.local이라는 별도의 파일을 생성합니다.

vi /etc/fail2ban/jail.local

파일이 열리면 다음 구성을 복사하여 붙여넣습니다. [DEFAULT] 섹션에는 전역 옵션이 포함되어 있고 [sshd]에는 sshd 감옥에 대한 매개변수가 포함되어 있습니다.


[DEFAULT] 
ignoreip = 192.168.56.2/24
bantime  = 21600
findtime  = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd

[sshd] 
enabled = true

위 구성의 옵션을 간략하게 설명하겠습니다.

  • ignoreip: 금지하지 않을 IP 주소 또는 호스트 이름 목록을 지정합니다.
  • bantime: 호스트가 금지되는 시간(초)을 지정합니다(즉, 유효 금지 기간).
  • maxretry: 호스트가 금지되기 전의 실패 횟수를 지정합니다.
  • findtime: 마지막 "findtime" 초 동안 "maxretry"를 생성한 경우, fail2ban은 호스트를 금지합니다.
  • 금지: 금지 조치.
  • 백엔드: 로그 파일 수정을 가져오는 데 사용되는 백엔드를 지정합니다.

따라서 위 구성은 IP가 지난 5분 동안 3번 실패했다면 해당 IP를 6시간 동안 금지하고 다음을 무시함을 의미합니다. IP 주소 192.168.56.2.

그런 다음 지금은 fail2ban 서비스를 시작하고 활성화하고 다음 systemctl 명령을 사용하여 서비스가 실행되고 있는지 확인합니다.

systemctl start fail2ban
systemctl enable fail2ban
systemctl status fail2ban

fall2ban-client를 사용하여 실패하고 금지된 IP 주소 모니터링

sshd를 보호하도록 fail2ban을 구성한 후 fail2ban-client를 사용하여 실패 및 금지된 IP 주소를 모니터링할 수 있습니다. Fail2ban 서버의 현재 상태를 보려면 다음 명령을 실행하십시오.

fail2ban-client status

sshd 감옥을 모니터링하려면 다음을 실행하세요.

fail2ban-client status sshd

fall2ban(모든 감옥 및 데이터베이스)에서 IP 주소 금지를 해제하려면 다음 명령을 실행하십시오.

fail2ban-client unban 192.168.56.1

Fail2ban에 대한 자세한 내용은 다음 매뉴얼 페이지를 참조하십시오.

man jail.conf
man fail2ban-client

이것이 이 가이드의 요약입니다! 이 주제에 대해 질문이나 공유하고 싶은 생각이 있으면 주저하지 말고 아래 피드백 양식을 통해 문의해 주세요.