Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:apache_http_server_centos_6_-_mod_ldap_-_ldap-authentifizierung

Apache HTTP Server CentOS 6 - mod_ldap - LDAP-Authentifizierung

Das Apache HTTP Server-Modul mod_ldap und mod_authnz_ldap sind i.d.R. bereits im Apache HTTP Server-RPM-Paket der meisten Linux-Distributionen enthalten.

Diese beiden Module

  • mod_ldap
  • mod_authnz_ldap

werden benötigt um den Zugriff auf einen LDAP-Server, hier in dieser Beschreibung der OpenLDAP, zu realisieren um z.B. im Einsatz in Kombination mit

  • .htaccess

Dateien Verwendung zu finden.

Eine Beschreibung zur Installation und den Einsatz von OpenLDAP unter CentOS ist ebenfalls hier in diesem DokuWiki unter –> LDAP CentOS 5 enthalten.

:!: WICHTIG - Um LDAPS TLS/SSL verwenden zu können wird eine eigene CA bzw. ein mind. Self-Signed-Certificate benötigt !!!

:!: HINWEIS - Zur Einrichtung einer eigenen CA sind Informationen in diesem DokuWiki unter –> Postfix TLS einsetzen enthalten.

LDAP

Im folgenden wird die Einrichtung eines Zugriffs auf einen LDAP-Server via DNS-Adresse und Port dargestellt. Folgende Rahmenbedingungen sollen dabei gegeben sein:

  • LDAP-Server-DNS: ldap.tachtler.net
  • Port: 389

Konfiguration: /etc/httpd/conf/httpd.conf

Nachfolgende Module müssen in der Konfigurationsdatei des Apache HTTP Server geladen werden, was in der Konfigurationsdatei

  • /etc/httpd/conf/httpd.conf

wie folgt konfiguriert werden muss (nur relevanter Ausschnitt):

...
#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
# Tachtler
# LDAP configuration
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
...

Konfiguration: /etc/httpd/conf.d/vhost.conf

Im Nachfolgenden wird ein einfacher vhost im Apache HTTP Server angelegt und eine Authentifizierung für das DocumentRoot dieses vhosts gegen LDAP realisiert.

Nachfolgende Konfigurationen sind in der Konfigurationsdatei

  • /etc/httpd/conf.d/vhost.conf

durchzuführen (nur relevanter Ausschnitt):

#
# tachtler.net
#
<VirtualHost *:80>
        ServerAdmin webmaster@tachtler.net
        ServerName tachtler.net
        ServerAlias www.tachtler.net
        ServerPath /
        DocumentRoot "/var/www/html"
        <Directory "/var/www/html">
                Options FollowSymLinks
                AllowOverride None
                # Tachtler - LDAP
                AuthType Basic
                AuthName "LDAP Zugriff"
                AuthBasicProvider ldap
                AuthzLDAPAuthoritative off
                AuthLDAPURL "ldap://ldap.tachtler.net:389/dc=tachtler,dc=net?uid"
                Require ldap-user klaus 
                # Next two lines for NON-Anonymous-BIND to LDAP-Server
                AuthLDAPBindDN "cn=Ersatzauthentifizierer,dc=tachtler,dc=net"
                AuthLDAPBindPassword "geheim"
                Order allow,deny
                Allow from all
        </Directory>
        DirectoryIndex index.html
        ErrorLog logs/error.log
        CustomLog logs/access.log combined
</VirtualHost>

:!: HINWEIS - Nachfolgende Zeilen

...
                AuthLDAPBindDN "cn=Ersatzauthentifizierer,dc=tachtler,dc=net"
                AuthLDAPBindPassword "geheim"
...
sind NUR erforderlich, wenn eine NON-Anonymous-LDAP-Server im Einsatz ist, d.h. keine unauthorisierten Anfragen gegen den LDAP-Server gestattet sind, sondern NUR Anfragen mit Authorisierung !!!

Neustart Apache HTTP Server

Ein erneuter oder erster Start des Apache HTTP Server mit folgenden Befehl für eine erstmaligen Start

# service httpd start
oder einen erneuten Start des Apache HTTP Server mit folgendem Befehl
# service httpd restart
macht die oben beschriebenen Konfigurationen für den Apache HTTP Server wirksam.

