대상 OS: Ubuntu Server 24.04 LTS
SSH 포트를 22에서 다른 포트로 바꾸면 무차별 스캔 노이즈는 줄 수 있지만, 보안의 핵심은 아닙니다. 공격자는 포트 스캔을 하고, 취약한 인증/권한 구성이 남아 있으면 결국 들어옵니다. 포트 변경은 ‘옵션’이고, 아래 항목들이 ‘필수’입니다.
포트 변경 전에 반드시 먼저 할 것(우선순위 순)
-
1) 키 기반 인증 + 비밀번호 로그인 차단
가장 효과가 큰 조치입니다. 비밀번호 기반은 크리덴셜 스터핑/브루트포스에 지속적으로 노출됩니다.
# sshd 설정 편집 sudoedit /etc/ssh/sshd_config # 권장 예시(환경에 맞게) # PasswordAuthentication no # PubkeyAuthentication yes # KbdInteractiveAuthentication no # ChallengeResponseAuthentication no # 설정 문법 검사 sudo sshd -t # 적용 sudo systemctl reload ssh -
2) root 직접 로그인 금지 + 최소 권한 운영
root 로그인은 감사/추적이 어려워지고, 계정 탈취 시 피해가 커집니다. 일반 사용자로 접속 후 sudo로 승격하는 구조가 기본입니다.
# sshd_config 권장 # PermitRootLogin no sudo sshd -t sudo systemctl reload ssh # sudo 권한은 필요한 사용자만 getent group sudo sudo -l -
3) 접속 허용 대상을 줄이기(AllowUsers/AllowGroups)
운영에 필요한 계정만 SSH로 들어오게 하면, 계정이 많아도 공격 표면이 줄어듭니다.
sudoedit /etc/ssh/sshd_config # 예시: 특정 계정만 허용 # AllowUsers deploy admin # 또는 특정 그룹만 허용 # AllowGroups sshlogin # 그룹 운영 예시 sudo groupadd -f sshlogin sudo usermod -aG sshlogin deploy sudo usermod -aG sshlogin admin sudo sshd -t sudo systemctl reload ssh -
4) 방화벽(UFW)로 “필요한 IP/대역만” 열기
가능하다면 SSH는 전 세계에 열지 말고, 사내 고정 IP/VPN 대역 등으로 제한하세요. 이게 포트 변경보다 훨씬 강합니다.
# UFW 활성화 상태 확인 sudo ufw status verbose # 예: 회사 고정 IP에서만 22/tcp 허용 sudo ufw allow from 203.0.113.10 to any port 22 proto tcp # 예: VPN 대역만 허용 sudo ufw allow from 10.8.0.0/24 to any port 22 proto tcp # 그 외는 차단(기본 정책) sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw status numbered -
5) Fail2ban(또는 유사 대책)으로 무차별 시도 비용 올리기
비밀번호 로그인을 껐더라도, 스캔/시도는 계속 옵니다. fail2ban은 로그 기반으로 공격 IP를 일정 시간 차단해 노이즈/자원 소모를 줄입니다.
sudo apt update sudo apt install -y fail2ban # 기본 jail 설정(SSH만 최소로) sudo tee /etc/fail2ban/jail.d/sshd.local >/dev/null