✅ fail2ban이란?
fail2ban은 시스템 로그 파일을 모니터링하여 반복적인 로그인 실패 같은 악의적인 행동을 감지하고, 해당 IP를 자동으로 방화벽을 통해 차단하는 보안 도구입니다.
주요 기능은 다음과 같습니다:
-
SSH, FTP, SMTP, Apache/Nginx 등 다양한 서비스 보호
-
로그인 실패 횟수 초과 시 IP 자동 차단
-
차단 시간 및 조건 사용자 정의 가능
-
방화벽(firewalld, iptables 등)과 연동
✅ 왜 fail2ban이 필요한가?
Linux 서버는 기본적으로 외부와 연결되어 있기 때문에 공격자가 IP를 수천 번 시도해도 막을 방법이 없습니다. 다음과 같은 경우에 fail2ban은 큰 도움이 됩니다:
-
SSH 로그인 시도 폭주: 무작위로 ID/PW 조합을 시도하는 공격 차단
-
웹 서버 악성 요청 차단: Apache/Nginx 로그 분석을 통한 공격 IP 차단
-
메일 서버 보호: 스팸 릴레이나 인증 실패 차단
fail2ban은 이런 문제를 방지하며, 서버 부하를 줄이고 보안성을 높이는 데 큰 역할을 합니다.
🛠️ Rocky Linux 9에 fail2ban 설치 및 설정
1. dnf update 및 EPEL 저장소 설치
2. fail2ban 설치
3. fail2ban 서비스 시작 및 부팅 시 자동 실행 설정
4. 기본 설정 파일 수정
기본 설정 파일인 jail.conf는 사용하지 않고 복사하여 jail.local로 사용합니다.
그 후 파일 편집기를 통해 설정 파일을 수정합니다.
5. ssh 보호 설정 예시
예시로 ssh 보호를 위한 설정 파일 수정을 진행하겠습니다.
- enable – 이 jail을 활성화할지 여부
- port – ssh 포트 번호
- logpath – 로그 파일 위치
- maxretry – 허용되는 로그인 실패 횟수
- bantime – ip가 차단되는 시간(단위 : 초)
- findtime – maxretry 기준 시간(단위: 초)
- action – 작동 방법
6. iptables 확인
7. 작동 확인
fail2ban은 설정만 잘해두면 별다른 유지보수 없이 서버를 자동으로 방어해줍니다. 간단한 설정만으로도 SSH 무차별 공격, 웹 공격, 메일 서버 공격 등을 효과적으로 막을 수 있어 많은 서버 관리자들의 필수 도구로 자리 잡고 있습니다.
만약 웹 서버(Apache/Nginx), 메일 서버(Postfix/Dovecot) 등을 운영 중이라면 추가 설정을 통해 더 넓은 범위의 보안을 구축할 수 있습니다.
이상으로 글 작성을 마치겠습니다. 감사합니다!