fail2ban 으로 SSH 서버 보안 강화 가이드
Source
Evernote/Inbox/fail2ban 으로 SSH 서버 강화하기.md
Summary
이 문서는 공용 네트워크에 노출된 SSH 서버의 무작위 로그인 시도(브루트 포스)를 방어하기 위해 fail2ban 을 설치 및 설정하는 방법을 설명합니다. CentOS(RHEL) 와 Ubuntu 환경에서의 설치 방법, jail.local 을 통한 커스터마이징 (ignoreip, bantime, findtime, maxretry), 메일 알림 설정 (action_mwl), 그리고 sshd jail 활성화와 포트 설정을 다룹니다. 설정 후 firewall-cmd 와 ipset, fail2ban-client 명령어를 통해 차단 규칙과 상태를 확인하는 방법도 포함합니다.
Key Points
- fail2ban 은 SSH 로그인 실패 시 해당 IP 를 커널 방화벽 (ipset) 에 등록하여 차단하는 도구입니다.
- 설치: CentOS 는 EPEL 저장소 추가 후 yum 설치, Ubuntu 는 apt install 로 설치합니다.
- 설정 파일: 기본 설정은 jail.conf 이나, 수정은 jail.local 에서 수행해야 합니다.
- 핵심 파라미터: ignoreip(차단 제외 IP), bantime(차단 시간), findtime(모니터링 시간), maxretry(허용 실패 횟수) 를 적절히 설정합니다.
- 알림 설정: action 을 %(action_mwl)s 로 설정하면 차단 시 whois 정보와 로그를 첨부한 메일을 발송합니다.
- sshd 적용: [sshd] 섹션에서 enabled=true 로 설정하고, 사용 중인 SSH 포트 (기본 22 또는 변경 포트) 를 명시합니다.
- 검증: firewall-cmd —direct —get-all-rules 로 방화벽 규칙, ipset —list 로 차단 IP 목록, fail2ban-client status sshd 로 상태를 확인합니다.