웹사이트 검색

외부 인증을 연결하기 위해 LDAP 클라이언트를 구성하는 방법


LDAP(Lightweight Directory Access Protocol의 약자)는 업계 표준으로, 디렉토리 서비스에 액세스하기 위해 널리 사용되는 프로토콜 세트입니다.

간단히 말해서 디렉토리 서비스는 읽기 액세스에 최적화된 중앙 집중식 네트워크 기반 데이터베이스입니다. 이는 애플리케이션 간에 공유되어야 하거나 고도로 분산되어 있는 정보를 저장하고 이에 대한 액세스를 제공합니다.

디렉터리 서비스는 네트워크 전체에서 사용자, 시스템, 네트워크, 응용 프로그램 및 서비스에 대한 정보를 공유하도록 도와줌으로써 인트라넷 및 인터넷 응용 프로그램 개발에 중요한 역할을 합니다.

LDAP의 일반적인 사용 사례는 사용자 이름과 비밀번호의 중앙 집중식 저장소를 제공하는 것입니다. 이를 통해 다양한 애플리케이션(또는 서비스)이 LDAP 서버에 연결되어 사용자를 확인할 수 있습니다.

작동하는 LDAP 서버를 설정한 후 클라이언트에 연결하려면 라이브러리를 설치해야 합니다. 이 문서에서는 외부 인증 소스에 연결하도록 LDAP 클라이언트를 구성하는 방법을 보여줍니다.

LDAP 기반 인증을 위해 LDAP 서버를 설정하지 않은 경우 이미 작동 중인 LDAP 서버 환경이 있기를 바랍니다.

Ubuntu 및 CentOS에서 LDAP 클라이언트를 설치하고 구성하는 방법

클라이언트 시스템에서는 인증 메커니즘이 LDAP 서버와 올바르게 작동하도록 하기 위해 몇 가지 필수 패키지를 설치해야 합니다.

Ubuntu 16.04 및 18.04에서 LDAP 클라이언트 구성

먼저 다음 명령을 실행하여 필요한 패키지를 설치하여 시작하십시오.

sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd

설치하는 동안 LDAP 서버에 대한 세부정보를 묻는 메시지가 표시됩니다(환경에 따라 값 제공). 자동 설치되는 ldap-auth-config 패키지는 입력한 내용을 기반으로 대부분의 구성을 수행합니다.

그런 다음 LDAP 검색 기반의 이름을 입력하면 스크린샷에 표시된 대로 이 목적으로 해당 도메인 이름의 구성 요소를 사용할 수 있습니다.

또한 사용할 LDAP 버전을 선택하고 확인을 클릭하세요.

이제 pam을 사용하여 로컬 비밀번호를 변경하는 것처럼 작동하는 비밀번호 유틸리티를 만들 수 있도록 옵션을 구성하고 계속하려면 를 클릭하세요.

그런 다음 다음 옵션을 사용하여 LDAP 데이터베이스에 대한 로그인 요구 사항을 비활성화합니다.

또한 루트에 대한 LDAP 계정을 정의하고 확인을 클릭합니다.

그런 다음 ldap-auth-config가 루트용 LDAP 계정을 사용하여 LDAP 디렉토리에 로그인을 시도할 때 사용할 비밀번호를 입력합니다.

대화 상자의 결과는 /etc/ldap.conf 파일에 저장됩니다. 변경하려면 원하는 명령줄 편집기를 사용하여 이 파일을 열고 편집하세요.

다음으로 다음을 실행하여 NSS용 LDAP 프로필을 구성합니다.

sudo auth-client-config -t nss -p lac_ldap

그런 다음 PAM 구성을 업데이트하여 인증에 LDAP를 사용하도록 시스템을 구성합니다. 메뉴에서 LDAP 및 필요한 기타 인증 메커니즘을 선택하세요. 이제 LDAP 기반 자격 증명을 사용하여 로그인할 수 있습니다.

sudo pam-auth-update

사용자의 홈 디렉터리를 자동으로 생성하려면 일반 세션 PAM 파일에서 구성을 하나 더 수행해야 합니다.

sudo vim /etc/pam.d/common-session

이 줄을 추가하세요.

session required pam_mkhomedir.so skel=/etc/skel umask=077

변경 사항을 저장하고 파일을 닫습니다. 그런 다음 다음 명령을 사용하여 NCSD(네임 서비스 캐시 데몬) 서비스를 다시 시작합니다.

sudo systemctl restart nscd
sudo systemctl enable nscd

참고: 복제를 사용하는 경우 LDAP 클라이언트는 /etc/ldap.conf에 지정된 여러 서버를 참조해야 합니다. 다음 형식으로 모든 서버를 지정할 수 있습니다.

uri ldap://ldap1.example.com  ldap://ldap2.example.com

이는 요청 시간이 초과되고 제공자(ldap1.example.com)가 응답하지 않으면 소비자(ldap2 .example.com)에서 처리를 위해 연락을 시도합니다.

예를 들어 서버에서 특정 사용자에 대한 LDAP 항목을 확인하려면 getent 명령을 실행합니다.

getent passwd tecmint

위 명령이 /etc/passwd 파일에서 지정된 사용자의 세부 정보를 표시하는 경우 클라이언트 시스템이 이제 LDAP 서버로 인증하도록 구성되었으므로 LDAP 기반 자격 증명을 사용하여 로그인할 수 있어야 합니다. .

CentOS 7에서 LDAP 클라이언트 구성

필요한 패키지를 설치하려면 다음 명령을 실행하십시오. 이 섹션에서는 루트가 아닌 관리 사용자로 시스템을 작동하는 경우 sudo 명령을 사용하여 모든 명령을 실행합니다.

yum update && yum install openldap openldap-clients nss-pam-ldapd

그런 다음 클라이언트 시스템이 LDAP를 사용하여 인증할 수 있도록 설정합니다. 시스템 인증 리소스를 구성하기 위한 인터페이스인 authconfig 유틸리티를 사용할 수 있습니다.

다음 명령을 실행하고 example.com을 도메인으로 바꾸고 dc=example,dc=com을 LDAP 도메인 컨트롤러로 바꿉니다.

authconfig --enableldap --enableldapauth --ldapserver=ldap.example.com --ldapbasedn="dc=example,dc=com" --enablemkhomedir --update

위 명령에서 --enablemkhomedir 옵션은 존재하지 않는 경우 첫 번째 연결에서 로컬 사용자 홈 디렉토리를 생성합니다.

다음으로 서버의 특정 사용자(예: 사용자 tecmint)에 대한 LDAP 항목이 있는지 테스트합니다.

getent passwd tecmint

위 명령은 /etc/passwd 파일에서 지정된 사용자의 세부 정보를 표시해야 하며, 이는 클라이언트 시스템이 이제 LDAP 서버에 인증하도록 구성되었음을 의미합니다.

중요: SELinux가 시스템에 활성화되어 있는 경우 mkhomedir에 의해 자동으로 홈 디렉토리 생성을 허용하는 규칙을 추가해야 합니다.

자세한 내용은 OpenLDAP 소프트웨어 문서 카탈로그에서 해당 문서를 참조하세요.

요약

LDAP는 디렉토리 서비스를 쿼리하고 수정하는 데 널리 사용되는 프로토콜입니다. 이 가이드에서는 Ubuntu 및 CentOS 클라이언트 시스템에서 외부 인증 소스에 연결하도록 LDAP 클라이언트를 구성하는 방법을 보여주었습니다. 아래 피드백 양식을 사용하여 질문이나 의견을 남길 수 있습니다.