Infra2026년 4월 3일3분 읽기

Linux SSH 보안 하드닝 완전 가이드 — 2026년 최신 권장 설정

YS
김영삼
조회 427

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

아직 댓글이 없습니다.
Ctrl+Enter로 등록