Sprungmarken

Wartung von Netzinfrastruktur: Ausfall zentraler Systeme

20.06.2013, 17.00 - 20.00 Uhr

Aufgrund einer Wartung an der zentralen Netzinfrastruktur werden zentrale RRZE-Dienste (z.B. Web/Mail/IDM/AD/WLAN/VPN,…) wiederholt für einige Minuten nicht erreichbar sein, d.h. es ist im Verlauf der Wartung definitiv mit massiven Einschränkungen zu rechnen.
Weitere Informationen...

Die letzten Meldungen

Wichtige Updates für Novell-Clients wegen möglicher Sicherheitslücke

12. Juni 2013

Aufgrund einer möglichen Sicherheitslücke wird dringend dazu geraten, Novell-Clients auf die aktuellste Version zu aktualisieren. Dies betrifft sowohl den alten, von Novell nicht mehr gepflegten Novell-Client 4.91 für Windows XP, als auch die aktuelle Version für Windows 7/8 und aktuelle Windows Server (Novell Client 2.0).
Weiterlesen...

Wartungsmeldung für Server sunshare und indiana

11. Juni 2013

Am Donnerstag dem 13.06.2013 werden die Server Sunshare und Indiana nicht erreichbar sein.
Weiterlesen...

Vortragsreihen der FAU – Wissenschaft für die Öffentlichkeit

7. Juni 2013

Vortragsreihen der FAU
Weiterlesen...

Meldungen nach Thema

 

SSL

Erstellen der Zertifikate für sichere Verbindungen

Um eine verschlüsselte Verbindung zu erlauben müssen zuerst die nötigen Zertifikate (slapd_cert.pem) und Schlüssel (slapd_key.pem) erstellt werden.

Wird zusätzlich eine Certificate Authority benötigt so empfiehlt sich der Einsatz eines kleinen Tools, das im Paket openssl bereits enthalten ist. Mit dessen Hilfe lassen sich einfach Zertifikate und CAs erstellen und auch signieren.

Für den üblichen Einsatz müssen daran jedoch noch ein paar kleine Änderungen vorgenommen werden: Die ausgelieferte Version des Skriptes CA.sh verschlüsselt nämlich die erzeugten Dateien. Das bedeutet aber auch, dass bei jedem Zugriff auf diese Dateien ein Passwort eingegeben werden muss. Besonders ungünstig wirkt sich das beim Neustart des LDAP Servers aus - denn der wartet in diesem Fall auf die Eingabe des Passworts bevor er seinen Dienst aufnehmen kann. Um solche Probleme zu vermeiden füft man einfach die Option -nodes (Anmerkung: steht für noDES, also keine Verschlüsselung und hat mit Nodes nichts zu tun) an zwei Stellen im Skript ein:

...
-newcert)
    # create a certificate
    $REQ -new -nodes -x509 -keyout newreq.pem -out newreq.pem $DAYS
    RET=$?
    echo "Certificate (and private key) is in newreq.pem"
    ;;
-newreq)
    # create a certificate request
    $REQ -new -nodes -keyout newreq.pem -out newreq.pem $DAYS
    RET=$?
    echo "Request (and private key) is in newreq.pem"
    ;;
...
	
linux ~# /usr/share/ssl/misc/CA.sh -newreq
Generating a 1024 bit RSA private key
.........................++++++
............++++++
writing new private key to 'newreq.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) [AU]:DE
State or Province Name (full name) [Some-State]:Germany
Locality Name (eg, city) []:Erlangen
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Linux Experts
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:mydomain.de
Email Address []:root@mydomain.de

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Request (and private key) is in newreq.pem
	

Hinter diesem Aufruf verbirgt sich eigentlich folgendes openssl Kommando:

linux ~# openssl req -new -nodes -keyout newreq.pem -out newreq.pem -days 365
	

Erzeugen einer Certificate Authority (CA):

linux ~# /usr/share/ssl/misc/CA.sh -newca
CA certificate filename (or enter to create)

