
리눅스 서버를 운영하다 보면 SSH 포트 22번으로 자동 로그인 시도를 하는 봇 공격이 끊임없이 발생한다.
특히 root 계정은 공격 대상이 되기 쉬워, 반드시 직접 로그인을 막고 Fail2ban 같은 도구로 차단 정책을 설정해야 한다.
1. SSH 포트 변경
SSH 기본 포트 22번은 전 세계적으로 알려져 있으므로 변경이 필수다.
vi /etc/ssh/sshd_config
#Port 22
Port 7789
PermitRootLogin no
systemctl restart sshd
2. Fail2ban 설치 및 설정
Fail2ban은 로그인 실패 기록을 감시해, 일정 횟수 이상 실패한 IP를 자동으로 차단한다.
설치 후 설정 파일을 열어 수정한다.
vi /etc/fail2ban/jail.local
[sshd] enabled = true port = 7789 maxretry = 5 findtime = 15m bantime = 30m ignoreip = 127.0.0.1/8 112.157.222.170
enabled: sshd 보호 활성화
port: 사용하는 SSH 포트 지정
maxretry: 로그인 실패 허용 횟수
findtime: 실패 횟수를 계산하는 시간
bantime: 차단 유지 시간
ignoreip: 차단 제외 IP
systemctl restart fail2ban
fail2ban-client status sshd
3. 차단 해제 방법
본인 IP가 차단되었을 때는 다음 명령으로 해제할 수 있다.
fail2ban-client set sshd unbanip 111.156.221.171
4. 보안 점검 확인
포트와 접근 제한이 적용되었는지 확인한다.
ss -tlnp | grep sshd
5. 요약
SSH 포트를 기본값 22에서 다른 번호로 변경
root 직접 로그인 금지 설정
Fail2ban으로 로그인 실패 자동 차단
본인 IP는 ignoreip로 제외
차단 해제는 unbanip 명령으로 해결
보안 설정은 한 번만 해두면 오랫동안 서버를 안전하게 지킬 수 있다.
fail2ban과 포트 변경만으로도 대부분의 무차별 로그인 공격을 효과적으로 차단할 수 있다.