다른 의견

다른 의견

에서 /etc/ssh/sshd_configPAM은 Debian 10에서 기본적으로 활성화됩니다.

UsePAM yes

비밀번호나 Kerberos 로그인을 허용하지 않고 SSH 키 인증만 허용하는 상황에서 PAMsshd에서 이를 활성화하면 어떤 이점이 있습니까 ? 아니면 UsePAM"아니요"로 설정하면 프로세스가 단순화되고 잠재적으로 더 안전해 집니까?

SSHD에서 PAM을 비활성화하면 실제적인 영향은 무엇입니까? 차이점을 알 수 있을까요?

답변1

매뉴얼 페이지(및 다른 답변)가 주장하는 것과는 반대로 UsePAM yes,허용하다루트가 아닌 사용자로 sshd를 실행하지만 루트가 아닌 사용자로 sshd를 실행하여 실행할 수도 있습니다.비밀번호 인증(동일한 사용자가 실행하는 경우) setuid /sbin/unix_chkpwd프로그램을 통해.

후자는 전혀 예상치 못한 일이다.

user$ /usr/sbin/sshd -f /dev/null -p 9009 -h ~/.ssh/id_rsa
user$ /usr/sbin/sshd -f /dev/null -o UsePAM=yes -p 7007 -h ~/.ssh/id_rsa

user$ ssh -p 7007 localhost
The authenticity of host '[localhost]:7007 ([::1]:7007)' can't be established.
...
Password: <correct password>
Linux deb11 5.10.0-8-amd64 #1 SMP Debian 5.10.46-4 (2021-08-03) x86_64
...
user$  <I'm logged in!>
user$ ^D
Connection to localhost closed.


user$ ssh -p 9009 localhost
The authenticity of host '[localhost]:9009 ([::1]:9009)' can't be established.
...
user@localhost's password:
Permission denied, please try again.
user@localhost's password:
Permission denied, please try again.
user@localhost's password:
user@localhost: Permission denied (publickey,password,keyboard-interactive).
user$

답변2

이것맨페이지해석은 UsePAM인증뿐만 아니라 세션 처리도 제공합니다. 많이있다PAM 모듈자동 키링 잠금 해제, 파일 시스템 마운트, 개인 데이터 암호 해독, 선택적으로 로그인 허용 등 다양한 기능을 제공합니다.

예전에는 UsePAM"yes"로 설정하면 sshd에 루트 권한이 필요했습니다. 사용 사례에 따라 루트가 아닌 사용자로 실행하면 보안이나 구성에 도움이 될 수 있습니다.

어떤 상황에서는 이것이 유용할 것이라고 상상할 수 있습니다. 예를 들어 git은 ssh를 전송 프로토콜로 사용합니다. Git 서버를 설정하고 싶을 수도 있지만 PAM을 통해 Git 사용자를 관리하고 싶지는 않습니다.

답변3

이를 위해 OpenSSH의 소스를 조사했습니다.

auth-pam.c378-382행에서 찾은 의견에 따르면 UsePAM을 사용하면 간접적으로든 직접적으로든 환경이 유출될 수 있는 것 같습니다(여기 링크):

         /*
         * XXX this possibly leaks env because it is not documented
         * what pam_putenv() does with it. Does it copy it? Does it
         * take ownweship? We don't know, so it's safest just to leak.
         */

또한 동일한 소스 코드에서 다음과 같은 흥미로운 내용을 발견했습니다.

/*
     * Some silly PAM modules (e.g. pam_time) require a TTY to operate.
     * sshd doesn't set the tty until too late in the auth process and
     * may not even set one (for tty-less connections)
     */

또한 1351번 라인에서 PAM을 통해 비밀번호 인증이 시도되고 이 코드에는 백타이밍 공격 완화가 사용되는 것으로 보입니다.

if 절에 정의되어 있으므로 이 auth-pam.c코드는 실행되지 않으므로 보안 설정이 허용하는 경우 no로 설정하겠습니다.

그래서 나는 그것을 "아니오"로 설정하고 그것 때문에 잠을 못 이루는 것을 멈추는 것이 낫다고 생각합니다.

다른 의견

이런 견해도 있습니다.https://askubuntu.com/questions/1259848/

설정이 제대로 설정되지 않으면 SSH 공개 키 인증이 실패할 수 있습니다. https://serverfault.com/questions/475880

또한 이 섹션 끝에 있는 결론도 읽어 보시기 바랍니다 Configuring accounts.

https://arlimus.github.io/articles/usepam/

관련 정보