블로그로 돌아가기
5월 23, 2026가이드

Linux에서 Fail2ban 설치 및 구성

Fail2ban으로 SSH와 Nginx를 보호하고 VPS를 무차별 대입 공격에서 지킵니다.

Linux에서 Fail2ban 설치 및 구성

Fail2ban은 로그를 모니터링하며 반복된 SSH 로그인 실패 등 악의적 행위를 보이는 IP를 일시 차단합니다. 새 Hiddence VPS에 먼저 설치할 보안 도구 중 하나입니다.

Fail2ban 설치

bash
# Ubuntu / Debian
sudo apt update
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

# CentOS / RHEL / Alma / Rocky
sudo yum install epel-release -y
sudo yum install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

SSH 보호

로컬 설정 파일을 만듭니다(jail.conf는 직접 편집하지 마세요):

bash
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
findtime = 600

sudo systemctl restart fail2ban

Nginx 보호(선택)

404나 인증 오류가 너무 많은 IP를 차단합니다:

bash
[nginx-http-auth]
enabled = true
port = http,https
filter = nginx-http-auth
logpath = /var/log/nginx/error.log
maxretry = 5

[nginx-noscript]
enabled = true
port = http,https
filter = nginx-noscript
logpath = /var/log/nginx/access.log
maxretry = 6

차단된 IP 확인

bash
sudo fail2ban-client status
sudo fail2ban-client status sshd

# Unban an IP if needed:
sudo fail2ban-client set sshd unbanip 1.2.3.4

모범 사례

  • 비밀번호 대신 SSH 키로 공격 표면 축소
  • SSH 포트 변경은 방화벽 규칙과 함께
  • 필요 시 사무실 IP를 fail2ban ignoreip에 등록
  • /var/log/fail2ban.log 정기 확인
  • UFW 또는 Firewalld와 함께 사용