Authentifizieren Sie sich in Apache über das Systemkonto

7

Derzeit muss sich mein Apache-Server über eine aus htpasswd erstellte Kennwortdatei authentifizieren. Als solches konfiguriert:

AuthType Basic
AuthName "Secured Site"
AuthUserFile "/etc/apache2/users.passwd"

Wie kann ich dies ändern, um mich über lokale Systemkonten zu authentifizieren und mich zusätzlich nur auf eine Teilmenge lokaler Systemkonten in einer bestimmten Gruppe zu beschränken?

Mark Roddy
quelle

Antworten:

7

Wie von David Z vorgeschlagen, können Sie mod-authnz-external verwenden. Verwenden Sie es zum Beispiel mit pwauth .

Wenn Sie Debian oder ein Derivat ausführen:

apt-get install libapache2-mod-authnz-external pwauth
a2enmod authnz_external

Fügen Sie in Ihrer Konfiguration hinzu

<IfModule mod_authnz_external.c>
  AddExternalAuth pwauth /usr/sbin/pwauth
  SetExternalAuthMethod pwauth pipe
</IfModule>

Und im Abschnitt Verzeichnis oder in Ihrer .htaccess-Datei:

    AuthType Basic
    AuthName "Login"
    AuthBasicProvider external
    AuthExternal pwauth
    Require valid-user
    # or
    # Require user jules jim ...

Laden Sie abschließend die Konfiguration mit apache2ctl restartoder neu service apache2 reload.

Siehe auch diese Dokumentation .

mivk
quelle
1
In INSTALL , Abschnitt "KONFIGURATION" -> "Konfigurieren des externen Authentifikators" -> "Für externe Authentifizierungsprogramme": AddExternalAuthund SetExternalAuthMethodsind Syntaxbefehle alten Stils. Die neue Syntax verwendet nur einen Befehl : DefineExternalAuth pwauth pipe /usr/sbin/pwauth.
Sierra Detdetil
Stellen Sie für alle Benutzer pwauthsicher, dass die pwauthBinärdatei über Setuid-Berechtigungen verfügt! Sie können dies mit diesem Befehl tun : chmod u+s /usr/bin/pwauth. Wenn Apache aufruft pwauthund keine Setuid-Berechtigungen festgelegt sind, 1wird immer der Statuscode (unbekannt) zurückgegeben. bugs.launchpad.net/ubuntu/+source/pwauth/+bug/579846
Elliot B.
3

Sie möchten wahrscheinlich so etwas untersuchen mod_auth_pam. PAM ist das "Pluggable Authentication Module" -System und der Standard-Anmeldemechanismus für Linux (ich nehme an, dies ist Linux) basiert auf PAM, um seine Authentifizierung durchzuführen.

Eine andere Option ist mod_authnz_external, die direkt auf die /etc/shadowDatei schaut , um Konten zu authentifizieren.

EDIT : Anscheinend mod_auth_pamwird (leider) nicht mehr gepflegt, also mod_authnz_externalwäre vielleicht eine bessere Wahl ...

David Z.
quelle
2

Das Apache-Modul mod_auth_pamerledigt genau dies für Sie. Sie aktivieren das Modul und die Konfigurationsdatei sollte ungefähr so ​​aussehen

AuthType Basic
AuthName "secure area"
require group staff
require user webmaster

Und du bist fertig.

zwei
quelle
Das Modul, mit dem Sie verknüpft sind, scheint für Apache 1.3 oder 2.0 konzipiert zu sein. blog.thirsch.de/2007/02/21/… gibt Hinweise, wie es funktioniert.
David Pashley