Ubuntu 보안 – Fail2Ban(로그인 실패 IP 자동 차단) 설치

Ubuntu 서버에서 일정 횟수 비밀번호 입력에 실패한 IP 주소를 자동으로 차단하는 방법

Fail2Ban을 사용한 로그인 차단

Fail2Ban은 로그 파일을 모니터링하여 일정 횟수 이상 비밀번호 입력을 실패한 IP 주소를 자동으로 차단하는 도구입니다.

  1. Fail2Ban 설치
sudo apt install fail2ban
  1. 설정 파일 수정
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
  1. SSH 보호 설정

SSH 접속 시도에 대한 보호를 활성화하려면 [sshd] 섹션을 찾아 수정합니다:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 600
  • enabled = true: SSH 접속 시도에 대해 Fail2Ban을 활성화합니다.
  • maxretry=5: 5회 이상 비밀번호 입력을 실패하면 차단합니다.
  • bantime=600: 10분 동안 IP를 차단합니다.

(bantime = -1: 영구적으로 IP를 차단합니다.)

  1. Fail2Ban 서비스 재시작

설정을 적용한 후 Fail2Ban 서비스를 재시작합니다:

sudo systemctl restart fail2ban
  1. 전체적인 영구 차단 적용

만약 Fail2Ban에서 SSH뿐만 아니라 다른 서비스에도 영구 차단을 적용하고 싶다면, 설정 파일의 [DEFAULT] 섹션에서 bantime을 설정할 수 있습니다:

[DEFAULT]
bantime = -1

이렇게 설정하면 Fail2Ban이 보호하는 모든 서비스에서 차단된 IP는 영구적으로 차단됩니다.

설정을 변경한 후에는 Fail2Ban 서비스를 재시작해야 변경 사항이 적용됩니다:

sudo systemctl restart fail2ban
  1. IP 차단 상태 확인

Fail2Ban이 차단한 IP 목록을 확인하려면 다음 명령어를 사용합니다:

sudo fail2ban-client status sshd

이 명령어는 sshd jail에 의해 차단된 IP 목록을 보여줍니다. 다른 jail에 대한 정보를 확인하려면 sshd 부분을 해당 jail 이름으로 바꾸면 됩니다.

  1. 특정 IP 차단 해제

만약 영구적으로 차단된 IP를 다시 허용하고 싶다면, 다음 명령어로 차단을 해제할 수 있습니다:

예를 들어, IP 192.168.0.100을 차단 해제하려면 다음과 같이 실행합니다:

sudo fail2ban-client unban 192.168.0.100

『출처 – ChatGPT』