Apache vHost mit PAM-Authentifizierung (HTTPS)
Zur Navigation springen
Zur Suche springen
Apache PAM-Authentifizierung unter Debian 12/13
- Diese Anleitung aktiviert PAM-Login (Linux-Benutzer) für Apache mittels pwauth.
- Debian 12/13 nutzt journald – keine /var/log/auth.log mehr.
Pakete installieren
- apt -y install libapache2-mod-authnz-external pwauth
Modul aktivieren
- a2enmod authnz_external
- systemctl restart apache2
Verzeichnis für die geschützte Seite
- mkdir -p /var/www/vpn
Testseite
- vi /var/www/vpn/index.html
<html> <body> <p style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;"> Test Page for PAM Auth </p> </body> </html>
Apache-Konfiguration mit PAM
- vi /etc/apache2/sites-available/vpn.echt-jetzt.de.conf
<VirtualHost *:443>
ServerName vpn.echt-jetzt.de
DocumentRoot /var/www/vpn
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/echt-jetzt.de/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/echt-jetzt.de/privkey.pem
AddExternalAuth pwauth /usr/sbin/pwauth
SetExternalAuthMethod pwauth pipe
<Directory /var/www/vpn>
SSLRequireSSL
AuthType Basic
AuthName "PAM Authentication"
AuthBasicProvider external
AuthExternal pwauth
require valid-user
</Directory>
ErrorLog ${APACHE_LOG_DIR}/vpn_error.log
CustomLog ${APACHE_LOG_DIR}/vpn_access.log combined
</VirtualHost>
Site aktivieren
- a2ensite vpn.echt-jetzt.de.conf
- systemctl reload apache2
Funktionstest
- Benutzer ist ein normaler Linux-Account
- curl -u BENUTZER:PASSWORT https://vpn.echt-jetzt.de/
Debugging unter Debian 12/13 (journald)
- pwauth schreibt NICHT nach /var/log/auth.log
- journalctl -u apache2 -e
- journalctl -e | grep -E "pam|pwauth"
Manuelles Prüfen eines PAM-Logins
- pamtester apache BENUTZER authenticate
Rechte prüfen
- pwauth muss root gehören, setuid root
- ls -l /usr/sbin/pwauth