운영중입니다

fail2ban 설치 및 사용 방법 본문

리눅스보안

fail2ban 설치 및 사용 방법

https443 2025. 6. 18. 12:10

  Fail2ban 이란?

Fail2ban은 리눅스 기반 시스템에서 비정상적인 로그인 시도나 악의적인 접근을 자동으로 차단하는 보안 도구.
로그 파일을 모니터링하여 **반복적인 실패 시도(IP 기준)**를 감지 및 해당 IP를 iptables, firewalld, 또는 기타 방화벽을 통해 차단하는 서비스.
다양한 서비스와 연동이 가능하며, 자동 해제 시간도 설정 가능.

 


  설치 방법

1. 설치
* CentOS 기준

yum install fail2ban


* Ubuntu 기준

sudo apt install fail2ban

 


 

2. 부팅 시 서비스 활성화

* CentOS 6버전 이하 (SysVinit 기반)

chkconfig fail2ban on


* CentOS 7 이상 / Ubuntu 16.04 이상 (systemd 기반)

systemctl enable fail2ban

 


3. 서비스 활성화 확인

* CentOS 6버전 이하 (SysVinit 기반)

service fail2ban status

 

chkconfig --list fail2ban


* CentOS 7 이상 / Ubuntu 16.04 이상 (systemd 기반)

systemctl status fail2ban
systemctl list-unit-files | grep fail2ban

systemctl is-enabled fail2ban





  설정 방법

설정파일의 위치는 /etc/fail2ban 에 있으며 jail.conf 를 수정하여 사용한다.

jail.conf 란 Fail2ban에서 어떤 서비스(예: ssh, apache 등)를 보호할지와 각 jail(감시 규칙)의 설정을 정의한 기본 구성 파일.



* 기존 conf 파일에 바로 수정하지 않고 꼭 사본은 만들어 둔 후에 수정하여 사용하도록 함


 

#디렉토리 이동
cd /etc/fail2ban

#conf 파일 복사
cp jail.conf jail.conf.(날짜)org.bak

#conf 파일 수정
vim jail.conf

 

 

* 아래 conf 파일 수정 내용은 CentOS 설치를 기준으로 작성

[sshd]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/secure

 

  설정             항목설정                                                  값설명

enabled true 해당 fail2ban 정책(jail)을 활성화
filter sshd sshd에 대한 필터 규칙을 사용합니다. 로그에서 SSH 관련 실패 탐지에 사용
action iptables[name=SSH, port=ssh, protocol=tcp] iptables를 사용해 SSH 포트(tcp 프로토콜)를 차단하는 액션을 수행
logpath /var/log/secure SSH 로그인 실패 등의 로그를 읽어올 경로 (CentOS/RHEL에서 사용됨)

 

* Ubuntu의 경우 secure > auth.log 로 변경 하여 사용


✅Fail2ban 재시작 및 확인

conf 파일 수정 후에는 수정된 내용 적용을 위해 재시작을 할 것

service fail2ban start
service fail2ban status

 


 

✅정책 확인

fail2ban-client status

 


* 특정 IP 차단이 되었을 때 확인 및 해제 방법

#차단 IP 확인

iptables -v -L | grep (사용자IP)


# 확인된 IP 해제 

fail2ban-client set 정책명 unbanip IP