Sådan installeres OpenLDAP-server til central godkendelse
Lightweight Directory Access Protocol (kort sagt LDAP) er et industristandard, letvægts, meget brugt sæt protokoller til adgang til bibliotekstjenester. En katalogtjeneste er en delt informationsinfrastruktur til at få adgang til, administrere, organisere og opdatere hverdagslige varer og netværksressourcer, såsom brugere, grupper, enheder, e-mail-adresser, telefonnumre, diskenheder og mange andre objekter.
LDAP-informationsmodellen er baseret på poster. En post i et LDAP-bibliotek repræsenterer en enkelt enhed eller information og identificeres entydigt ved det, der kaldes et Distinguished Name (DN). Hver af postens attributter har en type og en eller flere værdier.
En attribut er et stykke information, der er knyttet til en post. Typerne er typisk mnemoniske strenge, såsom "cn" for almindeligt navn eller "mail" for e-mail-adresse. Hver attribut tildeles en eller flere værdier, der består af en rumadskilt liste.
Følgende er en illustration af, hvordan information er arrangeret i LDAP-biblioteket.
I denne artikel viser vi, hvordan du installerer og konfigurerer OpenLDAP-server til central godkendelse i Ubuntu 16.04/18.04 og CentOS 7.
Trin 1: Installation af LDAP-server
1. Start med at installere OpenLDAP, en open source-implementering af LDAP og nogle traditionelle LDAP-styringsværktøjer ved hjælp af følgende kommandoer.
# yum install openldap openldap-servers #CentOS 7 $ sudo apt install slapd ldap-utils #Ubuntu 16.04/18.04
På Ubuntu vil du under pakkeinstallationen blive bedt om at indtaste adgangskoden til administratorindgangen i dit LDAP-bibliotek, indstille en sikker adgangskode og bekræfte den.
Når installationen er afsluttet, kan du starte tjenesten som beskrevet nedenfor.
2. På CentOS 7 skal du køre følgende kommandoer for at starte openldap server-dæmonen, aktivere den til automatisk start ved opstartstid og kontrollere, om den er i gang (på Ubuntu skal tjenesten startes automatisk under systemd, du kan simpelthen kontrollere dens status):
$ sudo systemctl start slapd $ sudo systemctl enable slapd $ sudo systemctl status slapd
3. Tillad derefter anmodninger til LDAP-serverdæmonen gennem firewallen som vist.
# firewall-cmd --add-service=ldap #CentOS 7 $ sudo ufw allow ldap #Ubuntu 16.04/18.04
Trin 2: Konfiguration af LDAP-server
Bemærk: Det anbefales ikke at manuelt redigere LDAP-konfigurationen, du skal tilføje konfigurationerne i en fil og bruge kommandoen ldapadd eller ldapmodify til at indlæse dem til LDAP-biblioteket som vist nedenfor.
4. Opret nu en OpenLDAP-administrativ bruger, og tildel en adgangskode til den bruger. I nedenstående kommando oprettes en hashværdi for den givne adgangskode, vær opmærksom på den, du vil bruge den i LDAP-konfigurationsfilen.
$ slappasswd
5. Opret derefter en LDIF-fil (ldaprootpasswd.ldif), der bruges til at tilføje en post til LDAP-biblioteket.
$ sudo vim ldaprootpasswd.ldif
Tilføj følgende indhold i det:
dn: olcDatabase={0}config,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}PASSWORD_CREATED
forklaring af attributværdiparene ovenfor:
- olcDatabase: angiver et specifikt navn på en databaseinstans og kan typisk findes i /etc/openldap/slapd.d/cn=config.
- cn = config: angiver globale konfigurationsindstillinger.
- PASSWORD: er den hashede streng, der blev opnået under oprettelsen af den administrative bruger.
6. Tilføj derefter den tilsvarende LDAP-post ved at angive URI'en, der henviser til ldap-serveren og filen ovenfor.
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f ldaprootpasswd.ldif
Trin 3: Konfiguration af LDAP-database
7. Kopier nu prøvedatabasekonfigurationsfilen for slapd til/var/lib/ldap-biblioteket, og indstil de korrekte tilladelser til filen.
$ sudo cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG $ sudo chown -R ldap:ldap /var/lib/ldap/DB_CONFIG $ sudo systemctl restart slapd
8. Dernæst importerer du nogle grundlæggende LDAP-skemaer fra/etc/openldap/schema-biblioteket som følger.
$ 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
9. Tilføj nu dit domæne i LDAP-databasen, og opret en fil, der hedder ldapdomain.ldif til dit domæne.
$ sudo vim ldapdomain.ldif
Tilføj følgende indhold i det (erstat eksemplet med dit domæne og PASSWORD med den hashværdi, der blev opnået før):
dn: olcDatabase={1}monitor,cn=config changetype: modify replace: olcAccess olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=example,dc=com" read by * none dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=example,dc=com dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=Manager,dc=example,dc=com dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}PASSWORD dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcAccess olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=Manager,dc=example,dc=com" write by anonymous auth by self write by * none olcAccess: {1}to dn.base="" by * read olcAccess: {2}to * by dn="cn=Manager,dc=example,dc=com" write by * read
10. Føj derefter ovenstående konfiguration til LDAP-databasen med følgende kommando.
$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f ldapdomain.ldif
11. I dette trin skal vi tilføje nogle poster til vores LDAP-bibliotek. Opret en anden fil kaldet baseldapdomain.ldif med følgende indhold.
dn: dc=example,dc=com objectClass: top objectClass: dcObject objectclass: organization o: example com dc: example dn: cn=Manager,dc=example,dc=com objectClass: organizationalRole cn: Manager description: Directory Manager dn: ou=People,dc=example,dc=com objectClass: organizationalUnit ou: People dn: ou=Group,dc=example,dc=com objectClass: organizationalUnit ou: Group
Gem filen, og tilføj derefter posterne til LDAP-biblioteket.
$ sudo ldapadd -Y EXTERNAL -x -D cn=Manager,dc=example,dc=com -W -f baseldapdomain.ldif
12. Det næste trin er at oprette en LDAP-bruger for eksempel tecmint og indstille en adgangskode til denne bruger som følger.
$ sudo useradd tecmint $ sudo passwd tecmint
13. Opret derefter definitionerne for en LDAP-gruppe i en fil kaldet ldapgroup.ldif med følgende indhold.
dn: cn=Manager,ou=Group,dc=example,dc=com objectClass: top objectClass: posixGroup gidNumber: 1005
I ovenstående konfiguration er gidNumber GID i/etc/group for tecmint og føjer det til OpenLDAP-biblioteket.
$ sudo ldapadd -Y EXTERNAL -x -W -D "cn=Manager,dc=example,dc=com" -f ldapgroup.ldif
14. Opret derefter en anden LDIF-fil, der hedder ldapuser.ldif, og tilføj definitionerne for bruger tecmint.
dn: uid=tecmint,ou=People,dc=example,dc=com objectClass: top objectClass: account objectClass: posixAccount objectClass: shadowAccount cn: tecmint uid: tecmint uidNumber: 1005 gidNumber: 1005 homeDirectory: /home/tecmint userPassword: {SSHA}PASSWORD_HERE loginShell: /bin/bash gecos: tecmint shadowLastChange: 0 shadowMax: 0 shadowWarning: 0
indlæs derefter konfigurationen i LDAP-biblioteket.
$ ldapadd -Y EXTERNAL -x -D cn=Manager,dc=example,dc=com -W -f ldapuser.ldif
Når du har konfigureret en central server til godkendelse, er den sidste del at gøre det muligt for klienten at godkende ved hjælp af LDAP som forklaret i denne vejledning:
- Sådan konfigureres LDAP-klienten til at forbinde ekstern godkendelse
Se den relevante dokumentation fra OpenLDAP-servervejledningen for at få flere oplysninger.
OpenLDAP er en open source-implementering af LDAP i Linux. I denne artikel har vi vist, hvordan man installerer og konfigurerer OpenLDAP-server til central godkendelse i Ubuntu 16.04/18.04 og CentOS 7. Hvis du har et spørgsmål eller tanker at dele, tøv ikke med at kontakte os via nedenstående kommentarformular.