Erweiterter Verzeichnisschutz
Diese Anleitung hilft Ihnen, Verzeichnisse und Dateien Ihrer persönlichen Webseite bzw. Webseite für Organisationseinheiten mit erweiterten Methoden vor unerwünschtem Zugriff zu schützen.
Um Verzeichnisse vor unbefugten Zugriffen zu schützen, steht Ihnen die Datei .htaccess zur Verfügung. Ein Modul namens AuthGeneric erlaubt den Zugriff auf ein Verzeichnis über die zentrale NutzerInnendatenbank.
Folgende Beispiele illustrieren, welche Einträge dazu in der Datei .htaccess erforderlich sind. Diese Methoden ein Verzeichnis zu schützen, stehen Ihnen auf all unseren Webservern zur Verfügung.
Hinweis
Wenn Sie nur einen einfachen Passwortschutz für einen Ordner einrichten möchten, lesen Sie in der Anleitung Verzeichnisschutz nach.
Zugriff für u:account-UserIDs erlauben
AuthName "Zugriff nur mit u:account"
AuthType Basic
PerlAuthenHandler AuthGeneric
PerlSetVar PermitUnet yes
PerlSetVar PermitMailbox yes
PerlSetVar Services INFO
require valid-user
Mindestens eines von PermitUnet
(Zugriff für Studierende) oder PermitMailbox
(Zugriff für Mitarbeiter*innen) muss vorhanden sein, sonst wird niemandem der Zugriff erlaubt.
Erklärung
AuthName "Universitätsintern - Zutritt nur für berechtigte u:account-UserIDs"
- Frei wählbarer Text, der über der Passwortabfrage erscheintAuthType Basic
– zwingende AngabePerlAuthenHandler AuthGeneric
– zwingende AngabePerlSetVar PermitUnet yes
– allen u:accounts für Studierende Zugriff erlaubenPerlSetVar PermitMailbox yes
– allen u:ccounts für Mitarbeiter*innen Zugriff erlaubenPerlSetVar Services INFO
– allen u:accounts für Gäste Zugriff erlauben (nur in Verbindung mitPermitMailbox yes
)require valid-user
– zwingende Angabe
Zugriff für u:account-UserIDs einer Liste erlauben
AuthName "Nur Berechtigte"
AuthType Basic
PerlAuthenHandler AuthGeneric
PerlSetVar PermitMailbox yes
PerlSetVar Userlist /u/www/pugilist/.htuser
PerlSetVar Services INFO
require valid-user
Die Datei /u/www/Name/.htuser
muss unbedingt innerhalb des html-Verzeichnisses liegen und enthält eine Liste von u:account-UserIDs (eine UserID pro Zeile, aber ohne Passwort!). Beispiel:
hohhoh8
pugilis5
srbm5
horvatk2
Dann können nur diese u:account-UserIDs mit ihren u:account-Passwörtern auf das Verzeichnis zugreifen.
Methoden kombinieren
Manchmal ist es notwendig, dass verschiedene NutzerInnengruppen auf eine passwortgeschützte Seite zugreifen können – beispielsweise Studierende mit ihrer u:account-UserID, aber auch externe Vortragende, die über keinen u:account verfügen.
Das folgende Beispiel einer .htaccess-Datei zeigt die die notwendigen Eintragungen:
AuthName "Nur ich und sonst niemand"
AuthType Basic require valid-user
# Zugriff für Studierende
PerlAuthenHandler AuthGeneric
PerlSetVar PermitUnet Yes
PerlSetVar TryAuthUserFile Yes
# Zugriff für Externe
AuthUserFile /u/home/<Name>/.htpasswd
Durch die Zeile PerlSetVar TryAuthUserFile Yes
wird bewirkt, dass das Modul AuthGeneric
bei unbekannten UserIDs keine Fehlermeldung erzeugt, sondern die Authentifizierung an den Mechanismus für das AuthUserFile
weitergibt.
Daraus ergibt sich, dass die UserIDs im AuthUserFile
nicht mit einer gültigen u:account-UserID übereinstimmen dürfen.
URLs via mod_rewrite umschreiben
Wenn in einer .htaccess-Datei mod_rewrite
oder ein Redirect
verwendet wird, so ist der Localpart der URL anzugeben, das heißt der Teil hinter https://www.univie.ac.at
. Weiters muss bei Verwendung von mod_rewrite
immer die RewriteBase
in der Form RewriteBase /URL-Teil/
angegeben werden.
Beispiel 1
Das Institut für Pugilistik hat einen Account pugi und eine Webseite, die unter https://www.univie.ac.at/pugilistik/
erreichbar ist. Dort hat sich die HTML -Datei alteseite.html geändert in neueseite.html.
RewriteEngine On
RewriteBase /pugilistik/
# Für Studierende: /u:account-UserID/
# Für MitarbeiterInnen: /vorname.nachname/
RewriteRule ^alteseite\.html$ neueseite.html [R=301,L]
Obiges Skript bewirkt eine Umschreibung des URL-Teils alteseite.html
in neueseite.html
.
Beispiel 2
Der ursprüngliche HTML -Dateiname soll in der URL als Parameter mitgegeben werden. Dies kann dann beispielsweise von einem Skript ausgewertet werden.
RewriteEngine On
RewriteBase /zufallr0/
RewriteRule ^(.*)\.html$ ?q=$1 [R=301,L]
Dadurch wird irgendwas.html
zu ?q=irgendwas
.
URLs mittels Redirect weiterleiten
Wenn in einer .htaccess-Datei Anfragen mittels Redirect
weitergeleitet werden, muss der URL-Teil (hier im Beispiel pugilistik
) angegeben werden.
RedirectPermanent /pugilistik/alteseite.html https://pugi.univie.ac.at