Úvod
Proč OpenLDAP?
Cílem projektu je zkopírovat zdrojový kód reference LDAP. OpenLDAP je zkratka Lightweight Directory Access Protocol. LDAP je aplikační protokol nezávislý na výrobci, který vám umožňuje vyhodnocovat a udržovat distribuované adresářové informační služby prostřednictvím poskytovatele internetových služeb. Existuje mnoho různých způsobů, jak poskytnout adresář. Například použití LDAP vám pomůže poskytují centrální místo pro ukládání uživatelských jmen a hesel.
Mnoho různých aplikací a služeb se tedy může připojit k serveru LDAP za účelem ověření uživatelů. Servery LDAP jsou široce používány v organizacích k ukládání uživatelského jména a hesla na centralizovaném serveru, proti kterému se uživatel může dále autentizovat k programům a službám přítomným v síti. Kromě toho budeme používat balíčky Symas OpenLDAP pro standardní příkazy pro údržbu softwaru nativní pro váš operační systém. Symas OpenLDAP je hlavním přispěvatelem při psaní 90 % kódu OpenLDAP.
Výhody OpenLDAP
Je to zdarma. Podobně jako Linux je open source. Standardní protokol. Za druhé, navíc je snadné svázat ověřování s mnoha aplikacemi. Přizpůsobitelné a lehké.
Nevýhody OpenLDAP
Nejlepší by bylo, kdybyste se připravili. Kromě vaší infrastruktury podporují všechny požadavky. Jsou zavedeny zásady a bezpečnostní pravidla. Databáze nebo ActiveDirectory by tedy měly vždy uchovávat data. Všechny atributy a zásady se poruší, pokud nejsou aktuální informace na místě. Za předpokladu, že Microsoft ve vaší oblasti uděluje OpenLDAP s Active Directory.
Instalace na Rocky nebo Centos 8
Kromě toho lze v tutoriálu použít (Rocky Linux/Centos 8). Zvládá tedy ověřování záznamů týkající se účtů. Chcete-li, aby tento návod fungoval lépe, zvažte prosím níže uvedené.
Služba firewalld. Do tohoto příkazového řádku můžeme přidat pravidlo. Tímto přidáváte omezení firewallu do portu 389 vašeho terminálu pro nezabezpečené přidružení. Port 636 bude jedinečný pro připojení zabezpečeného portu.
# firewall-cmd --permanent --add-port=389/TCP
# firewall-cmd --permanent --add-port=636/TCP
# firewall-cmd --reload
Měly by být nainstalovány požadované balíčky. Kromě toho jsou pro klienta nezbytné Sssd, openldap-clients a oddjob-mkhomedir.
# dnf install wget vim cyrus-sasl-devel libtool-ltdl-devel openssl-devel libdb-devel make libtool autoconf tar gcc perl perl-devel -y
Takže vítejte v Symas OpenLDAP pro Linux
Pokyny pro podporované platformy:
RHEL7
RHEL8
Ubuntu 16.04 LTS
Ubuntu 18.04 LTS
Ubuntu 20.04 LTS
Konfigurace Symas OpenLdap pro Linux na RHEL8/Rocky/Centos8
Po instalaci požadovaných binárních souborů. Zkopírujte předem nakonfigurovaný soubor úložiště ze Symas úložiště.
Následující kroky zajistí, že ldap rychle zprovozníte:
Nainstalujte požadovaný balíček Symas OpenLDAP
• Symas-OpenLDAP-Client obsahuje pouze klientské knihovny a příkazy. Použijte to na systémech, kde je vyžadován přístup k Symas OpenLDAP, ale kde není vyžadován serverový software.
• Symas-OpenLDAP-Nonopt odstraňuje příznaky optimalizace ze standardní instalace serveru/klienta. Snižuje výkon, ale zvyšuje schopnosti ladění a odstraňování problémů.
• Symas-OpenLDAP (tj. instalační program serveru) obsahuje všechny klientské a serverové součásti potřebné k vytvoření plně funkčního adresáře LDAP.
• Symas-OpenLDAP-Devel se používá, pokud je účelem vyvíjet software založený na knihovnách, které jsou součástí Syas-OpenLDAP.
# wget -q https://repo.symas.com/configs/SOFL/rhel8/sofl.repo -O /etc/yum.repos.d/sofl.repo
- Nainstalujte balíčky symas-openldap-client a symas-openldap-servers.
# dnf install symas-openldap-clients symas-openldap-servers -y
- Spusťte službu .
# systemctl start slapd
- Vygenerujte heslo LDAP z tajného klíče.
# slappasswd -s rocky -n > /etc/openldap/passwd
- Nový certifikát musí vygenerovat X509 platný 365 dní.
# openssl req -new -x509 -nodes -out /etc/openldap/certs/cert.pem -keyout /etc/openldap/certs/priv.pem -days 365
- Kromě toho přesuňte vygenerovaný obsah do adresáře /etc/openldap/certs na hlavním ldap. Zkopírujte soubor cert.pem do klienta pro ověření pomocí připojení ldap.
# cd /etc/openldap/certs.
# chown ldap:ldap *
# chmod 600 priv.pem
Připravte šablonu databáze obsaženou v nainstalovaném OpenLDAP
# cp -r /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
- Vygenerujte soubor databáze.
[root@master ~]#slaptest
config file testing succeeded
[root@master ~]#
- Takže změňte vlastnictví databázových souborů.
# chown ldap:ldap /var/lib/ldap/*
- Aktivujte službu slapd při spouštění a okamžitě se spustí.
# systemctl enable slapd --now
- Zkontrolujte tedy, zda služba běží.
# netstat -lt | grep ldap
tcp 0 0 0.0.0.0:ldaps 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ldap 0.0.0.0:* LISTEN
- Nastavte heslo uživatele root.
# slappasswd
New password:
Re-enter new password:
{SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
# vi chroot.ldif
# specify the password generated above for "olcRootPW" section
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
# ldapadd -Y EXTERNAL -H ldapi:/// -f chroot.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"
Jsme nakonfigurováni přidat kosinus, nis &inetorgperson LDAP schémata.
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=cosine,cn=schema,cn=config"
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=inetorgperson,cn=schema,cn=config"
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry “cn=inetorgperson,cn=schema,cn=config”
- Vytvořte soubor changes.ldif v adresáři /etc/openldap/ . Vložte výstupní řádky pomocí {SSHA } s {SSHA}xxx generovaným slappasswd.
# slappasswd
New password:
Re-enter new password:
{SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
- Název databáze je nyní mdb. Informace uložené v backendu mdb lze nalézt v /etc/openldap/slapd.d/cn=config/olcDatabase={2}soubor mdb.ldif.
# vi /etc/openldap/changes.ldif
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=example,dc=com
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxx
dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/cert.pem
dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/priv.pem
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,d
c=com” read by * none
- Importujte konfiguraci do počítače. Toto bude hlavní položka v adresáři LDAP.
# ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/changes.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry “olcDatabase={2}mdb,cn=config”
modifying entry “olcDatabase={2}mdb,cn=config”
modifying entry “olcDatabase={2}mdb,cn=config”
modifying entry “cn=config”
modifying entry “cn=config”
modifying entry “olcDatabase={1}monitor,cn=config”
- Ověřte konfiguraci
# slaptest -u
Výstup by měl vypadat jako výstup.
# config file testing succeeded
- Vytvořte soubor /etc/openldap/base.ldif s níže uvedenou konfigurací.
vi /etc/openldap/base.ldif
dn: dc=example,dc=com
dc: example
objectClass: top
objectClass: domain
dn: ou=People,dc=example,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit
dn: ou=Group,dc=example,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit
# ldapadd -x -w redhat -D cn=Manager,dc=example,dc=com -f /etc/openldap/base.ldif
Vytvořte uživatele vytvořením souboru users.ldif
# vi users.ldif
dn: uid=user01,ou=People,dc=example,dc=com
uid: user01
cn: user01
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$6$zz2TKRQVGLyPJoTU$//n.UkHKrrfkeUQUOund2QbSGRMXjU0GV73o.UlprOB3CxBxmQArsESrNUUHC7v3ZhwojszXGh7LowRSnjWhG.
shadowLastChange: 18818
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/guests/user01
- Otestujte konfiguraci, zda je uživatel nyní přítomen.
# ldapsearch -x cn=user01 -b dc=example,dc=com
- Výstup by měl vypadat takto.
[root@master8 ~]# ldapsearch -x cn=user01 -b dc=example,dc=com
#extended LDIF
#
#LDAPv3
#base with scope subtree
#filter: cn=user01
#requesting: ALL
# user01, People, example.com
dn: uid=user01,ou=People,dc=example,dc=com
uid: user01
cn: user01
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: e2NyeXB0fSQ2JHp6MlRLUlFWR0x5UEpvVFUkLy9uLlVrSEtycmZrZVVRVU91bmQ
yUWJTR1JNWGpVMEdWNzNvLlVscHJPQjNDeEJ4bVFBcnNFU3JOVVVIQzd2M1pod29qc3pYR2g3TG93
UlNualdoRy4=
shadowLastChange: 18818
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/guests/user01
user01, Group, example.com
dn: cn=user01,ou=Group,dc=example,dc=com
objectClass: posixGroup
objectClass: top
cn: user01
userPassword:: e2NyeXB0fXg=
gidNumber: 1001
search result
search: 2
result: 0 Success
numResponses: 3
numEntries: 2
Závěr
Instalace OpenLDAP je tedy poměrně jednoduchá, pokud postupujete správně. Pokud však následují kroky, které nebudou následovat, služba nebude fungovat správně.Symas OpenLDAP je fantastická alternativa ke kompilaci vašeho balíčku openldap z openldap.org. Z mého pohledu neexistuje lepší praktické učení než teorie. Konečně to byla cesta objevování nových věcí zpaměti a milování toho, co děláte.