RedHat Apache의 PAM 구성에 무엇이 빠졌나요?

RedHat Apache의 PAM 구성에 무엇이 빠졌나요?

웹 애플리케이션을 사용하는 사용자를 인증하기 위해 PAM이 호스팅 시스템의 "passwd" 및 "shadow" 파일을 사용하도록 하려고 합니다.

저는 RedHat 6을 사용하고 있으며 Apache는 2.2, Apache 모듈 mod_authnz_pam입니다.

Apache( ) httpd.conf의 PAM 구성은 다음과 같습니다.

<Location />
  AuthType Basic
  AuthName "basic_auth"
  AuthBasicProvider PAM
  AuthPAMService httpd
  Require valid-user
</Location>

httpd/etc/pam.d다음 구성으로 in이라는 파일을 만들었습니다 .

auth    required    pam_unix.so
account required    pam_unix.so
session required    pam_unix.so

SELinux가 활성화되었습니다. getenforce"시행"을 반환합니다. 나는 또한 다음을 실행했습니다.

setsebool -P allow_httpd_mod_auth_pam 1

따라서 해당 IP 주소에 액세스하려고 하면 사용자 자격 증명을 입력하라는 메시지가 표시됩니다. 하지만 시스템 자격 증명을 입력하면 다음 로그가 나타납니다.

unix_chkpwd[29856]: 확인이 통과되었습니다. 사용자를 알 수 없습니다.

unix_chkpwd[29856]: 사용자(사용자 이름) 비밀번호 확인에 실패했습니다.

localhost httpd: pam_unix(httpd:auth): 인증 실패 logname= uid=48 euid=48 tty= ruser= rhost=xxx.xx.xx.x user=username

내 사용자 이름은 확실히 passwd 및 Shadow 파일에 존재하지만 PAM에서는 그것이 존재하지 않는다고 말합니다.

내가 무엇을 놓치고 있나요?

답변1

/etc/pam.d/httpd이와 같거나 비슷한 설정입니다.

#%PAM-1.0
auth       include    system-auth
account    required   pam_nologin.so
account    include    system-auth
password   include    system-auth
session    optional   pam_keyinit force revoke
session    include    system-auth
session    required   pam_loginuid.so

아이디어는 로그인을 인증하는 대신 pam 스택이 다른 파일을 보도록 하는 것입니다. 일반적으로 pam , pam 및 pam system-auth과 같은 다른 많은 pam 서비스에서 호출됩니다 .loginsusudo

관련 정보