리눅스 서버를 인터넷에 열어두면, 하루에도 수백 번의 SSH 로그인 시도가 발생할 수 있습니다.
비밀번호 기반 로그인이라면 특히나 위험하죠. 이럴 때 사용할 수 있는 도구가 바로 Fail2ban입니다.
Fail2ban은 로그 파일을 감시하고, 반복적으로 로그인에 실패한 IP를 자동으로 차단해주는 보안 도구입니다.
1. Fail2ban 설치하기
Ubuntu / Debian 계열
sudo apt update
sudo apt install fail2ban
CentOS / RHEL 계열
sudo dnf install epel-release
sudo dnf install fail2ban
2. Fail2ban 서비스 시작 및 자동 실행 설정
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
설치 후 fail2ban 서비스가 정상적으로 작동하는지 확인해봅니다:
sudo systemctl status fail2ban
3. SSH 보호 설정하기
- 기본 설정 복사
설정을 커스터마이징하기 위해 기본 파일을 복사해서 사용합니다.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- jail.local 파일 열기
sudo nano /etc/fail2ban/jail.local
- [sshd] 섹션 찾기 또는 추가하기
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
maxretry = 5
bantime = 600
findtime = 600
enabled
: 이 jail을 활성화할지 여부port
: 보호할 포트 (기본 ssh는 22번)maxretry
: 차단되기 전 허용할 실패 횟수bantime
: 차단 시간 (초 단위, 위 예시는 10분)findtime
: 위 횟수가 누적되는 시간 (초 단위)
4. Fail2ban 재시작 및 상태 확인
설정이 완료되었으면 Fail2ban을 다시 시작합니다.
sudo systemctl restart fail2ban
SSH 관련 jail이 잘 작동하는지 확인합니다:
sudo fail2ban-client status sshd
예시 출력:
Status for the jail: sshd
|- Filter
| |- Currently failed: 2
| |- Total failed: 5
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 1
|- Total banned: 3
`- Banned IP list: 192.168.0.20
5. 해제 및 차단 IP 수동 관리
- 특정 IP 해제하기
sudo fail2ban-client set sshd unbanip 192.168.0.20
- 즉시 차단하기
sudo fail2ban-client set sshd banip 192.168.0.30
자동 차단으로 SSH 보안을 강화하세요
Fail2ban은 설치만 해도 기본적인 SSH 보호 효과를 제공합니다.
특히 비밀번호 인증을 사용하는 경우엔 꼭 설정해두는 것이 좋습니다.
단순하면서도 강력한 도구인 만큼, 너무 민감하게 설정하면 일반 사용자까지 차단될 수 있으니,maxretry
나 bantime
값을 적절히 조정해 사용하는 것이 좋습니다.
'개발 > 리눅스' 카테고리의 다른 글
[Linux] 리눅스 백업 전략 및 추천 도구 소개(rsync 등) (0) | 2025.07.05 |
---|---|
[Linux] SELinux 개념과 기본 설정법 (1) | 2025.07.04 |
[Linux] 리눅스에서 비밀번호 정책 설정하기 (1) | 2025.07.02 |
[Linux] /etc/passwd, /etc/shadow 파일 이해하기 (0) | 2025.07.01 |
[Linux] ssh-keygen으로 SSH 키 인증 로그인 설정 (0) | 2025.06.30 |