V našem předchozím článku jsme nastavili server OpenLDAP na CentOS 7 / RHEL 7 pro centralizovanou autentizaci. V návaznosti na to nyní nakonfigurujeme OpenLDAP s SSL pro bezpečnou komunikaci. V tomto nastavení probíhá komunikace klientů LDAP přes zabezpečený port 636 namísto nezabezpečeného portu 389.
Podle tohoto průvodce nakonfigurujte OpenLDAP s SSL.
Předpoklady
1. Otevřete nastavení LDAP.
2. Vytvořte záznam hostitele serveru LDAP na svých klientských počítačích v /etc/hosts
pro rozlišení názvu.
192.168.1.10 server.itzgeek.local server
NEBO
Pokud plánujete použít název hostitele místo IP adresy, pak Nakonfigurujte server DNS na CentOS 7 / RHEL 7 mít rozlišení názvu hostitele.
Vytvořit certifikát LDAP
Pokud plánujete používat LDAP přes SSL, můžete jej implementovat pomocí libovolné z níže uvedených metod.
1. Certifikát s vlastním podpisem – Jedná se o jednoduchý certifikát s vlastním podpisem. Klienti LDAP musí mít povoleno tls_reqcert allow
v /etc/nslcd.conf
aby neověřil certifikát.
2. Certifikát podepsaný CA – Vaše interní podpisové certifikáty CA nebo externí CA. Certifikát CA, který podepsal váš certifikát serveru LDAP, byste měli umístit do /etc/openldap/cacerts/
adresář, aby klienti LDAP mohli ověřovat certifikáty.
Certifikát s vlastním podpisem
Vytvořme certifikát s vlastním podpisem pro náš server LDAP. Níže uvedený příkaz vygeneruje certifikát i soukromý klíč v /etc/openldap/certs/
adresář.
openssl req -new -x509 -nodes -out /etc/openldap/certs/itzgeekldap.crt -keyout /etc/openldap/certs/itzgeekldap.key -days 1460
Výstup:
Generating a 2048 bit RSA private key ...+++ .....................................+++ writing new private key to '/etc/openldap/certs/itzgeekldapkey.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]: XX State or Province Name (full name) []: XX Locality Name (eg, city) [Default City]: XXXXXX Organization Name (eg, company) [Default Company Ltd]:ITzGeek Organizational Unit Name (eg, section) []:IT Infra Common Name (eg, your name or your server's hostname) []:server.itzgeek.local Email Address []:[email protected]
Nastavte oprávnění vlastníka a skupiny.
chown -R ldap:ldap /etc/openldap/certs/itzgeek*
Ověřte vytvořený certifikát LDAP v /etc/openldap/certs/
adresář.
ll /etc/openldap/certs/itzgeek*
Výstup:
-rw-r--r--. 1 ldap ldap 1302 Apr 1 14:18 /etc/openldap/certs/itzgeekldap.crt -rw-r--r--. 1 ldap ldap 1704 Apr 1 14:18 /etc/openldap/certs/itzgeekldap.key
Vytvořte certs.ldif
soubor pro konfiguraci LDAP pro použití zabezpečené komunikace pomocí certifikátu s vlastním podpisem.
vi certs.ldif
Použijte níže uvedené informace.
dn: cn=config changetype: modify replace: olcTLSCertificateFile olcTLSCertificateFile: /etc/openldap/certs/itzgeekldap.crt dn: cn=config changetype: modify replace: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/openldap/certs/itzgeekldap.key
Importujte konfigurace na server LDAP.
ldapmodify -Y EXTERNAL -H ldapi:/// -f certs.ldif
Ověřte konfiguraci
slaptest -u
Po úspěšném ověření byste měli obdržet následující zprávu.
config file testing succeeded
Vlastní certifikát podepsaný CA
Vytvořte kořenový klíč pomocí následujícího příkazu.
cd /etc/openldap/certs/ openssl genrsa -out itzgeekrootCA.key 2048
Nyní vytvořte kořenový certifikát s vlastním podpisem.
openssl req -x509 -new -nodes -key itzgeekrootCA.key -sha256 -days 1024 -out itzgeekrootCA.pem
Výstup:
You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:XX State or Province Name (full name) []:XXX Locality Name (eg, city) [Default City]:XXX Organization Name (eg, company) [Default Company Ltd]:ITzGeek Organizational Unit Name (eg, section) []:XXX Common Name (eg, your name or your server's hostname) []:ITzGeek Root CA Email Address []:[email protected]
Vytvořte soukromý klíč pro server LDAP.
openssl genrsa -out itzgeekldap.key 2048
Jakmile máte soukromý klíč, vytvořte žádost o podpis certifikátu.
openssl req -new -key itzgeekldap.key -out itzgeekldap.csr
Výstup:
Ujistěte se, že běžný název odpovídá názvu hostitele nebo IP adrese vašeho serveru LDAP.
Generating RSA private key, 2048 bit long modulus .........+++ .............................................................+++ e is 65537 (0x10001) [root@server certs]# openssl req -new -key itzgeekldap.key -out itzgeekldap.csr You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:XX State or Province Name (full name) []:XX Locality Name (eg, city) [Default City]:XXX Organization Name (eg, company) [Default Company Ltd]:ITzGeek Organizational Unit Name (eg, section) []:IT Common Name (eg, your name or your server's hostname) []:server.itzgeek.local Email Address []:[email protected] Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Nyní podepište žádost o podpis certifikátu pomocí vlastní kořenové CA.
openssl x509 -req -in itzgeekldap.csr -CA itzgeekrootCA.pem -CAkey itzgeekrootCA.key -CAcreateserial -out itzgeekldap.crt -days 1460 -sha256
Nastavte oprávnění vlastníka a skupiny.
chown -R ldap:ldap /etc/openldap/certs/itzgeek*
Ověřte vytvořený certifikát LDAP v /etc/openldap/certs/
adresář.
ll /etc/openldap/certs/itzgeek*
Výstup:
-rw-r--r--. 1 ldap ldap 1285 Apr 1 16:54 /etc/openldap/certs/itzgeekldap.crt -rw-r--r--. 1 ldap ldap 1050 Apr 1 16:53 /etc/openldap/certs/itzgeekldap.csr -rw-r--r--. 1 ldap ldap 1675 Apr 1 16:51 /etc/openldap/certs/itzgeekldap.key -rw-r--r--. 1 ldap ldap 1679 Apr 1 16:49 /etc/openldap/certs/itzgeekrootCA.key -rw-r--r--. 1 ldap ldap 1399 Apr 1 16:49 /etc/openldap/certs/itzgeekrootCA.pem -rw-r--r--. 1 ldap ldap 17 Apr 1 16:54 /etc/openldap/certs/itzgeekrootCA.srl
Vytvořte certs.ldif
soubor pro konfiguraci LDAP pro použití zabezpečené komunikace pomocí certifikátu s vlastním podpisem.
vi certs.ldif
Použijte níže uvedené informace.
dn: cn=config changetype: modify replace: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/openldap/certs/itzgeekrootCA.pem dn: cn=config changetype: modify replace: olcTLSCertificateFile olcTLSCertificateFile: /etc/openldap/certs/itzgeekldap.crt dn: cn=config changetype: modify replace: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/openldap/certs/itzgeekldap.key
Importujte konfigurace na server LDAP.
ldapmodify -Y EXTERNAL -H ldapi:/// -f certs.ldif
Ověřte konfiguraci
slaptest -u
Po úspěšném ověření byste měli obdržet následující zprávu.
config file testing succeeded
Nakonfigurujte OpenLDAP pro poslech přes SSL
Upravte /etc/sysconfig/slapd
a nakonfigurujte OpenLDAP pro naslouchání přes SSL.
vi /etc/sysconfig/slapd
Aktualizujte níže uvedený řádek.
SLAPD_URLS="ldapi:/// ldap:/// ldaps:///"."
Restartujte službu slapd.
systemctl restart slapd
Ověřte službu LDAP. Služba LDAP by nyní měla naslouchat také na portu TCP 636.
netstat -antup | grep -i 636
Výstup:
tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN 11720/slapd tcp6 0 0 :::636 :::* LISTEN 11720/slapd
Firewall
Přidejte službu LDAPS do brány firewall (TCP 686).
firewall-cmd --permanent --add-service=ldaps firewall-cmd --reload
Konfigurace klienta OpenLDAP pro OpenLDAP přes SSL
Nainstalujte klientské balíčky pomocí příkazu yum.
yum install -y openldap-clients nss-pam-ldapd
Spusťte authconfig
příkaz k přidání klientského počítače na server LDAP pro jednotné přihlášení. Nahraďte „server.itzgeek.local ” s IP adresou nebo názvem hostitele serveru LDAP.
Pokud jste v nastavení OpenLDAP použili vlastní certifikát podepsaný CA nebo externí certifikát CA, měl by název hostitele nebo IP adresa odpovídat běžnému názvu certifikátu serveru LDAP
authconfig --enableldap --enableldapauth --ldapserver=ldaps://server.itzgeek.local --ldapbasedn="dc=itzgeek,dc=local" --enablemkhomedir --disableldaptls --update
Budete muset provést níže uvedené kroky na základě metody, kterou jste nakonfigurovali OpenLDAP pro použití SSL.
Certifikát s vlastním podpisem
Upravte soubor nslcd.conf
soubor.
vi /etc/nslcd.conf
Přidejte následující řádek do nslcd.conf
soubor. Níže uvedené nastavení zakáže ověření certifikátu prováděné klienty, protože používáme certifikát s vlastním podpisem.
tls_reqcert allow
Vlastní podpis CA nebo externí CA
Zkopírujte itzgeekrootCA.pem
ze serveru LDAP nebo umístěte zprostředkující certifikát nebo CA poskytnutý externí CA do /etc/openldap/cacerts
adresář.
cd /etc/openldap/cacerts/ scp -pr 192.168.1.10:/etc/openldap/certs/itzgeekrootCA.pem /etc/openldap/cacerts
Vytvořte c hash certifikátu CA.
/etc/pki/tls/misc/c_hash /etc/openldap/cacerts/itzgeekrootCA.pem
Výstup:
997ee4fb.0 => /etc/openldap/cacerts/itzgeekrootCA.pem
Nyní symbolicky propojte soubor rootCA.pem se zobrazeným 8místným hexadecimálním číslem.
ln -s /etc/openldap/cacerts/itzgeekrootCA.pem 997ee4fb.0
Restartujte klientskou službu LDAP.
systemctl restart nslcd
Ověřte přihlášení k LDAP
Použijte příkaz getent k získání záznamů LDAP ze serveru LDAP.
getent passwd raj
Výstup:
raj:x:9999:100:Raj [Admin (at) ITzGeek]:/home/raj:/bin/bash
Chcete-li ověřit LDAP, přihlaste se pomocí uživatele LDAP „raj“ na klientském počítači.
Snímek obrazovky:

Odkaz
OpenFusion – Tipy a triky OpenLDAP
CentOS – Fórum
To je vše.