Fail2ban은 반복적인 로그인 실패를 감지해서 해당 IP를 자동으로 차단하는 침입 방지 도구다. SSH 무차별 대입 공격으로부터 서버를 보호하는 데 필수적이다.
설치
Ubuntu/Debian 기반 설치 방법으로 설치는 간단하다.
sudo apt update sudo apt install fail2ban -y
설치 후 서비스를 활성화하고 시작한다.
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
sudo systemctl status fail2ban
설정 파일 구조
Fail2ban의 설정 파일은 /etc/fail2ban 디렉토리에 위치한다:
- fail2ban.conf: 전역 설정 파일
- jail.conf: Jail 설정의 기본 템플릿
- jail.local: 사용자 정의 설정 파일 (직접 생성)
- filter.d/: 로그 패턴 필터 정의
- action.d/: IP 차단/해제 액션 정의
기본 설정
업데이트 시 기본 설정이 덮어쓰여질 수 있으므로 .local 파일을 생성해서 사용하는 것이 안전하다.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
주요 설정 값 변경
금지 시간과 최대 실패 횟수 설정
# 차단 시간 (기본값: 10분)
bantime = 10m
# 로그 분석 시간 범위 (기본값: 10분)
findtime = 10m
# 차단 전 최대 실패 횟수 (기본값: 5회)
maxretry = 5
시간 단위는 s(초), m(분), h(시), d(일), w(주)를 사용할 수 있다.
예를 들어
bantime = 1h # 1시간 차단
bantime = 1d # 1일 차단
bantime = 5w # 5주 차단
다음과 같이 설정할 수 있다.
설정 변경 후 서비스를 재시작한다.
sudo systemctl restart fail2ban
Ban된 IP 확인
현재 활성화된 jail 목록을 확인한다.
sudo fail2ban-client status
특정 jail의 상세 정보와 차단된 IP 목록을 확인한다.
sudo fail2ban-client status sshd
Ban된 IP 해제 방법
특정 jail에서 IP를 해제한다.
sudo fail2ban-client unban 192.168.1.100
IP 화이트리스트 등록
특정 IP를 영구적으로 차단 제외하려면 jail.local의 ignoreip 항목에 추가할 수 있다.
sudo nano /etc/fail2ban/jail.local
ignoreip = 192.168.1.100
설정 변경 후 서비스를 재시작한다.
sudo systemctl restart fail2ban
'연구실' 카테고리의 다른 글
| MLPerf Inference 설치 (0) | 2025.10.29 |
|---|---|
| AMD μProf 설치 및 간단 사용법 (ubuntu) (0) | 2025.10.14 |
| GAPBS 벤치마크 사용법 (0) | 2025.10.13 |
| ubuntu cpu 성능 설정 및 모니터링 (0) | 2025.10.06 |
| SSH 세션이 끊겨도 프로세스가 끊기지 않게 하려면.. (0) | 2025.04.30 |