Willkommen auf mgaa.de

Vorwort

In dieser Anleitung wird umrissen, wie man das Pluggable Authentication Module (PAM) zur Authentifizierung kennwortgeschützter Seiten einsetzen kann.

Alle Ausführungen beziehen sich auf die eingesetzte Linux-Distribution von SuSe 9.1 Pro. Man kann davon ausgehen, daß dieses Kochrezept auch auf andere Versionsstände von SuSe aber auch auf andere Distributionen anwendbar ist.

Dieses Rezept ist nicht vollausführlich, sondern setzt Kenntnisse und insbesondere die installierten Pakete von PAM und Apache 2.0 voraus. Wem es hilft, dem möge gedient sein. Wenn es nicht hilft, muß sich der Hilfesuchende nach anderen, grundlegenderen Quellen umtun.

1. Ausgangspunkt

Wir nehmen SuSe 9.1 und haben folgende Pakete installiert:

Top

2. Hilfsmittel

Der Apache Web-Server wird mit einem eigenen Authentifizierungsverfahren ausgeliefert. Die Realisierung dieses Verfahrens ist für den Apache 2.0 in der Dokumentation von apache.org beschrieben.

Möchte man die Authentifizierung mittels PAM (Pluggable Authentication Module) realisieren, so muß ein zusätzliches Modul installiert werden. Dieses Modul findet man zusammen mit einer knappen Beschreibung der Installation hier: http://pam.sourceforge.net/mod_auth_pam/.

Man benötigt zur Installation aus der SuSe 9.1 Distribution die Pakete "apache2-devel" und "pam-devel". Beide gelten als Entwicklerpakete. Ersteres benötigt man, um das Programm apxs bzw. apxs2 zur Verfügung zu haben, welches die Übersetzung von "mod_auth_pam" zu einem Apache DSO (dynamic shared object) übernimmt. Eben zu dieser Übersetzung wird ein Header-File (security/pam_appl.h) aus dem zweiten Paket benötigt.

Top

3. Installation

Im Makefile ist apxs durch apxs2 (für den Apache 2.0) zu ersetzen, damit alles reibungslos abläuft.

Dann wie in der Installationsbeschreibung mit make und make install installieren.

Es müssen die Apache-Konfiguratiosndateien wie folgt angepaßt werden:

  1. /etc/sysconfig/apache2

    APACHE_MODULES muß um mod_auth_pam und mod_auth_sys_group ergänzt werden.

  2. /etc/apache2/httpd.conf bzw. httpd.conf.local
    (eben die verwendete Konfigurationsdatei)

    # authenticated access directories (Beispiel)
    <Directory /srv/www/htdocs/beispiel>
    AuthPAM_Enabled on
    AuthType Basic
    AuthName "Protected Area"
    Require group <group-name>
    Require user <user-name>
    </Directory>

Bei Änderung der /etc/sysconfig/apache2 muß mit rcapache2 restart der Server neu gestartet werden. apache2ctl restart reicht dazu nicht aus, da offenbar die Eintragsänderungen in /etc/sysconfig/apache2 nicht berücksichtigt werden. Wird nur die httpd.conf geändert genügt apache2ctl restart.

Mit der Installation ist /etc/pam.d/httpd angelegt worden, womit PAM gesteuert wird. Die Einstellungen in dieser Datei sind nach den eigenen Vorstellungen anzupassen.

Standard ist die Unix-Authentifizierung mit pam_unix.so. Das funktioniert i.d.R. jedoch nicht, weil der Apache keine Rechte besitzt, um die shadow-Datei zu lesen. Zur Lösung gibt es zwei Möglichkeiten:

  1. Den Nutzer von Apache (dürfte unter SuSe standardmäßig wwwrun sein) der shadow-Gruppe zuordnen.

    Hierdurch wird die Systemsicherheit jedoch herabgesetzt. (Achtung: Auf keinen Fall darf die shadow-Datei world-readable gesetzt werden!)

  2. Einen anderen Authentifizierungsmechanismus verwenden.

    (Ein passender wurde allerdings noch nicht gefunden.)

Top

Links:
Apache http://www.apache.org
PAM http://www.kernel.org/pub/linux/libs/pam
mod_auth_pam http://pam.sourceforge.net/mod_auth_pam/