로그인이 유효하더라도 Pam_unix sshd 인증이 실패합니까?

로그인이 유효하더라도 Pam_unix sshd 인증이 실패합니까?

Active Directory 인증을 제공하기 위해 winbind 및 Samba로 구성된 서버가 있습니다. Active Directory 통합은 제대로 작동하지만 인증할 때마다 다음 오류가 표시됩니다.

실수

확인하다:

May 11 00:25:29 SERVER sshd[28119]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=x.x.x.x  user=USERNAME

스도:

May 11 01:33:14 SERVER sudo: pam_unix(sudo:auth): authentication failure; logname=USER_NAME uid=2005125 euid=0 tty=/dev/pts/2 ruser=USER_NAME rhost=  user=USER_NAME

구성

/etc/samba/smb.conf:

[global]
        workgroup = WORKGROUP
        realm = DOMAIN NAME
        security = ADS
        winbind enum users = Yes
        winbind enum groups = Yes
        winbind use default domain = No
        winbind separator = +
        kerberos method = secrets and keytab
        idmap config * : backend = autorid
        idmap config * : range = 1000000-19999999
        idmap config * : rangesize = 1000000
        template shell = /bin/bash
        netbios name = SERVERNAME

/etc/pam.d/SystemAuthentication

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        required      pam_faildelay.so delay=2000000
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        sufficient    pam_winbind.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     [default=bad success=ok user_unknown=ignore] pam_winbind.so
account     required      pam_permit.so

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    sufficient    pam_winbind.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     optional      pam_mkhomedir.so umask=0077
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_winbind.so

/etc/pam.d/sshd

#%PAM-1.0
auth       required     pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
# Used with polkit to reauthorize users in remote sessions
-auth      optional     pam_reauthorize.so prepare
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin
# Used with polkit to reauthorize users in remote sessions
-session   optional     pam_reauthorize.so prepare

sshd_config:

HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
AuthorizedKeysFile .ssh/authorized_keys
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
# override default of no subsystems
Subsystem sftp  /usr/libexec/openssh/sftp-server
UsePrivilegeSeparation yes
AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f
AuthorizedKeysCommandUser ec2-instance-connect
Banner /etc/motd
SyslogFacility AUTHPRIV
AuthorizedKeysFile .ssh/authorized_keys
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no

이 로그를 어떻게 수정할 수 있나요?

답변1

저는 PAM 전문가는 아니지만 pam_unix인증 모듈(로컬 사용자 데이터베이스: /etc/password/etc/shadow) pam_winbind이 모듈(Samba/Active Directory)보다 먼저 참조되기 때문에 이런 일이 발생할 수 있습니다. 나는 auth귀하의 회선을 보고 그것이 ( 참조) 에 연결되어 있다고 /etc/pam.d/system-auth가정합니다 .system-authpassword-auth/etc/pam.d/sshd

AD 사용자로 로그인하면 pam_unix사용자가 로컬에서 발견되지 않으므로 PAM은 모듈에 대한 인증 실패를 기록합니다. 로 pam_unix표시되어 있기 때문에 sufficient로컬에서 사용자를 찾지 못하는 것은 완전한 실패로 간주되지 않으므로 PAM은 다음 모듈로 진행하여 결국 pam_winbindAD 사용자를 성공적으로 인증하기 위해 도착합니다.

로그 메시지만 표시 하지 않는 방법은 모르겠지만 이론상으로는 모듈 줄의 순서를 변경 auth하여 .pam_unixpam_winbind

물론 PAM 구성은 보안에 매우 민감하므로 변경 사항을 신중하게 고려 및 조사하고 먼저 비프로덕션 시스템에서 철저하게 테스트해야 합니다. 예를 들어, Samba 서비스를 사용할 수 없고 로컬 사용자로 로그인해야 하는 경우 어떻게 됩니까? pam_succeed_if.so uid >= 1000수표는 어떻게 삽입하나요 ? 등.

관련 정보