Apache2 Workshop Authentifizierung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „= Grundlagen = * Apache unterstützt verschiedene Methoden zur Authentifizierung von Benutzern. * Zu den häufigsten Methoden gehören ''Basic Authentication''…“) |
(kein Unterschied)
|
Version vom 14. März 2025, 20:11 Uhr
Grundlagen
- Apache unterstützt verschiedene Methoden zur Authentifizierung von Benutzern.
- Zu den häufigsten Methoden gehören Basic Authentication, Digest Authentication und die Integration mit LDAP oder Datenbanken.
- Die Authentifizierungsmechanismen werden meist über die .htaccess-Datei oder die Apache-Konfigurationsdateien gesteuert.
- Eine Authentifizierung kann mit einer Zugriffskontrolle kombiniert werden, um bestimmte Bereiche der Webseite zu schützen.
- Apache verwendet Module wie mod_auth_basic, mod_auth_digest oder mod_authnz_ldap zur Authentifizierung.
- Nach einer Änderung der Authentifizierungskonfiguration muss Apache neu geladen werden: systemctl reload apache2.
Authentifizierungsmethoden
- Basic Authentication ist die einfachste Methode, nutzt aber eine unverschlüsselte Übertragung der Zugangsdaten.
- Digest Authentication ist sicherer, da das Passwort nicht im Klartext gesendet wird.
- LDAP-Authentifizierung erlaubt die Nutzung zentral verwalteter Benutzerkonten.
- MySQL- oder SQLite-Authentifizierung ermöglicht eine datenbankgestützte Anmeldung.
- Externe Authentifizierungen wie Kerberos oder OAuth sind ebenfalls möglich.
Basic Authentication
Erstellen einer Passwortdatei
- htpasswd -c /etc/apache2/.htpasswd benutzername
- Danach wird das Passwort für den Benutzer gesetzt.
Konfiguration in Apache
- cat /etc/apache2/sites-available/secure-site.conf
<VirtualHost *:80>
ServerName secure.example.com
DocumentRoot /var/www/secure
<Directory /var/www/secure>
AuthType Basic
AuthName "Geschützter Bereich"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
</VirtualHost>
Aktivieren und Testen
- a2ensite secure-site
- systemctl reload apache2
- Beim Aufruf der Seite wird nun eine Anmeldung verlangt.
Digest Authentication
- Diese Methode ist sicherer als Basic Authentication.
Passwortdatei erstellen
- htdigest -c /etc/apache2/.htdigest geschuetzter_bereich benutzername
Apache-Konfiguration
- cat /etc/apache2/sites-available/secure-digest.conf
<VirtualHost *:80>
ServerName digest.example.com
DocumentRoot /var/www/digest
<Directory /var/www/digest>
AuthType Digest
AuthName "Geschuetzter Bereich"
AuthUserFile /etc/apache2/.htdigest
Require valid-user
</Directory>
</VirtualHost>
Aktivieren und Testen
- a2ensite secure-digest
- systemctl reload apache2
- Digest Authentication funktioniert nur mit kompatiblen Clients.
LDAP-Authentifizierung
- Apache kann Benutzer gegen einen LDAP-Server authentifizieren.
Apache-Modul aktivieren
- a2enmod authnz_ldap
Konfiguration
- cat /etc/apache2/sites-available/secure-ldap.conf
<VirtualHost *:80>
ServerName ldap.example.com
DocumentRoot /var/www/ldap
<Directory /var/www/ldap>
AuthType Basic
AuthName "LDAP Geschuetzter Bereich"
AuthBasicProvider ldap
AuthLDAPURL "ldap://ldap.example.com/ou=users,dc=example,dc=com?uid?sub?(objectClass=person)"
Require valid-user
</Directory>
</VirtualHost>
Aktivieren und Testen
- a2ensite secure-ldap
- systemctl reload apache2
- Benutzer müssen im LDAP-Server existieren.
MySQL-Authentifizierung
- Apache kann Benutzer gegen eine MySQL-Datenbank authentifizieren.
Apache-Modul aktivieren
- a2enmod authn_dbd
Konfiguration
- cat /etc/apache2/sites-available/secure-mysql.conf
<VirtualHost *:80>
ServerName mysql.example.com
DocumentRoot /var/www/mysql
<Directory /var/www/mysql>
AuthType Basic
AuthName "MySQL Geschuetzter Bereich"
AuthBasicProvider dbd
AuthDBDUserPWQuery "SELECT password FROM users WHERE username = %s"
Require valid-user
</Directory>
</VirtualHost>
Aktivieren und Testen
- a2ensite secure-mysql
- systemctl reload apache2
- Benutzer und Passwörter müssen in der MySQL-Datenbank hinterlegt sein.
Aufgaben
- Erstelle eine Basic Authentication für eine neue Domain secure.it1XX.int.
- Nutze Digest Authentication für digest.it1XX.int.
- Richte eine LDAP-Authentifizierung für ldap.it1XX.int ein.
- Teste die Authentifizierung mit verschiedenen Clients.