어쩌면 정확한 질문은 암호를 허용하지 않도록 pam을 구성하는 방법입니까?
옳은. 설정 UsePAM no
이 일반적으로 나쁜 조언 이라는 사실을 이미 우연히 발견했습니다 . PAM 기반 인증의 모든 형태를 방지 할뿐만 아니라 비활성화 account
및 session
모듈 도 가능합니다 . 액세스 제어 및 세션 구성이 좋습니다.
먼저 요구 사항 목록을 작성해 보겠습니다.
- 를 통한 OTP
pam_google_authenticator.so
. 이 필요 UsePAM yes
하고 ChallengeResponseAuthentication yes
. 결국 그들에게 자격 증명을 요구하고 있습니다!
- PAM을 통한 다른 형태의 비밀번호 인증은 없습니다. 이는 로그인을
auth
통해 암호를 전송할 수있는 모든 모듈을 비활성화하는 것을 의미 keyboard-interactive
합니다. (OTP를 사용하도록 설정해야합니다)
- 키 기반 인증.
publickey
인증이 필요하며 gssapi-with-mic
Kerberos를 구성한 경우 일 수 있습니다.
일반적으로 키를 사용한 인증은 PAM 기반 인증을 완전히 건너 뜁니다. 이로 인해 이전 버전의 openssh를 사용하여 트랙에서 우리를 막을 수 있었지만 Debian 8 (jessie)은 AuthenticationMethods
지시문을 지원합니다 . 이를 통해 여러 가지 인증 방법이 필요하지만 SSHv2를 구현하는 클라이언트에서만 작동합니다.
sshd 구성
아래는 내가 제안하는 라인입니다 /etc/ssh/sshd_config
. sshd
무언가를 깰 경우를 대비 하여이 시스템에 액세스 할 수있는 방법이 있는지 확인하십시오 !
# Require local root only
PermitRootLogin no
# Needed for OTP logins
ChallengeResponseAuthentication yes
UsePAM yes
# Not needed for OTP logins
PasswordAuthentication no
# Change to to "yes" if you need Kerberos. If you're unsure, this is a very safe "no".
GSSAPIAuthentication no
# Require an OTP be provided with key based logins
AuthenticationMethods publickey,keyboard-interactive
# Use this instead for Kerberos+pubkey, both with OTP
#
#AuthenticationMethods gssapi-with-mic,keyboard-interactive publickey,keyboard-interactive
sshd
이러한 변경이 완료되면 다시로드하는 것을 잊지 마십시오 .
PAM 구성
여전히 PAM을 구성해야합니다. 질문에 따라 데비안 8을 새로 설치한다고 가정합니다.
- 코멘트
@include common-auth
에서 /etc/pam.d/sshd
.
- 로
/etc/pam.d/sshd
시작하는 줄이 없는지 검토 하고 확인하십시오 auth
. 새로 설치 한 경우에는 안되지만 안전한 것이 가장 좋습니다.
- 에 대한
auth
항목을 추가하십시오 pam_google_authenticator.so
.
로컬 비밀번호는 여전히 작동합니다.
로컬 콘솔을 통한 로그인에 영향을 줄 변경 사항을 변경하지 않았거나 사용자가 비밀번호를 사용하여 권한을 업그레이드하는 것을 막지 sudo.
않았습니다. 더 이상 진행하기로 결정한 경우, root는 항상 비밀번호를 통해 로컬로 로그인 할 수 있어야합니다. 그렇지 않으면 우발적으로 시스템에서 빠져 나올 위험이 있습니다.