$ sudo grep -v -E '^\s*(#|$)' /etc/openldap/ldap.conf
SASL_NOCANON on
uri ldap://ldap.local.{company}.com
base dc={company},dc=com
$ sudo grep -v -E '^\s*(#|$)' /etc/pam.d/sshd
auth sufficient pam_ldap.so
auth sufficient pam_unix.so
account sufficient pam_ldap.so
account sufficient pam_unix.so
auth required pam_listfile.so item=user sense=allow file=/etc/ldap.allowedusers
auth substack password-auth
auth include postlogin
account required pam_sepermit.so
account required pam_nologin.so
account include password-auth
password include password-auth
session required pam_selinux.so close
session required pam_loginuid.so
session required pam_selinux.so open env_params
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session optional pam_motd.so
session include password-auth
session include postlogin
$
$ sudo cat /etc/ldap.allowedusers
ldapuser1
$ sudo grep -v -E '^\s*(#|$)' /etc/nsswitch.conf
passwd: files ldap
group: files ldap
netgroup: sss files
automount: sss files
services: sss files
shadow: files sss
hosts: files dns myhostname
aliases: files
ethers: files
gshadow: files
networks: files dns
protocols: files
publickey: files
rpc: files
$ sudo grep -v -E '^\s*(#|$)' /etc/nslcd.conf
uid nslcd
gid ldap
uri ldap://ldap.local.{company}.com/
base dc={company},dc=com
$
위의 구성입니다. LDAP 사용자와 VM의 일반 내부 사용자를 사용하여 위의 Oracle 8 Linux VM에 SSH로 연결할 수 있습니다.
특정 사용자 집합으로만 가상 머신 액세스를 제한하고 싶나요? 이를 위해 /etc/pam.d/sshd 파일에 " auth require pam_listfile.so item=user sense=allow file=/etc/ldap.allowedusers "를 추가했고 /etc/ldap.allowedusers ldapuser1에서만 허용했습니다. 직장에서는 목록에 없는 LDAP 사용자(예:ldapuser2)를 사용하여 계속 액세스할 수 있습니다.
내가 여기서 무슨 실수를 했는지...
$ sudo cat /etc/ldap.allowedusers에서 사용자 추가/제거 및 서버 다시 시작 sudo systemctl restart sshd가 여전히 작동하지 않았습니다. 특정 LDAP 사용자에게만 액세스를 제한할 수 있는 방법은 없습니다. 내부 사용자는 sudo 업무를 수행하기 위해 계속해서 서버에 액세스한다는 점에 유의하세요.