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.
Wir nehmen SuSe 9.1 und haben folgende Pakete installiert:
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.
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:
/etc/sysconfig/apache2
APACHE_MODULES
muß um
mod_auth_pam
und mod_auth_sys_group
ergänzt werden./etc/apache2/httpd.conf
bzw. httpd.conf.local
# 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:
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/