Making CA certificate ...
Generating a 1024 bit RSA private key
..............++++++
...++++++
writing new private key to './demoCA/private/./cakey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
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) [AU]:DE
State or Province Name (full name) [Some-State]:Germany
Locality Name (eg, city) []:Erlangen
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Linux Experts
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:mydomain.de
Email Address []:root@mydomain.de
	

Auch in diesem Fall vereinfacht des Skript die Handhabung nur, openssl ist verrichtet nach wie vor die eigentlich Arbeit:

linux ~# openssl req -new -x509 -keyout demoCA/private/cakey.pem -out demoCA/cacert.pem -days 365
	

Während das Shell-Kommando den bnötigten Verzeichnisbaum automatisch erstellt,

demoCA/
demoCA/crl/
demoCA/certs/
demoCA/index.txt
demoCA/serial
demoCA/newcerts/
demoCA/cacert.pem
demoCA/private/
demoCA/private/cakey.pem
	

muss man diesen bei der Verwendung von openssl vorher selbst anlegen:

linux ~# mkdir demoCA
linux ~# mkdir demoCA/crl
linux ~# mkdir demoCA/certs
linux ~# mkdir demoCA/newcerts
linux ~# mkdir demoCA/private
linux ~# echo 01 > demoCA/serial
linux ~# touch demoCA/index.txt
	

Um die erzeugten Schlüssel von der CA signieren zu lassen, gibt man einfach folgendes ein:

linux ~# /usr/share/ssl/misc/CA.sh -sign
Using configuration from /etc/ssl/openssl.cnf
7596:error:0E06D06C:configuration file routines:NCONF_get_string:no value:conf_lib.c:329:group=CA_default name=unique_subject
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Dec 28 13:15:08 2004 GMT
            -nodes Not After : Dec 28 13:15:08 2005 GMT
        Subject:
            countryName               = DE
            stateOrProvinceName       = Germany
            localityName              = Erlangen
            organizationName          = Linux Experts
            commonName                = mydomain.de
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                E8:4E:30:B9:50:B3:F9:42:B5:78:BE:B9:73:0C:2F:7F:33:4D:59:D1
            X509v3 Authority Key Identifier:
                keyid:18:F9:51:EF:F4:12:39:AE:C9:7E:E5:AB:00:1A:16:4F:CF:1D:C9:34
                DirName:/C=DE/ST=Germany/L=Erlangen/O=Linux Experts/CN=mydomain.de
                serial:00

Certificate is to be certified until Dec 28 13:15:08 2005 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
        Signature Algorithm: md5WithRSAEncryption
        Issuer: C=DE, ST=Germany, L=Erlangen, O=Linux Experts, CN=mydomain.de
        Validity
            Not Before: Dec 28 13:15:08 2004 GMT
            Not After : Dec 28 13:15:08 2005 GMT
        Subject: C=DE, ST=Germany, L=Erlangen, O=Linux Experts, CN=mydomain.de
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:bd:f1:c8:71:89:f7:e8:a6:dd:a3:e5:b3:87:0e:
                    ca:9b:de:fb:14:ac:ee:83:3f:d3:cf:67:b7:a9:56:
                    6b:e2:60:7b:c7:32:cb:4b:59:97:6a:d7:8d:32:e5:
                    55:b2:28:4f:a2:8f:91:fa:2c:50:3a:95:a1:30:eb:
                    dd:23:d6:03:2f:43:62:8d:cb:20:55:34:a4:bb:74:
                    da:a2:14:5d:fd:8f:d1:23:96:20:69:2d:6d:7c:d9:
                    a3:20:f6:76:1b:ec:38:34:b1:e9:8f:96:eb:aa:2e:
                    c8:c3:bb:21:e8:f9:73:e9:52:18:7d:d8:8d:e1:93:
                    b6:a2:f2:5a:b2:44:97:d0:b1
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                E8:4E:30:B9:50:B3:F9:42:B5:78:BE:B9:73:0C:2F:7F:33:4D:59:D1
            X509v3 Authority Key Identifier:
                keyid:18:F9:51:EF:F4:12:39:AE:C9:7E:E5:AB:00:1A:16:4F:CF:1D:C9:34
                DirName:/C=DE/ST=Germany/L=Erlangen/O=Linux Experts/CN=mydomain.de
                serial:00

    Signature Algorithm: md5WithRSAEncryption
        2f:65:5c:e6:c3:5c:28:f8:ae:7b:29:c6:37:1a:7b:39:9e:3d:
        70:24:81:f0:36:56:b4:f8:e0:db:9f:5f:e8:da:ae:70:40:92:
        8b:58:6f:47:31:2a:fc:78:39:20:32:fd:f1:64:51:32:44:92:
        16:11:25:c5:de:74:25:53:c8:07:0d:6d:dc:63:7f:90:d5:14:
        15:09:46:77:84:f3:c9:17:61:80:c6:c9:b7:c0:07:ea:f7:78:
        3c:99:bf:db:42:67:95:33:fc:9c:7a:34:1f:ee:42:a6:5b:fc:
        68:24:4d:67:a4:17:99:ad:8f:75:e3:22:b1:37:ae:3b:df:19:
        7f:fc
