Fail2ban

Ubuntu 서버에서 반복되는 SSH 인증 실패를 일시적으로 차단하려면 Fail2ban을 설치하고 구성하십시오.

실행 전 확인

이 예제는 systemd 및 지원되는 방화벽을 사용하는 Ubuntu 서버를 대상으로 합니다. 패키지 이름, 로그 소스 및 방화벽 백엔드는 배포판에 따라 다릅니다. Fail2ban은 반복되는 로그인 시도를 줄입니다. SSH 키, 업데이트 또는 액세스 제어를 대체하지 않습니다. 기존 관리 세션과 콘솔 복구를 계속 사용하고 유일한 근무 주소에서 테스트하지 마세요. SSH 감옥이 실제 인증 로그를 읽고 방화벽 조치가 효과적인지 확인하십시오. 위험을 이해하지 못한 채 광범위한 네트워크를 화이트리스트에 추가하지 마십시오.

변경 사항을 적용한 후 새 SSH 세션에서 로그인이 가능한지와 원하는 기능이 작동하는지 확인하세요. 확인이 성공할 때까지 현재 세션을 열어 두면 필요한 경우 설정을 복구할 수 있습니다.

사용 예제

Ubuntu에 Fail2ban을 설치하고 서비스를 시작하십시오. 설치하려면 관리자 권한이 필요합니다.

sudo apt update
sudo apt install fail2ban
sudo systemctl enable --now fail2ban

/etc/fail2ban/jail.d/sshd.local에서 별도의 감옥 재정의를 만듭니다. 패키지된jail.conf를 편집하지 마십시오. 이 예에서는 systemd 로그를 사용하고 10분 동안 5번의 오류가 발생한 후 1시간 동안 주소를 차단합니다.

nano로 파일을 여세요:

sudo nano /etc/fail2ban/jail.d/sshd.local
[sshd]
enabled = true
backend = systemd
maxretry = 5
findtime = 10m
bantime = 1h

구성을 검증하고 서비스를 다시 시작한 후 SSH 감옥을 검사합니다. 출력이 의도한 로그 소스 및 방화벽 조치를 식별하는지 확인하십시오.

sudo fail2ban-client -t && sudo systemctl restart fail2ban && sudo fail2ban-client status sshd

감옥이 시작되지 않거나 오류가 감지되지 않으면 최근 서비스 로그를 검사하십시오.

sudo journalctl -u fail2ban -n 100 --no-pager

승인된 주소가 금지된 경우 기존 관리 세션이나 서버 콘솔에서 해당 주소를 금지 해제하십시오. 예시 주소를 바꿉니다.

sudo fail2ban-client set sshd unbanip 192.0.2.10

공식 참고 자료

검토일: 2026년 10월 27일