반응형
🔒 Fail2Ban이란?
Fail2Ban은 리눅스 서버 보안을 강화하는 침입 방지 도구입니다. 특정 패턴(예: 로그인 실패, 404 에러, 악성 봇 탐색 등)이 감지되면 자동으로 IP를 차단하는 기능을 제공합니다. 보통 SSH, Nginx, Apache, FTP, Postfix(메일 서버) 등에서 보안 위협이 되는 IP를 차단하는 데 사용됩니다.
🚀 Fail2Ban 설치 및 기본 설정
✅ 1. Fail2Ban 설치
Ubuntu/Debian
sudo apt update && sudo apt install fail2ban -y
CentOS/RHEL
sudo yum install epel-release -y
sudo yum install fail2ban -y
Arch Linux
sudo pacman -S fail2ban
✅ 2. Fail2Ban 서비스 실행 및 자동 시작
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
설치 후 실행 상태 확인:
sudo systemctl status fail2ban
🔍 Fail2Ban 기본 동작 방식
- 로그 파일을 모니터링하여 특정 패턴(예: SSH 로그인 실패, Nginx 404 요청 등)을 감지
- 설정된 기준을 초과하는 IP를 자동으로 차단
- 차단된 IP는 일정 시간이 지나면 자동 해제 (설정 가능)
⚙️ Fail2Ban 기본 설정 (jail.local)
Fail2Ban의 설정을 변경하려면 /etc/fail2ban/jail.local 파일을 수정해야 합니다.
✅ 1. jail.local 파일 생성
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
이제 jail.local을 편집합니다.
sudo nano /etc/fail2ban/jail.local
✅ 2. 기본 설정 변경
[DEFAULT]
bantime = 3600 # 차단 유지 시간 (1시간)
findtime = 600 # 로그 감지 기간 (10분)
maxretry = 3 # 최대 허용 실패 횟수 (3회 초과 시 차단)
banaction = iptables-multiport # 차단 방식
ignoreip = 127.0.0.1/8 192.168.1.0/24 # 허용 IP
🔥 Fail2Ban SSH 보안 설정
SSH를 보호하기 위해 SSH 관련 설정을 활성화해야 합니다.
✅ 1. SSH 감시 활성화
jail.local 파일에서 아래 항목을 수정:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
🔥 Fail2Ban으로 Nginx 보호
Nginx에서 악의적인 요청(예: .env 파일 탐색, 404 요청 등)을 차단할 수 있습니다.
✅ 1. 404 에러 탐지 후 차단
📌 /etc/fail2ban/filter.d/nginx-404.conf 파일 생성:
sudo nano /etc/fail2ban/filter.d/nginx-404.conf
아래 내용을 추가:
[Definition]
failregex = ^<HOST> -.*"(GET|POST).* 404
ignoreregex =
✅ 2. jail.local에서 활성화
[nginx-404]
enabled = true
filter = nginx-404
logpath = /var/log/nginx/access.log
maxretry = 5
bantime = 86400
설정 적용 후 Fail2Ban 재시작:
sudo systemctl restart fail2ban
🔍 Fail2Ban 로그 및 차단 IP 확인
Fail2Ban이 정상적으로 작동하는지 확인하는 방법:
✅ 현재 차단된 IP 확인
sudo fail2ban-client status
✅ 특정 서비스(Jail)의 상태 확인
sudo fail2ban-client status sshd
✅ 특정 IP 차단 해제
sudo fail2ban-client set sshd unbanip 192.168.1.101
🚀 Fail2Ban 추가 보안 조치
✅ 1. Fail2Ban 자동 업데이트 설정
sudo apt update && sudo apt upgrade -y
✅ 2. Fail2Ban에 추가적인 보안 강화
- 2FA 인증 설정 (SSH에 Google Authenticator 추가)
- 기본 SSH 포트(22) 변경 (/etc/ssh/sshd_config 수정)
- fail2ban.log에서 차단된 IP 분석 (/var/log/fail2ban.log)
반응형
'IT & 개발 > Linux' 카테고리의 다른 글
Ubuntu에서 Docker 설치하는 방법: 쉽고 빠른 가이드 (4) | 2024.10.08 |
---|---|
[apache2] SPA(Single Page Application) 새로고침 시 404 error (0) | 2023.07.24 |
[Apache] upload file size limit (0) | 2022.10.05 |
[Gmail/smtp] 보안 사항 변경 (0) | 2022.08.30 |