LDAP Client 설정중 LDAP 인증 및 계정 관리를 위한 구성 설정이 필요하고, 이를 위해 authconfig를 많이 사용한다. 이는 시스템의 인증 설정을 관리하는 도구로, PAM과 NSS(Name Service Switch) 등의 설정을 한 곳에서 관리할 수 있게 해준다.
LDAP Client를 구성하던 중 참고한 여러 포스팅이나 문서에서도 대부분 authconfig를 사용했다.
하지만, authconfig는 CentOS8부터 deprecate되었고, authselect 사용을 지향한다고 한다.
Amazon Linux 2023의 경우 CentOS Stream 9기반이며, 공식적으로 authconfig를 지원하지 않는다. (참고 : https://github.com/amazonlinux/amazon-linux-2023/blob/main/Release-Notes-Amazon-Linux-2023.0.2023.0322.0.md)
authconfig 적용 후에 여전히 LDAP Server의 계정이 Client에서 조회가 안 되었기 때문에 조금 서치 해보고 authselect를 사용해야 한다는 사실은 금방 알 수 있었다.
그런데,, 다들 authselect를 써야한다고 알려만 줄 뿐 자세한 사용법은 찾기가 어려웠다. 내가 적용하려는 authconfig 명령어가 authselect를 사용했을 때 어떤식으로 바뀌어야 하는지 알아내는 데에 시간을 좀 많이 뺐다ㅜ.
기존 명령어 :
authconfig --enableldap --enableldapauth --ldapserver=MASTERIP,SLAVEIP --ldapbasedn="dc=test,dc=com" --update
1. authconfig가 바꿔주는 부분들을 수동으로 바꾼다.
2. authselect를 사용한다.
아래 파일들에서 pam_unix를 찾아 전부 pam_ldap으로 변경
(pam_unix는 시스템의 기본 인증 모듈로 /etc/passwd와 /etc/shadow 파일을 이용해 사용자를 인증하고, pam_ldap은 LDAP 디렉토리를 이용해 사용자를 인증한다.)
vi 에디터에서 -> :%s/pam_unix/pam_ldap/g
# authselect 설치
$ yum install authselect
# authselect를 이용해 sssd(System Security Services Daemon) 기반의 새로운 프로필 ldap을 생성
$ authselect create-profile ldap -b sssd --symlink-meta --symlink-pam
# 인증 처리 모듈을 SSSD(pam_sss) -> LDAP(pam_ldap) 변경
$ sed -i "s/[pam_sss.so/pam_ldap.so/g](http://pam_sss.so/pam_ldap.so/g)" /etc/authselect/custom/ldap/system-auth
$ sed -i "s/[pam_sss.so/pam_ldap.so/g](http://pam_sss.so/pam_ldap.so/g)" /etc/authselect/custom/ldap/password-auth
$ sed -i "s/sss/ldap/g" /etc/authselect/custom/ldap/nsswitch.conf
# 이제 custom/ldap 프로필을 선택하게 함
$ authselect select custom/ldap
두 방법 모두 이후 /etc/nslcd.conf에 LDAP Server 정보 추가