이 과정은 무차별 대입 공격으로부터 서버를 보호하는 fail2ban 패키지를 설치하고 기본 서비스를 활성화합니다.
apt 패키지 관리자를 사용하여 fail2ban을 설치합니다.
# 패키지 목록 업데이트
sudo apt update
# fail2ban 설치
sudo apt install fail2ban
설치 후 서비스가 자동으로 실행되는지 확인하고, 부팅 시 자동 실행을 설정합니다.
# fail2ban 서비스 시작 (자동 시작이 안 된 경우)
sudo systemctl start fail2ban
# 부팅 시 자동 실행 설정
sudo systemctl enable fail2ban
# 서비스 상태 확인
sudo systemctl status fail2ban
설정을 사용자 정의하고 업데이트 시 기존 설정을 보호하기 위해 jail.conf 파일을 복사하여 jail.local 파일을 생성합니다.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
jail.local 파일 편집jail.local 파일을 편집하여 전역 설정 ([DEFAULT]) 및 SSHD 보호 설정 ([sshd])을 조정합니다.
sudo nano /etc/fail2ban/jail.local
[DEFAULT] 섹션ignoreip: 127.0.0.1/8 ::1 [본인 공인 IP]bantime: 1h (1시간 차단, 영구 차단 시 -1)findtime: 10m (10분 동안 실패 횟수 카운트)maxretry: 5 (최대 실패 횟수)[sshd] 섹션 (SSH 보호 활성화)enabled: trueport: ssh 또는 변경한 포트 번호logpath: /var/log/auth.log (Ubuntu 기본값)설정 파일을 수정한 후 서비스를 재시작하여 변경 사항을 적용합니다.
sudo systemctl restart fail2ban
fail2ban-client status 명령 실행 시 "Failed to access socket path"와 같은 오류가 발생했을 경우, 서비스 실행 여부를 확인하고 구성 오류를 진단합니다.
서비스 상태가 failed 인 경우, 구성 파일에 문제가 있음을 의미합니다.
# 서비스 상태 확인
sudo systemctl status fail2ban
(결과에서 Active: failed 확인)
오류의 구체적인 내용을 확인하여 어떤 파일이나 정의를 찾지 못했는지 확인합니다.
sudo journalctl -u fail2ban
# 또는
sudo cat /var/log/fail2ban.log
(주로 ERROR Failed during configuration: Have not found a [파일 이름/경로] 형태로 나타남)
jail.local 검토 및 수정가장 흔한 원인은 jail.local 파일에 존재하지 않는 로그 파일 경로(logpath)나 필터 이름(filter)이 지정된 것입니다.
jail.local 파일을 다시 열어 모든 logpath 경로에 오타가 없는지, 그리고 해당 로그 파일이 실제로 서버에 존재하는지 확인합니다.enabled = false로 임시 비활성화 후 서비스를 재시작하여 문제가 해결되는지 확인합니다.오류를 유발하는 설정 부분을 수정한 후, 서비스를 다시 시작합니다.
sudo systemctl restart fail2ban
sshd jail이 정상적으로 활성화되었는지 확인합니다.
sudo fail2ban-client status sshd
(결과에서 Currently banned: 0 등 정상 상태 확인)