설치 방법
Fail2Ban은 대부분의 리눅스 배포판에서 기본 패키지로 제공됩니다. 아래 명령어를 사용하여 쉽게 설치할 수 있습니다.
데비안/우분투
sudo apt-get update
sudo apt-get install fail2ban
CentOS/RHEL
sudo yum install epel-release
sudo yum install fail2ban
설치 후 Fail2Ban 서비스 시작 및 활성화
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
설치 후 서비스를 시작하고 부팅 시 자동으로 실행되도록 설정합니다.
주요 설정 파일
Fail2Ban의 핵심 설정은 `jail.conf`와 `jail.local` 파일에서 이루어집니다. 원본 파일인 `jail.conf`는 수정하지 않고, `jail.local` 파일을 생성하여 설정을 덮어쓰는 것이 모범 사례입니다.
⚙️ 주요 설정 파일 위치
/etc/fail2ban/jail.conf
📝 사용자 지정 설정 파일 (권장)
/etc/fail2ban/jail.local
`jail.conf`의 설정을 변경하려면 이 파일을 생성하여 원하는 설정만 추가하면 됩니다. 이 방법은 업데이트 시 원본 파일이 덮어쓰이는 것을 방지합니다.
jail.local 파일의 주요 설정 예시
다음은 `jail.local` 파일에 자주 추가되는 설정 옵션입니다. 이 설정들을 통해 Fail2Ban의 동작 방식을 세부적으로 제어할 수 있습니다.
- [sshd]: sshd 서비스에 대한 설정을 시작합니다.
- enabled = true: 해당 jail(감옥)을 활성화합니다.
- port = ssh: ssh 포트(기본 22)를 보호 대상으로 지정합니다.
- maxretry = 5: 정해진 시간(findtime) 동안 로그인 실패 횟수가 5번을 초과하면 차단합니다.
- bantime = 10m: 차단할 시간(10분)을 설정합니다.
- findtime = 10m: 로그인 실패 횟수를 계산할 시간(10분)을 설정합니다.
주요 명령어
Fail2Ban 서비스 상태를 확인하거나, 수동으로 IP를 차단/차단 해제하는 데 사용되는 주요 명령어들입니다.
Fail2Ban 서비스 상태 확인
sudo systemctl status fail2ban
Fail2Ban 서비스가 정상적으로 실행 중인지 확인합니다.
Fail2Ban 로그 확인
sudo journalctl -u fail2ban
Fail2Ban이 차단한 IP 목록 등 자세한 동작 로그를 확인합니다.
특정 IP 수동으로 차단하기
sudo fail2ban-client set sshd banip 1.2.3.4
지정된 IP 주소를 `sshd` jail에서 수동으로 차단합니다.
특정 IP 수동으로 차단 해제하기
sudo fail2ban-client set sshd unbanip 1.2.3.4
이전에 차단된 IP 주소를 `sshd` jail에서 수동으로 차단 해제합니다.
현재 차단된 IP 목록 보기
sudo fail2ban-client status sshd
`sshd` jail에 의해 현재 차단된 IP 주소 목록을 확인합니다.