LDAPS

Im folgenden wird die Einrichtung eines Zugriffs auf einen LDAPS-Server via DNS-Adresse und Port dargestellt. Folgende Rahmenbedingungen sollen dabei gegeben sein:

  • LDAP-Server-DNS: ldap.tachtler.net
  • Port: 636

Konfiguration: /etc/httpd/conf/httpd.conf

Nachfolgende Module müssen in der Konfigurationsdatei des Apache HTTP Server geladen werden, was in der Konfigurationsdatei

  • /etc/httpd/conf/httpd.conf

wie folgt konfiguriert werden muss (nur relevanter Ausschnitt):

...
#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
# Tachtler
# LDAP and LDAPS configuration
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
# LDAPS extended configuration
LDAPTrustedGlobalCert CA_BASE64 /etc/pki/tls/certs/CAcert.pem
LDAPVerifyServerCert Off
...

LDAPTrustedGlobalCert CA_BASE64 /etc/pki/tls/certs/CAcert.pem

Definiert für den Apache HTTP Server

  • in welchem Format das ROOT-Zertifikat der CA (CertificateAuthority) vorliegt –> CA_BASE64
  • in welchem Speicherort im Dateisystem das ROOT-Zertifikat der CA (CertificateAuthority) vorliegt –> /etc/pki/tls/certs/CAcert.pem

LDAPVerifyServerCert Off

Definiert für den Apache HTTP Server

  • das keine Überprüfung des Self-Signed-Certificat erfolgt, da dieses ja „selbst signiert“ ist und von keiner „offiziellen“ CA ausgestellt bzw. signiert wurde
  • und verhindert so die Anlehnung des Zertifikats durch den Apache HTTP Server

Konfiguration: /etc/httpd/conf.d/vhost.conf

Im Nachfolgenden wird ein einfacher vhost im Apache HTTP Server angelegt und eine Authentifizierung für das DocumentRoot dieses vhosts gegen LDAPS realisiert.

Nachfolgende Konfigurationen sind in der Konfigurationsdatei

  • /etc/httpd/conf.d/vhost.conf

durchzuführen (nur relevanter Ausschnitt):

#
# tachtler.net
#
<VirtualHost *:80>
        ServerAdmin webmaster@tachtler.net
        ServerName tachtler.net
        ServerAlias www.tachtler.net
        ServerPath /
        DocumentRoot "/var/www/html"
        <Directory "/var/www/html">
                Options FollowSymLinks
                AllowOverride None
                # Tachtler - LDAPS
                AuthType Basic
                AuthName "LDAPS Zugriff"
                AuthBasicProvider ldap
                AuthzLDAPAuthoritative off
                AuthLDAPURL "ldaps://ldap.tachtler.net:636/dc=tachtler,dc=net?uid"
                Require ldap-user klaus 
                # Next two lines for NON-Anonymous-BIND to LDAP-Server
                AuthLDAPBindDN "cn=Ersatzauthentifizierer,dc=tachtler,dc=net"
                AuthLDAPBindPassword "geheim"
                Order allow,deny
                Allow from all
        </Directory>
        DirectoryIndex index.html
        ErrorLog logs/error.log
        CustomLog logs/access.log combined
</VirtualHost>

:!: HINWEIS - Nachfolgende Zeilen

...
                AuthLDAPBindDN "cn=Ersatzauthentifizierer,dc=tachtler,dc=net"
                AuthLDAPBindPassword "geheim"
...
sind NUR erforderlich, wenn eine NON-Anonymous-LDAPS-Server im Einsatz ist, d.h. keine unauthorisierten Anfragen gegen den LDAPS-Server gestattet sind, sondern NUR Anfragen mit Authorisierung !!!

Neustart Apache HTTP Server

Ein erneuter oder erster Start des Apache HTTP Server mit folgenden Befehl für eine erstmaligen Start

# service httpd start
oder einen erneuten Start des Apache HTTP Server mit folgendem Befehl
# service httpd restart
macht die oben beschriebenen Konfigurationen für den Apache HTTP Server wirksam.

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
tachtler/apache_http_server_centos_6_-_mod_ldap_-_ldap-authentifizierung.txt · Zuletzt geändert: 2014/11/25 16:14 von klaus