SSH 서버 보안 강화 추가 설정이 필요하다고 느낀 건 /var/log/auth.log를 처음 열어봤을 때 Failed password for root from 1.2.3.4가 분당 수십 줄씩 쌓여 있었을 때입니다. 포트 22에 대한 자동화된 무차별 대입 공격이 끊임없이 들어오고 있었습니다. SSH 키 인증으로 전환하고 몇 가지 설정을 강화한 후 공격 시도가 99% 줄었습니다.
# 최근 실패 로그인 확인
sudo grep "Failed password" /var/log/auth.log | tail -20
# 공격 IP 통계
sudo grep "Failed password" /var/log/auth.log | \
awk '{print $11}' | sort | uniq -c | sort -rn | head -10
# 오늘 실패 횟수
sudo grep "Failed password" /var/log/auth.log | \
grep "$(date +'%b %e')" | wc -l
sudo nano /etc/ssh/sshd_config
# root 직접 로그인 차단 (sudo 사용)
PermitRootLogin no
# 비밀번호 인증 차단 (SSH 키만 허용)
PasswordAuthentication no
ChallengeResponseAuthentication no
# 빈 비밀번호 허용 안 함
PermitEmptyPasswords no
# 로그인 시도 제한
MaxAuthTries 3
# 동시 미완료 연결 제한
MaxStartups 10:30:60
# 로그인 타임아웃 줄이기 (기본 120초)
LoginGraceTime 30
# 특정 사용자만 SSH 허용 (필요 시)
AllowUsers webadmin deploy
# X11 포워딩 비활성화
X11Forwarding no
# 설정 테스트 후 재시작
sudo sshd -t
sudo systemctl restart sshd
# 서버에 SSH 접속 가능한 사용자를 명시적으로 제한
# sshd_config에 추가:
# AllowUsers webadmin
# 그룹 기반 제한
# AllowGroups sshusers
# SSH 전용 그룹 생성 후 사용자 추가
sudo groupadd sshusers
sudo usermod -aG sshusers webadmin
SSH 키 인증 + PasswordAuthentication no 조합이 가장 강력합니다. 이 두 가지만 설정해도 자동화 brute force 공격은 사실상 무력화됩니다. 키 없이는 어떤 비밀번호도 시도할 수 없기 때문입니다.
AI가 초안을 생성하고, 의료기관 인프라 운영자가 1차 데이터 기반으로 최종 검수·승인합니다.
작성·검수: WavePix 운영자 (의료기관 3곳 인프라 전담)