SSH 보안의 중요성
서버 관리의 시작은 SSH입니다. 기본 설정 그대로 사용하면 무차별 대입 공격에 노출됩니다. 이 가이드에서는 2026년 기준 권장 SSH 보안 설정을 정리합니다.
필수 설정
1. sshd_config 핵심 설정
# /etc/ssh/sshd_config
Port 2222 # 기본 포트 변경
PermitRootLogin no # root 로그인 차단
PasswordAuthentication no # 비밀번호 인증 비활성화
PubkeyAuthentication yes # 공개키 인증만 허용
MaxAuthTries 3 # 인증 시도 횟수 제한
ClientAliveInterval 300 # 5분 유휴 시 연결 종료
ClientAliveCountMax 2
AllowUsers deploy admin # 허용 사용자 명시
X11Forwarding no # X11 포워딩 비활성화
2. Ed25519 키 생성
ssh-keygen -t ed25519 -C "admin@myserver" -f ~/.ssh/id_ed25519
3. Fail2ban 설정
# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600
findtime = 600
추가 권장사항
- UFW로 SSH 포트만 허용:
ufw allow 2222/tcp - 2FA 설정 (Google Authenticator PAM 모듈)
- SSH 접속 로그 모니터링:
journalctl -u sshd -f - 포트 노킹(Port Knocking) 고려
보안 점검 스크립트
#!/bin/bash
echo "=== SSH 보안 점검 ==="
grep -q "^PermitRootLogin no" /etc/ssh/sshd_config && echo "✅ Root 로그인 차단" || echo "❌ Root 로그인 허용됨"
grep -q "^PasswordAuthentication no" /etc/ssh/sshd_config && echo "✅ 비밀번호 인증 비활성화" || echo "❌ 비밀번호 인증 활성화됨"
systemctl is-active fail2ban &>/dev/null && echo "✅ Fail2ban 실행 중" || echo "❌ Fail2ban 미실행"
댓글 0