Server/Linux

[Linux] #24 보안 설정, Fail2Ban 설치와 설정 방법 가이드

TOASTDEV 2025. 8. 18. 10:00
반응형

 

 

안녕하세요, 토스트 데브입니다!
서버를 인터넷에 공개하면 가장 먼저 당하는 공격이 바로 무차별 대입 공격(Brute Force) 입니다.
특히 SSH 포트는 전 세계에서 수많은 봇이 계속해서 로그인 시도를 하죠.
이를 막기 위해 사용하는 대표적인 보안 도구가 바로 Fail2Ban입니다.

이번 글에서는 Ubuntu 서버에서 Fail2Ban 설치와 기본 설정, SSH 보호 방법을 정리하겠습니다.

 

 

🛠 1. Fail2Ban 설치

sudo apt update
sudo apt install fail2ban -y

설치 후 상태 확인:

sudo systemctl status fail2ban
  • active (running)이면 정상 실행 중

 

 

⚙️ 2. 기본 설정 파일 복사

Fail2Ban 기본 설정 파일:

/etc/fail2ban/jail.conf

이 파일은 직접 수정하지 않고, 복사하여 jail.local로 사용합니다.

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

 

 

🔐 3. SSH 보호 설정

jail.local 파일 수정:

sudo nano /etc/fail2ban/jail.local

아래 부분을 찾아 수정:

[sshd]
enabled = true
port    = ssh
logpath = %(sshd_log)s
maxretry = 5
bantime = 600
findtime = 600
  • enabled: 활성화 여부
  • maxretry: 로그인 실패 허용 횟수
  • bantime: 차단 시간(초)
  • findtime: 실패 시도 감시 기간(초)

예:
maxretry = 5, bantime = 600 → 10분 동안 5번 실패 시 10분 차단

 

 

🚀 4. Fail2Ban 재시작 및 적용

sudo systemctl restart fail2ban

 

 

📋 5. 동작 상태 확인

SSH 관련 보호 상태 확인:

sudo fail2ban-client status sshd

전체 상태 확인:

sudo fail2ban-client status

 

 

🌐 6. 차단된 IP 해제

sudo fail2ban-client set sshd unbanip 203.0.113.10

 

 

💡 토스트 데브 팁

✅ SSH 포트를 변경했다면, Fail2Ban 설정에서도 동일하게 수정해야 합니다.
✅ 웹 서버(Nginx, Apache) 로그인 페이지나 phpMyAdmin 같은 서비스에도 적용할 수 있습니다.
✅ bantime을 0으로 설정하면 영구 차단됩니다.

 

#Ubuntu보안 #Fail2Ban설정 #무차별대입공격방지 #SSH보안 #서버보안 #리눅스보안 #Ubuntu서버 #토스트데브 #Fail2Ban사용법 #서버관리

반응형