Wer als WWW-Autor Dokumente verfasst, möchte auch, dass diese gelesen werden. Deswegen lautet die Standard-Zugriffsregel: "WWW-Dokumente sind von überall und durch jedermann lesbar". Nun gibt es aber auch Inhalte, die nur einer bestimmten Leserschaft zugänglich sein sollen. Dies kann ein WWW-Autor bestimmen:
Hinweis: Die gegenwärtig zur Verfügung stehenden
Sicherheitsmechanismen sind nur als geringer Schutz anzusehen. Sollen vertrauliche Daten
übertragen werden, oder ist ein Passwortschutz gewünscht, sollte
"Secure HTTP"
(www.tu-chemnitz.de/urz/www/https.html) zum Einsatz kommen.
Sehr sensible Daten sollten
entweder gar nicht via WWW bereitgestellt oder anderweitig geeignet verschlüsselt
werden!
Der WWW-Zugriffsschutz erfolgt im Normalfall verzeichnisweise (d.h. für alle Dateien in einem
Verzeichnis). Man kann aber auch gezielt einzelne Dateien schützen - siehe
Beispiel. Zur Formulierung der Zugriffsrechte schreibt man unten angegebene Anweisungen in
die Datei .htaccess. Diese Anweisungen gelten dann für dieses
Verzeichnis und für alle evtuellen Unterverzeichnisse.
Die im folgenden beschriebenen Anweisungen gelten für die zentralen WWW-Server der TU:
www.tu-chemnitz.de, www-user.tu-chemnitz.de und
www-usercgi.tu-chemnitz.de.
Zu beachten ist hier, dass diese Variante auf dem Domain Name System beruht und nicht 100% sicher ist.
Order Deny,AllowDeny from all oderDeny from host ...Allow from all oderAllow from host ...Order legt die Reihenfolge der Auswertung der folgenden Anweisungen fest.
Deny dient zum Verweigern des Zugriffs, Allow zum Erlauben.
all meint alle Rechner im Internet, als host ist angebbar:
vollständiger Rechnername, teilweiser Domainname (.domain.name), vollständige
oder teilweise IP-Adresse. Man kann auch mehrere angeben - durch Leerzeichen trennen. Die
Angabe von Mustern (mit *) ist nicht möglich.
Standard: Allow from all
.htaccess-Datei
im Verzeichnis enthält:Order Deny,Allow
Deny from all
Allow from .informatik.tu-chemnitz.de
.hrz.tu-chemnitz.de Hier ist zu beachten, dass bei normalen Zugriffen via http das Passwort unverschlüsselt übertragen wird. Für manche Anwendungen mag das akzeptabel sein, für viele ist es sicher bedenklich (insbesondere wenn man das URZ-Kennzeichen + Passwort verwendet). Hier sollte unbedingt https zum Einsatz kommen, wodurch die Daten verschlüsselt übertragen werden.
Auf derart geschützte Seiten erhält man nur Zugang durch Eingabe seines URZ-Kennzeichens und des dazugehörigen "Zugangs-Passwortes".
SSLRequireSSLAuthName "URZ-Kennzeichen + Passwort"AuthType BasicAuthDBMUserFile /www/auth/urzpasswd.dbmAuthDBMGroupFile /www/auth/urzpasswd.dbmRequire user name ... oder Require group name ... oderRequire valid-user
Mit SSLRequireSSL verbieten Sie den unverschlüsselten Zugriff, d.h.
die geschützten Dokumente müssen mit https://www.tu-chemnitz.de/...
(nicht http://www...) adressiert werden.
Als AuthName wird ein beliebiger Name verwendet, der dem Nutzer bei der Abfrage von Namen
+ Passwort angezeigt wird.
Mit Require gibt man schließlich an, welche Benutzer Zugriff haben sollen:
Require valid-userRequire user nutzer1 nutzer2 ...Require group gruppetu-studenten - Studenten der TU Chemnitztu-mitarbeiter - Mitarbeiter der TU Chemnitzurz-mitarbeiter - Mitarbeiter des URZ
.htaccess-Datei im Verzeichnis enthält:SSLRequireSSL
AuthName "URZ-Kennzeichen + Passwort"
AuthType Basic
AuthDBMUserFile /www/auth/urzpasswd.dbm
AuthDBMGroupFile /www/auth/urzpasswd.dbm
Require group tu-mitarbeiter tu-studenten
AuthName "geschützter Bereich"AuthType BasicAuthUserFile vollst. DateinameAuthGroupFile vollst. DateinameRequire user name ... oderRequire user name ... oderRequire valid-user
Als AuthName wird ein Name verwendet, der dem Nutzer bei der Abfrage von
Namen + Passwort angezeigt wird. Hinter
AuthUserFile wird ein vollständiger Dateiname angegeben, der die Namen
und Passwörter enthält in der Form:
Name:verschlüsseltes-Passwort
htpasswd:htpasswd pw-filename www-namehtpasswd -c pw-filename www-name
Sie können alternativ auch das WWW-Formular
http://www.tu-chemnitz.de/urz/www/htpasswd.php
verwenden. Dies erzeugt aus Ihren Eingaben eine Zeile, die Sie in eine entsprechende
Passwort-Datei übernehmen können.
In einem AuthGroupFile können Gruppen von Namen (aus dem AuthUserFile) vereinbart werden:
Gruppe: name1 name2 name3 ...
Achtung: Auf diese Dateien sollte kein Zugriff über den
WWW-Server möglich sein. Sie sollten also nicht unter public_html
liegen! Allerdings muss die Datei für den WWW-Server lesbar sein, s.u.
AFS-Rechte.
Mit Require gibt man schließlich an, welchen Namen (Require user name ... - aus dem AuthUserFile) bzw. Gruppen (Require group name ... - aus dem AuthGroupFile) der Zugriff erlaubt wird. Man kann mehrere Namen oder Gruppen angeben, durch Leerzeichen getrennt. Mit Require valid-user erlaube ich allen in AuthUserFile eingetragenen Nutzern den Zugriff.
Rum und das Passwort topf:
Die .htaccess-Datei im Verzeichnis enthält:AuthName "Geistvolles Getränk"
AuthType Basic
AuthUserFile /afs/tu-chemnitz.de/home/urz/f/fri/test/hickpasswd
Require user Rumunix> htpasswd -c
/afs/tu-chemnitz.de/home/urz/f/fri/test/hickpasswd Rum
Adding password for Rum.
New password: topf
Re-type new password: topf
Password for Rum changed..htaccess-Datei im
Verzeichnis enthält:Satisfy any
AuthName "URZ"
AuthType Basic
AuthDBMUserFile /www/auth/urzpasswd.dbm
Require valid-user
Order Deny,Allow
Deny from all
Allow from .tu-chemnitz.de
.htaccess-Datei im Verzeichnis
enthält:AuthName "URZ"
AuthType Basic
AuthDBMUserFile /www/auth/urzpasswd.dbm
Require valid-user
Order Deny,Allow
Deny from all
Allow from .de .atDie Authentisierung ist sehr ähnlich der Variante 2 "Verwendung des URZ-Nutzerkennzeichens + Passwortes". Allerdings wird hier das AFS-Passwort verlangt. Außerdem kann festgelegt werden, dass die Anfrage mit den AFS-Rechten des authentisierten Benutzers abgearbeitet wird. Dies ist sinnvoll für besondere Anwendungen, bei denen Daten via WWW (CGI oder PHP) von Berechtigten (z.B. Mitglieder einer Arbeitsgruppe) geschrieben werden sollen, andere Benutzer aber keinen Schreibzugriff erhalten sollen. Dazu müssen alle Berechtigte ein gültiges URZ-Nutzerkennzeichen besitzen.
SSLRequireSSL
AuthName "URZ-Kennzeichen + AFS-Passwort"
AuthType Basic
AuthPAM_Enabled on
AuthPAM_SetCred on
Require user name ...
SSLRequireSSL verbietet den unverschlüsselten Zugriff. AuthPAM_Enabled on erzwingt die AFS-Authentisierung, die Angabe eines AuthUserFile entfällt. AuthPAM_SetCred on erzwingt das Setzen des AFS-Tokens (der AFS-Berechtigung) für den authentisierten Nutzer. Wird dies weggelassen, läuft die Anfrage normal mit den Rechten des WWW-Servers. Mit Require user zählt man das oder die berechtigte(n) Nutzerkennzeichen auf. Die Angabe von Gruppen ist momentan nicht möglich.
.htaccess-Datei im Verzeichnis enthält:SSLRequireSSL
AuthName "URZ"
AuthType Basic
AuthPAM_Enabled on
AuthPAM_SetCred on
Require valid-user<Files filename>...
</Files>* und
? sind auch einfache Muster möglich, z.B.
*.html - alle HTML-Dateien.<Files ~ "regulärer
Ausdruck">...
</Files>".+\.(html|htm)$" - alle
Dateien, die auf .html oder .htm enden..htaccess-Datei im Verzeichnis
enthält:<Files intern.html>
# gilt nur für die Datei intern.html
Order Deny,Allow
Deny from all
Allow from .tu-chemnitz.de
</Files>
<Files ~ ".+\.(jpg|gif)$">
# ist ein regulärer Ausdruck:
# gilt für alle Dateien mit .gif und .jpg
am Ende
Order Deny,Allow
Deny from all
Allow from .hrz.tu-chemnitz.de
</Files>Neben der Zugriffskontrolle via WWW muss auch an den Zugriffsschutz im Dateisystem gedacht werden. Da die WWW-Daten im AFS-Dateisystem liegen, sind die Rechte wie folgt zu setzen (diese Rechte gelten dann für alle Dateien im Verzeichnis):
| Lesen für alle | Lesen nur für WWW-Server | |
|---|---|---|
| Kontrollieren mit Unix-Kommando: fs la . |
system:anyuser rl |
www-server rl |
| Einstellen mit Unix-Kommando: | fs sa . system:anyuser rl |
fs sa . system:anyuser none |
Damit der WWW-Server selbst Zugriff auf die Daten hat, muss die AFS-Gruppe
www-server immer Read- und List-Rechte haben.
Zum Kontrollieren und Einstellen der AFS-Rechte können Sie auch den WFM-Datei-Manager via
https://login.tu-chemnitz.de/wfm/
benutzen (siehe Beitrag in dieser Ausgabe).
Weitere Informationen:
Hinweise für HTML-Autoren
http://www.tu-chemnitz.de/urz/www/html-autoren.html#apache
| Frank Richter, 31. Juli 2001 |