-----BEGIN CERTIFICATE-----
MIIDPTCCAqagAwIBAgIBATANBgkqhkiG9w0BAQQFADBqMQswCQYDVQQGEwJERTEQ
MA4GA1UECBMHQmF2YXJpYTERMA8GA1UEBxMIRXJsYW5nZW4xFjAUBgNVBAoTDUxp
bnV4IEV4cGVydHMxHjAcBgNVBAMTFWVudGVycHJpc2UuZ2FsYXh5LmNvbTAeFw0w
NDEyMjgxMzE1MDhaFw0wNTEyMjgxMzE1MDhaMGoxCzAJBgNVBAYTAkRFMRAwDgYD
VQQIEwdCYXZhcmlhMREwDwYDVQQHEwhFcmxhbmdlbjEWMBQGA1UEChMNTGludXgg
RXhwZXJ0czEeMBwGA1UEAxMVZW50ZXJwcmlzZS5nYWxheHkuY29tMIGfMA0GCSqG
SIb3DQEBAQUAA4GNADCBiQKBgQC98chxiffopt2j5bOHDsqb3vsUrO6DP9PPZ7ep
VmviYHvHMstLWZdq140y5VWyKE+ij5H6LFA6laEw690j1gMvQ2KNyyBVNKS7dNqi
FF39j9EjliBpLW182aMg9nYb7Dg0semPluuqLsjDuyHo+XPpUhh92I3hk7ai8lqy
RJfQsQIDAQABo4HyMIHvMAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5T
U0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBToTjC5ULP5QrV4vrlz
DC9/M01Z0TCBlAYDVR0jBIGMMIGJgBQY+VHv9BI5rsl+5asAGhZPzx3JNKFupGww
ajELMAkGA1UEBhMCREUxEDAOBgNVBAgTB0JhdmFyaWExETAPBgNVBAcTCEVybGFu
Z2VuMRYwFAYDVQQKEw1MaW51eCBFeHBlcnRzMR4wHAYDVQQDExVlbnRlcnByaXNl
LmdhbGF4eS5jb22CAQAwDQYJKoZIhvcNAQEEBQADgYEAL2Vc5sNcKPiueynGNxp7
OZ49cCSB8DZWtPjg259f6NqucECSi1hvRzEq/Hg5IDL98WRRMkSSFhElxd50JVPI
Bw1t3GN/kNUUFQlGd4TzyRdhgMbJt8AH6vd4PJm/20JnlTP8nHo0H+5Cplv8aCRN
Z6QXma2PdeMisTeuO98Zf/w=
-----END CERTIFICATE-----
Signed certificate is in newcert.pem
	

Wie nicht anders zu erwarten verbirgt sich auch dahinter nichts anderes als ein Aufruf von openssl:

