Installera OpenLDAP i Debian Wheezy: Difference between revisions

From Peters wiki
Jump to navigation Jump to search
mNo edit summary
 
(24 intermediate revisions by the same user not shown)
Line 1: Line 1:
Denna artikel beskriver hur man installerar en OpenLDAP server i Debian Wheezy.
Denna artikel beskriver hur man installerar en OpenLDAP server i Debian Wheezy. Vi kommer använda ldap01.example.com som FQDN för vår LDAP server i exemplen.


== Installera LDAP server ==
== Installera LDAP server ==
Installera LDAP servern och lite nödvändiga verktyg:
Installera LDAP servern och lite nödvändiga verktyg:
{{RootCmd|apt-get install slapd ldap-utils}}
{{RootCmd|apt-get install slapd ldap-utils}}
Ange lösenordet för cn=admin,dc=example,dc=com.


== LDAP Konfigurering ==
== LDAP Konfigurering ==
Line 9: Line 10:
{{Cmd|<nowiki>ldapsearch -Y EXTERNAL -H ldapi:/// -b "cn=config"</nowiki>}}
{{Cmd|<nowiki>ldapsearch -Y EXTERNAL -H ldapi:/// -b "cn=config"</nowiki>}}
Ändringar görs via LDIF filer och ldapadd eller ldapmodify kommandon:
Ändringar görs via LDIF filer och ldapadd eller ldapmodify kommandon:
{{RootCmd|<nowiki>ldapadd -Y EXTERNAL -H ldapi:/// -f <file.ldif></nowiki>|
{{RootCmd|ldapadd -Y EXTERNAL -H ldapi:/// -f <file.ldif>|ldapmodify -Y EXTERNAL -H ldapi:/// -f <file.ldif>}}
<nowiki>ldapmodify -Y EXTERNAL -H ldapi:/// -f <file.ldif></nowiki>}}


== Säkerhet ==
== Säkerhet ==
För att säkra upp trafiken mot LDAP servern, behöver vi kryptera trafiken. Vi kommer använda oss av TLS och skapa certifikat mha gnutls. Installera gnutls-bin och ssl-cert:
För att säkra upp trafiken mot LDAP servern, behöver vi kryptera trafiken. Vi kommer använda oss av TLS och skapa certifikat mha gnutls. Installera gnutls-bin och ssl-cert:
{{RootCmd|apt-get install gnutls-bin ssl-cert}}
{{RootCmd|apt-get install gnutls-bin ssl-cert}}
Vi kommer agera vårt eget CA, ''Certificate Authority'', och signera våra nycklar som det CA.
Vi kommer agera vårt eget CA, ''Certificate Authority'', och signera våra nycklar som det CA.


=== Skapa CA nycklar ===
=== Generera CA certifikat ===


Generera vår privata CA nyckel:
Generera vår privata CA nyckel:
Line 30: Line 31:
Byt ut ''Example Company'' mot din egna beskrivning.
Byt ut ''Example Company'' mot din egna beskrivning.


Generera vårt självsignerade CA certifikat:
Generera ett självsignerat CA certifikat:
{{RootCmd|certtool --generate-self-signed --load-privkey /etc/ssl/private/cakey.pem --template /etc/ssl/ca.info --outfile /etc/ssl/certs/cacert.pem}}
{{RootCmd|certtool --generate-self-signed --load-privkey /etc/ssl/private/cakey.pem --template /etc/ssl/ca.info --outfile /etc/ssl/certs/cacert.pem}}


Addera CA certifikatet till /etc/ssl/certs/ca-certificates.crt:
{{RootCmd|cat /etc/ssl/certs/cacert.pem >> /etc/ssl/certs/ca-certificates.crt}}
=== Generera server certifikat ===
Generera vår privata nyckel för server:
Generera vår privata nyckel för server:
{{RootCmd|certtool --generate-privkey --bits 1024 --outfile /etc/ssl/private/ldap01_key.pem}}
{{RootCmd|certtool --generate-privkey --bits 1024 --outfile /etc/ssl/private/ldap01_key.pem}}
Gör filen läsbar för gruppen ssl-cert:
Gör filen läsbar för gruppen ssl-cert:
{{RootCmd|chgrp ssl-cert /etc/ssl/private/ldap01_key.pem|
{{RootCmd|chgrp ssl-cert /etc/ssl/private/ldap01_key.pem|chmod 640 /etc/ssl/private/ldap01_key.pem}}
chmod 640 /etc/ssl/private/ldap01_key.pem}}


Skapa filen /etc/ssl/ldap01.info:
Skapa filen /etc/ssl/ldap01.info:
Line 50: Line 54:
Vi har här valt en giltighetstid på 10 år.
Vi har här valt en giltighetstid på 10 år.


# generate certificate
Generera certifikatet:
certtool --generate-certificate --load-privkey /etc/ssl/private/server3_key.pem --load-ca-certificate /etc/ssl/certs/cacert.pem --load-ca-privkey /etc/ssl/private/cakey.pem --template /etc/ssl/server3.info --outfile /etc/ssl/certs/server3_cert.pem
{{RootCmd|certtool --generate-certificate --load-privkey /etc/ssl/private/ldap01_key.pem --load-ca-certificate /etc/ssl/certs/cacert.pem --load-ca-privkey /etc/ssl/private/cakey.pem --template /etc/ssl/ldap01.info --outfile /etc/ssl/certs/ldap01_cert.pem}}
 
Skapa följande konfigurationsfil /etc/ssl/certinfo.ldif:
{{bc|1=
dn: cn=config
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/ldap01_cert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/ldap01_key.pem
}}
 
Uppdatera LDAP konfigurationen:
{{RootCmd|<nowiki>ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/ssl/certinfo.ldif</nowiki>}}
 
Lägg till openldap till gruppen ssl-cert. Annars kan inte slapd läsa certifikaten och start av slapd kommer misslyckas:
{{RootCmd|gpasswd -a openldap ssl-cert}}
 
Starta om LDAP servern:
{{RootCmd|service slapd restart}}
 
== Test av LDAP och TLS ==
 
Editera filen /etc/ldap/ldap.conf:
 
{{bc|1=
BASE dc=example,dc=com
URI ldap://ldap01.example.com
 
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
}}
 
Testa sen följande sökningar:
{{RootCmd|<nowiki>ldapsearch -x -LLL "objectClass=*"</nowiki>
|<nowiki>ldapsearch -x -LLL -h localhost  "objectClass=*"</nowiki>
|<nowiki>ldapsearch -Z -x -LLL -h localhost  "objectClass=*"</nowiki>
|<nowiki>ldapsearch -ZZ -x -LLL -h localhost  "objectClass=*"</nowiki>
}}


# configure LDAP
== LDAP uppslagningar över TLS från andra Debian Wheezy maskiner ==
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/ssl/certinfo.ldif


Kopiera filen /etc/ssl/certs/cacert.pem till andra maskiner och addera certifikatet till filen /etc/ssl/certs/ca-certificates.crt:
{{RootCmd|cat cacert.pem >> /etc/ssl/certs/ca-certificates.crt}}
Och gör samma ändringar till filen /etc/ldap/ldap.conf som gjordes på LDAP servern.


[[Category:Guide]]
[[Category:GammalGuide]]

Latest revision as of 18:51, 24 October 2015

Denna artikel beskriver hur man installerar en OpenLDAP server i Debian Wheezy. Vi kommer använda ldap01.example.com som FQDN för vår LDAP server i exemplen.

Installera LDAP server

Installera LDAP servern och lite nödvändiga verktyg:

root # apt-get install slapd ldap-utils

Ange lösenordet för cn=admin,dc=example,dc=com.

LDAP Konfigurering

Numera sparas konfigureringen i LDAP. För att se alla inställningar, kör följande sökning:

user $ ldapsearch -Y EXTERNAL -H ldapi:/// -b "cn=config"

Ändringar görs via LDIF filer och ldapadd eller ldapmodify kommandon:

root # ldapadd -Y EXTERNAL -H ldapi:/// -f <file.ldif>
root #
ldapmodify -Y EXTERNAL -H ldapi:/// -f <file.ldif>

Säkerhet

För att säkra upp trafiken mot LDAP servern, behöver vi kryptera trafiken. Vi kommer använda oss av TLS och skapa certifikat mha gnutls. Installera gnutls-bin och ssl-cert:

root # apt-get install gnutls-bin ssl-cert

Vi kommer agera vårt eget CA, Certificate Authority, och signera våra nycklar som det CA.

Generera CA certifikat

Generera vår privata CA nyckel:

root # certtool --generate-privkey --outfile /etc/ssl/private/cakey.pem

Skapa filen /etc/ssl/ca.info med information om vårt CA:

cn = Example Company
ca
cert_signing_key

Byt ut Example Company mot din egna beskrivning.

Generera ett självsignerat CA certifikat:

root # certtool --generate-self-signed --load-privkey /etc/ssl/private/cakey.pem --template /etc/ssl/ca.info --outfile /etc/ssl/certs/cacert.pem

Addera CA certifikatet till /etc/ssl/certs/ca-certificates.crt:

root # cat /etc/ssl/certs/cacert.pem >> /etc/ssl/certs/ca-certificates.crt

Generera server certifikat

Generera vår privata nyckel för server:

root # certtool --generate-privkey --bits 1024 --outfile /etc/ssl/private/ldap01_key.pem

Gör filen läsbar för gruppen ssl-cert:

root # chgrp ssl-cert /etc/ssl/private/ldap01_key.pem
root #
chmod 640 /etc/ssl/private/ldap01_key.pem

Skapa filen /etc/ssl/ldap01.info:

organization = Example Company 
cn = ldap01.example.com
tls_www_server
encryption_key
signing_key
expiration_days = 3650

Vi har här valt en giltighetstid på 10 år.

Generera certifikatet:

root # certtool --generate-certificate --load-privkey /etc/ssl/private/ldap01_key.pem --load-ca-certificate /etc/ssl/certs/cacert.pem --load-ca-privkey /etc/ssl/private/cakey.pem --template /etc/ssl/ldap01.info --outfile /etc/ssl/certs/ldap01_cert.pem

Skapa följande konfigurationsfil /etc/ssl/certinfo.ldif:

dn: cn=config
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/ldap01_cert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/ldap01_key.pem

Uppdatera LDAP konfigurationen:

root # ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/ssl/certinfo.ldif

Lägg till openldap till gruppen ssl-cert. Annars kan inte slapd läsa certifikaten och start av slapd kommer misslyckas:

root # gpasswd -a openldap ssl-cert

Starta om LDAP servern:

root # service slapd restart

Test av LDAP och TLS

Editera filen /etc/ldap/ldap.conf:

BASE	dc=example,dc=com
URI	ldap://ldap01.example.com

TLS_CACERT	/etc/ssl/certs/ca-certificates.crt

Testa sen följande sökningar:

root # ldapsearch -x -LLL "objectClass=*"
root #
ldapsearch -x -LLL -h localhost "objectClass=*"
root #
ldapsearch -Z -x -LLL -h localhost "objectClass=*"
root #
ldapsearch -ZZ -x -LLL -h localhost "objectClass=*"

LDAP uppslagningar över TLS från andra Debian Wheezy maskiner

Kopiera filen /etc/ssl/certs/cacert.pem till andra maskiner och addera certifikatet till filen /etc/ssl/certs/ca-certificates.crt:

root # cat cacert.pem >> /etc/ssl/certs/ca-certificates.crt

Och gör samma ändringar till filen /etc/ldap/ldap.conf som gjordes på LDAP servern.