Linux als SOHO-Server
für Linux- und Windows-Clients |
Kapitel:
|
Manchmal ist es notwendig auf einen Web-Server vertrauliche Dokumente abzulegen, auf die nur bestimmte Benutzer bzw. Benutzergruppen zugreifen sollen. Reicht die Beschränkung auf Rechner oder Rechnergruppen nicht aus, so sollte man vom Benutzer eine Authentifizierung anfordern. Bei der Authentifizierung wird dem Benutzer ein Dialog angeboten, indem er seinen Benutzernamen und Kennwort eingeben muss:
Das genaue Aussehen dieses Fensters hängt vom Client-Betriebssystem und dem verwendeten Browser ab. Erst nach richtiger Eingabe der Werte wird der Zugriff auf ein Verzeichnis gestattet., indem sich die vertraulichen Daten befinden. Zu erwähnen ist, dass diese Art der Authentifizierung auf ein Protokoll basiert, dass nur einen einfachen Schutz bietet und nicht für geschäftliche Transaktionen geeignet ist. In Verlauf dieser Seite werden zwei Methoden einer solchen Authentifizierung anhand von Beispielen vorgestellt. Dabei wird zunächst die Authentifizierung in die Apache-Konfigurationsdateien eingebaut. Weiterhin wird die Authentifizierung mittels so genannter .htaccess-Dateien vorgestellt. Authentifizierungs-TypenUnter Apache finden zwei Authentifizierungs-Typen Anwendung, das sind die Typen 'Basic' und 'Digest'. Beim Typ 'Basic' werden die Daten zur Authentifizierung in Klarschrift übertragen (base64-codiert), beim Type 'Digest' hingegen findet eine verschlüsselte Übermittlung statt (MD5-verschlüsselt). Für den Type 'Basic' ist das Modul 'mod_auth_basic' bzw. für 'Digest' das Modul 'mod_auth_digest' zuständig. Unter Debian können die Module bequem mit dem Kommando: 'a2enmod' bzw. 'a2dismod' aktiviert/deaktiviert werden. Bei der Grundinstallation von Debian ist das Modul 'mod_auth_basic' bereits standardmäßig aktiviert, soll hingegen der Type 'Digest' genutzt werden, so ist das Modul zu laden. Hier der Beispiel-Aufruf zum Laden des Modules 'mod_auth_digest':
Nach der Aktivieren von Modulen ist ein Neuladen des Apaches notwendig:
Im weiteren Verlauf dieser Seite wird nur auf dem Typ 'Basic' zur Authentifizierung eingegangen. Authentifizierung mittels Apache-KonfigurationsdateiUm z.B. unterhalb der URL: 'http://<web-server>/auth_dir' vertrauliche Daten abzulegen, muss dem Apache-Server mitgeteilt werden, dass eine Authentifizierung anfordern werden soll. Eine Möglichkeit zu diesem Zweck ist das Arbeiten mit Directory-Direktiven. In der Konfigurationsdatei brauch nur eine neue Block hierfür erzeugt werden. Innerhalb der Directory-Direktiven kann dann die Authentifizierungen eingefügt werden:
In der ersten Zeile wird das zu sichernde Verzeichnis angegeben
(grüne Markierung).
so bekämen andere Benutzer keinen Zugriff, auch wenn sich ihr Benutzername und Passwort in der angegeben Passwort-Datei befinden. Als nächstes ist die Passwortdatei anzulegen, dies geschieht mit dem Programm: 'htpasswd', dass im Verzeichnis: '/etc/bin/' enthalten ist. Hier ein Beispiel-Dialog zum Anlegen der Datei mit dem Benutzer: 'linux':
Nach Aufruf von: 'htpasswd' ist das Passwort zweimal einzugeben. Das Programm 'htpasswd' ist nur beim ersten Erzeugen der Passwortdatei mit der Option '-c' aufzurufen. Sollen weitere Benutzer hinzugefügt werden, so ist 'htpasswd' ohne die Option '-c' aufzurufen; eine bereits bestehende Passwortdatei würde sonst überschrieben. Hier der Inhalt einer Passwortdatei:
Jede Zeile in der Datei definiert eine Benutzername/Passwort-Kombination. Es wird zuerst der Benutzername angegeben, gefolgt von einem Doppelpunkt. Um einen Benutzer zu löschen, sollte er einfach mittels Editors aus der Datei entfernt werden. Des weiteren eine Beispiel-Gruppendatei:
Eine Gruppendatei kann mit einen einfachen Text-Editor angelegt werden. Eine Gruppe wird definiert durch den Namen der Gruppe, gefolgt von einem Doppelpunkt und dann einer Anzahl von Benutzernamen derjenigen Anwender, die der Gruppe zugeordnet werden sollen. Die bei der Gruppendefinition angegebenen Benutzernamen müssen sich in der Passwortdatei wieder finden. Nach dem Implementieren der Authentifizierung ist der Apache-Server neu zu starten. Beim Zugriff auf einen gesicherten Bereich, sollte nun eine Benutzername/Passwort-Abfrage kommen. Authentifizierung mittels .htaccess-Datei Anstatt die Authentifizierung starr in der Apache-Konfigurationsdatei
einzubauen, kann sie auch in Form einer so genannten
.htaccess-Datei erfolgen.
Der Vorteil hierbei ist, es können auch Web-Benutzer, die keinen Zugriff auf die
Konfigurationsdateien des Apaches haben, so Teile ihres Webs schützen.
Damit Apache .htaccess-Dateien unterstützt, muss der Direktive: 'AccessFileName'
gesetzt sein. Auch können andere Dateinamen als: '.htaccess' an dieser Stelle
gewählt werden. Um nun ein Verzeichnis und alle darunter liegenden Verzeichnisse zu schützen, muss jetzt nur eine .htaccess-Datei in das zu schützende Verzeichnis abgelegt werden. Hierzu ein Beispiel wie ein solcher Schutz aussehen kann:
Die Datei ist ähnlich aufgebaut wie oben beschrieben (vgl. Authentifizierung mittels Apache-Konfigurationsdatei). Weiterhin sind die Dateien: '.htaccess' und '.htgroup' daneben abzulegen. Auch hier gilt das Gleiche wie schon oben beschreiben. Alle Dateien können mit einen normalen Text-Editor bearbeitet werden.
AnmerkungenDie Benutzer, Gruppen und Passwörter haben nichts mit denen des Linux-Systems zu tun. Der Benutzername zur Authentifizierung kann und sollte vom Linux-Benutzernamen abweichen. Bei Fehlermeldungen kann die Ursache hierfür in der Datei: '/var/log/httpd.error_log' auf dem Server gefunden werden. Man sollte .htaccess-Dateien nach Möglichkeit vermeiden. Jede Konfiguration einer .htaccess-Datei kann genau so gut innerhalb der einer Hauptkonfigurationsdateien des Web-Servers realisiert werden. Die Gründe hierfür sind Performance und allgemeine Sicherheit. Weitere Infos
letzte Änderung: 26. Januar 2008 |
Copyright © 2004 Norbert Eusterholz |