sshd 데몬을 실행할 때 사용할 수 있는 옵션 중 다음과 같은 옵션들은 암호 설정 및 실행 방식 조정에 관련되어 있으며, 특히 보안 정책 준수나 테스트 환경에서 유용하게 사용됩니다.
✅ -D 옵션
- 설명: sshd를 **포그라운드(foreground)**에서 실행함.
- 용도:
- 디버깅 시 로그를 콘솔로 직접 확인할 수 있음.
- systemd나 docker, chroot 환경 등에서 유용.
- 예시:
-
bash/usr/sbin/sshd -D
✅ -oCiphers
- 설명: 사용할 **대칭키 암호화 알고리즘(예: AES, ChaCha20 등)**을 지정.
- 예시:
-
bash-oCiphers=aes256-ctr,chacha20-poly1305@openssh.com
✅ -oMACs
- 설명: 데이터 무결성 검증용 MAC (Message Authentication Code) 알고리즘 목록 지정.
- 예시:
-
bash-oMACs=hmac-sha2-256,hmac-sha2-512
✅ -oGSSAPIKexAlgorithms
- 설명: GSSAPI (Kerberos 등)를 사용하는 경우의 키 교환 알고리즘 목록 지정.
- 보통 GSSAPI를 사용하는 기업 환경에서만 사용됨.
- 예시:
-
bash-oGSSAPIKexAlgorithms=gss-gex-sha1-,gss-group1-sha1-
✅ -oKexAlgorithms
- 설명: SSH 연결 시 사용할 키 교환(Kex, Key Exchange) 알고리즘 목록 지정.
- 보안에 민감한 환경에서 오래된 알고리즘 차단 시 사용.
- 예시:
-
bash-oKexAlgorithms=curve25519-sha256,ecdh-sha2-nistp521
✅ -oHostKeyAlgorithms
- 설명: SSH 서버가 사용하는 호스트 키 알고리즘 목록 지정 (클라이언트가 검증함).
- 예시:
-
bash-oHostKeyAlgorithms=ssh-ed25519,ecdsa-sha2-nistp256
✅ -oPubkeyAcceptedKeyTypes
- 설명: 클라이언트가 인증할 때 사용할 수 있는 공개키 타입을 제한.
- 보안상 약한 공개키(예: DSA)를 막기 위해 사용.
- 예시:
-
bash-oPubkeyAcceptedKeyTypes=ssh-ed25519,ecdsa-sha2-nistp256
✅ -oCASignatureAlgorithms
- 설명: CA가 서명한 인증서의 서명 알고리즘을 제한.
- SSH CA(Certificate Authority)를 사용하는 환경에서 허용할 서명 알고리즘 지정.
- 예시:
-
bash-oCASignatureAlgorithms=ssh-ed25519,ecdsa-sha2-nistp384
-D, -oCiphers, -oMACs, -oKexAlgorithms 등 옵션을 사용하고 있다고 해서 “root 계정의 원격터미널 접속 차단 설정이 적용되었다”고 판단할 수 없습니다. → 즉, 불합격(취약) 판단입니다.
📌 왜냐하면?
- -D, -oCiphers, -oMACs, -oKexAlgorithms 등의 옵션은 SSH 보안 설정(암호화, 키교환, 무결성 검증 등)에 관한 설정이지, root 계정의 원격 접속 허용 여부와는 무관합니다.
- root 계정의 SSH 접속 차단 여부는 반드시 /etc/ssh/sshd_config 파일의 아래 항목으로 점검해야 합니다:또는이 항목이 없거나 yes 또는 생략(기본값: 일부 시스템에서는 yes) 상태라면, root 계정 원격 접속이 허용된 상태이므로 취약입니다.
-
bashPermitRootLogin prohibit-password
-
bashPermitRootLogin no
✅ 점검 기준 요약:
점검 항목 | 설명 | 상태 |
22번 포트 사용 여부 | Well-known 포트 사용 | 문제 아님 (권장되지 않지만 취약 조건 아님) |
sshd 실행 시 -o 관련 보안 옵션 | 암호화/알고리즘 강화를 위한 설정 | 긍정적이지만 root 차단 여부와 무관 |
/etc/ssh/sshd_config의 PermitRootLogin 설정 | no 또는 prohibit-password일 때만 양호 | 핵심 점검 항목 |
SSH 서비스 실행 여부 | 실행 중 (sshd 활성화) | 문제 아님 |
✅ 조치 권장:
/etc/ssh/sshd_config 파일을 열고 다음 항목이 명시적으로 존재하는지 확인하세요:
bash
PermitRootLogin no
변경 후에는 SSH 서비스를 반드시 재시작해야 반영됩니다:
bash
sudo systemctl restart sshd
🔐 보안 참고:
암호 알고리즘을 강화하는 -o 옵션 사용은 보안 수준을 높이는 측면에서 양호하지만, root 로그인 제한과는 별개의 이슈입니다. 두 가지는 각각 독립적으로 점검해야 합니다.