CentOS 7에서 OpenLDAP 서버 설치 및 구성

LDAP(Lightweight Directory Access Protocol)는 ID와 개체를 쉽게 관리할 수 있는 디렉터리 서비스입니다. 가장 일반적인 응용 프로그램 중 하나는 LDAP를 사용하여 서버에 인증할 수 있다는 것입니다. Windows 세계에서 서버는 일반적으로 Active Directory입니다. Linux 세계에서는 OpenLDAP가 널리 채택됩니다.

이 안내서에서는 작동 가능한 간단한 LDAP 서버를 설치하고 구성하는 방법을 보여드리겠습니다.

개념



설치 및 구성에 들어가기 전에 LDAP에서 사용되는 몇 가지 용어를 알아두는 것이 좋습니다.

기인하다



속성은 객체의 특성입니다. 예를 들어 계정의 이메일입니다.

개체 클래스



객체 클래스는 객체가 가질 수 있는 속성을 정의합니다. 예를 들어 객체 클래스 InetOrgPerson을 정의하고 여기에는 displayName 및 메일 속성이 포함될 수 있습니다. 객체 클래스의 정의에 따라 지정된 속성은 필수 또는 선택 사항일 수 있습니다.

식별 이름(DN)



식별 이름을 사용하면 객체를 고유하게 식별할 수 있습니다. 역순으로 파일 경로와 유사합니다. 예를 들어 uid=joeho,OU=People,DC=abc,DC=local은 DN입니다.

기입



항목은 개체일 뿐입니다. 이 항목이 속한 객체 클래스를 정의하고 각 객체 클래스는 이 객체가 가진 속성을 정의합니다. 각 항목은 여러 개체 클래스에 속할 수 있으며 해당 항목이 속한 모든 개체 클래스에 지정된 모든 필수 속성이 있어야 합니다.

개요



스키마에는 다양한 속성 및 객체 클래스의 정의가 포함됩니다.

도메인 구성 요소(DC) 및 조직 단위(OU)



그것들은 컨테이너이고 객체를 포함하며 계층 방식으로 객체를 관리할 수 있게 해줍니다. 사람들은 일반적으로 사용합니다.

OpenLDAP 설치



OpenLDAP 관련 패키지 설치

sudo yum install openldap* -y
sudo systemctl start slapd
sudo systemctl enable slapd
sudo systemctl status slapd # Check service is started & enabled




OpenLDAP 구성



OpenLDAP 암호 생성 및 저장

sudo slappasswd



그런 다음 ldapmodify를 사용하여 데이터베이스 구성 파일인/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif를 업데이트합니다.

파일을 만들고 아래 내용을 사용자 지정하고 붙여넣습니다.

vi db.ldif


붙여넣어야 하는 콘텐츠:
사용자 지정 값으로 교체해야 합니다.
  • olcSuffix(도메인으로 대체해야 함, 예: example.com -> dc=example,dc=com)
  • olcRootDN(도메인 관리자 이름으로 대체해야 하며 원하는 이름이 될 수 있습니다. 예: admin -> cn=admin,dc=abc,dc=local)
  • olcRootPW(위에서 생성한 비밀번호여야 함)

  • dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcSuffix
    olcSuffix: dc=abc,dc=local
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcRootDN
    olcRootDN: cn=admin,dc=abc,dc=local
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcRootPW
    olcRootPW: {SSHA}xxxxx
    



    이 명령을 실행하여 업데이트하십시오.

    sudo ldapmodify -Y External -H ldapi:/// -f db.ldif
    


    /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif의 구성을 변경해야 함



    일부 적용commonly used schema . 두 번째 및 세 번째 스키마를 사용하면 사용자를 만드는 데 사용할 InetOrgPerson 및 ShadowAccount를 사용하여 개체를 만들 수 있습니다.

    sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
    sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
    sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
    


    OpenLDAP 확인



    개체, 조직 구성 단위 및 그룹 만들기



    entries.ldif 파일을 만들고 다음 내용을 아래에 추가합니다.
  • 사용자 생성, joe
  • joe를 joe와 Engineering의 2개 그룹에 할당합니다.

  • dn: dc=abc,dc=local
    dc: abc
    objectClass: top
    objectClass: domain
    
    dn: ou=People,dc=abc,dc=local
    objectClass: organizationalUnit
    ou: People
    
    dn: ou=Groups,dc=abc,dc=local
    objectClass: organizationalUnit
    ou: Groups
    
    dn: cn=Engineering,ou=Groups,dc=abc,dc=local
    cn: Engineering
    objectClass: posixGroup
    gidNumber: 20100
    memberUid: joe
    
    dn: uid=joe,ou=People,dc=abc,dc=local
    objectClass: inetOrgPerson
    objectClass: posixAccount
    objectClass: shadowAccount
    uid: joe
    sn: Ho
    givenName: Joe
    cn: Joe Ho
    displayName: Joe Ho
    uidNumber: 20001
    gidNumber: 20001
    loginShell: /bin/bash
    homeDirectory: /home/joe
    shadowMin: 0
    shadowMax: 2
    shadowWarning: 1
    userPassword: {CRYPT}x
    shadowLastChange: 19261
    dn: cn=joe,ou=Groups,dc=abc,dc=local
    cn: joe
    objectClass: posixGroup
    gidNumber: 20001
    memberUid: joe
    


    콘텐츠 적용

    ldapadd -x -W -D "cn=admin,dc=abc,dc=local" -f entries.ldif
    


    테스트 쿼리 LDAP



    모든 항목 쿼리

    ldapsearch -D cn="admin,dc=abc,dc=local" -W -b "dc=abc,dc=local"
    




    결론



    전체 설정을 완료하고 LDAP에서 사용자를 생성하고 관리할 수 있습니다.

    원본 게시물: Disable anonymous bind for OpenLDAP in Centos7 | Joe Ho Blog

    좋은 웹페이지 즐겨찾기