linux ~# openssl ca -policy policy_anything -out newcert.pem -infiles newreq.pem
	

Hinweise

Bei allen Optionen sollte man darauf achten, dass der Common Name dem Namen der realen DNS Domain der Server entspricht. Sonst kann es zu sehr eigenartigem Verhalten beim verschlüsselten Verbindungsaufbau kommen

Wer sich die lästige und fehleranfällige Tipparbeit ersparen möchte, der kann die entsprechenden Werte auch als Grundeinstellung in die Datei /etc/ssl/openssl.cnf eintragen. Während der Ausführung der openssl-Kommandos braucht man dann die Defaults nur noch mit Return zu bestätigen.

...
countryName_default             = DE
0.organizationName_default      = Linux Experts
localityName_default            = Erlangen
stateOrProvinceName_default     = Germany
organizationalUnitName_default  =
commonName_default              = mydomain.de
...
	

Einrichten des OpenLDAP Servers für sichere Verbindungen

Anschließend sollten die erzeugten Dateien noch passend benannt und an ihren Bestimmungsort kopiert werden:

linux ~# cp demoCA/cacert.pem /etc/ssl/certs/cacert.pem
linux ~# cp newkey.pem /etc/openldap/slapd_key.pem
linux ~# cp newcert.pem /etc/openldap/slapd_cert.pem
	

Danach können die Einstellungen für SSL Verbindungen des OpenLDAP Servers in der Datei /etc/openldap/slapd.conf eingetragen werden:

....
suffix          "dc=mydomain,dc=de"
rootdn          "cn=Manager,dc=mydomain,dc=de"
rootpw          {SSHA}a3okzqzds1RUD9V5qkqoeIVqSTtN9Un2
...
#Specify ciphers
TLSCipherSuite HIGH:MEDIUM:+SSLv2:+SSLv3
#TLS keyfile locations
TLSCACertificateFile  /etc/ssl/certs/cacert.pem
TLSCertificateFile    /etc/openldap/slapd_cert.pem
TLSCertificateKeyFile /etc/openldap/slapd_key.pem
...
	

Um das Passwort des LDAP Managers nicht unverschlüsselt ablegen zu müssen kann mit Hilfe des folgendes Kommandos einen Hash erzeugen:

linux ~# slappasswd
New password:
Re-enter new password:
{SSHA}a3okzqzds1RUD9V5qkqoeIVqSTtN9Un2
	

Zusätzlich sollte man den Zugriff auf den LDAP Server auch noch auf eine bestimmte Rechnergruppe einschränken, beispielsweise über den Portwrapper (/etc/hosts.allow):


...
slapd           :       192.168.0.0/255.255.255.0 127.0.0.1
...

Jetzt kann der LDAP Server gestartet werden.

Einrichten eines OpenLDAP Clients für sichere Verbindungen

Bei OpenLDAP Clients werden die Einstellungen entweder in /etc/openldap/ldap.conf, ldaprc im aktuellen Verzeichnis, oder .ldaprc im Home des Benutzers abgelegt. Um LDAP Verbindungen nur zu authorisierten LDAP Servern zuzulassen, kann man auf eine Überprüfung des (vom Server erhaltenen) SSL Zertifikates bestehen. Dazu ist es aber notwendig, das Zertifikat der zugehörigen CA zu besitzen:

TLS_REQCERT demand
TLS_CACERTDIR /etc/ssl/certs/
# alternativ auch nur ein spezielles Zertifikat
#TLS_CACERT /etc/ssl/certs/cacert.pem
	

Letzte Änderung: 13. Maerz 2012, Historie

zum Seitenanfang

Startseite | Kontakt | Impressum

RRZE - Regionales RechenZentrum Erlangen, Martensstraße 1, D-91058 Erlangen | Tel.: +49 9131 8527031 | Fax: +49 9131 302941

Inhaltenavigation

Zielgruppennavigation

  1. Studierende
  2. Beschäftigte
  3. Einrichtungen
  4. IT-Beauftragte
  5. Presse & Öffentlichkeit