> 패키지 및 시스템 관리 > fail2ban

Fail2Ban 완벽 가이드

Fail2Ban은 서버에 대한 무차별 대입 공격(Brute-force attack)을 자동으로 차단하는 보안 도구입니다. 이 가이드를 통해 Fail2Ban의 설치부터 설정, 주요 명령어까지 모두 알아보세요.

설치 방법

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 주소 목록을 확인합니다.


동일 카테고리 명령어