{{tag>apache lml3 lml4}} ====== Zugriffsgeschützte Webverzeichnisse ====== Der Webserver kennt die Möglichkeit, Verzeichnisse vor dem öffentlichen Zugriff zu schützen. Die entsprechenden Direktiven kann man in der globalen Konfigurationsdatei verwenden, alternativ kann man aber einfach in dem zu schützenden Verzeichnis eine Datei namens .htaccess anlegen. ==== Beispiel einer .htaccess für die LML 3.0 ==== Der Inhalt einer einfachen .htaccess besteht aus wenigen Direktiven: # Prototyp einer .htaccess für die LML 3.0 AuthType Basic AuthName "Nur für Lehrer" require group lehrer Man sollte zusätzlich die Datei vor unbefugten Veränderungen schützen: chown www-data:www-data .htaccess chmod 0600 .htaccess ==== Beispiel einer .htaccess für die LML 4.0 ==== **Achtung: Ab der LML 4.0.5 muss LDAPS verwendet werde, siehe unten!** Bei der LML 4.0 muss die Authentifizierung gegen LDAP erfolgen, wodurch die Datei ein wenig anders aussieht: # Prototyp einer .htaccess für die LML 4.0 AuthType Basic AuthName "Interner Bereich" AuthBasicProvider ldap AuthLDAPUrl ldap://10.16.1.1/dc=linuxmuster,dc=local?uid AuthLDAPGroupAttributeIsDN off AuthLDAPGroupAttribute memberUid Require ldap-group cn=teachers,ou=groups,dc=linuxmuster,dc=local Das ''dc=linuxmuster,dc=local'' muss man an seine eigene BASEDN (bei der LML die Domain) anpassen. Die korrekten Daten kann man zum Beispiel der ersten Zeile der Ausgabe von ''smbldap-groupshow teachers'' entnehmen. Achtung: Für die Gruppe ''teachers'' benötigt man eine aktuelle Version der Musterlösung! Man kann auch die numerische gid verwenden: AuthName "Vertretungsplan/Lehrer" AuthType Basic AuthBasicProvider ldap AuthzLDAPAuthoritative off AuthLDAPURL ldap://10.16.1.1/dc=linuxmuster,dc=local?uid Require ldap-attribute gidNumber=10000 Das obige Beispiel ist für die Lehrer: ''gid=10000(teachers)'' Man kann auch mehrere ''Require''-Zeilen kombinieren, zum Beispiel für eine Klasse mit der ''gid=10002'' und alle Lehrer: Require ldap-attribute gidNumber=10000 Require ldap-attribute gidNumber=10002 Hier noch ein Beispiel für Einzelnutzer: AuthType Basic AuthName "Service" AuthBasicProvider ldap AuthzLDAPAuthoritative off AuthLdapURL "ldap://127.0.0.1/ou=accounts,dc=linuxmuster,dc=local?uid" Require ldap-user mueller maier administrator Und ein letztes Beispiel, bei dem jeder User im System Zugriff erhält (insbesondere alle Schüler und Lehrer): AuthType Basic AuthName "Service" AuthBasicProvider ldap AuthzLDAPAuthoritative off AuthLdapURL "ldap://127.0.0.1/ou=accounts,dc=linuxmuster,dc=local?uid" Require valid-user Auch hier gilt: ''dc=linuxmuster,dc=local'' ist die BASEDN des LDAP und muss entsprechend angepasst werden. Man findet sie in der Datei ''/etc/ldap/ldap.conf'' oder in der Ausgabe von ''smbldap-groupshow teachers''. === LDAPS verwenden (ab LML 4.0.5 zwingend) === Ab der Version 4.0.5 der LML nimmt der LDAP nur noch verschlüsselte Anfragen entgegen. Man muss deshalb bei den ''AuthLdapURL'' Direktiven das LDAPS-Protokoll angeben, zum Beispiel: AuthLDAPUrl ldaps://10.16.1.1/dc=linuxmuster,dc=local?uid Wer selbstsignierte Zertifikate verwendet (das ist in der Standardkonfigration der Fall!), muss noch das Überprüfen der Zertifikate unterbinden. Dazu setzt man in der Serverkonfiguration die Option ''LDAPVerifyServerCert'' auf ''Off''. In der Standardkonfiguration fügt man dazu etwa in der Datei ''/etc/apache2/sites-enabled/000-default'' ganz am Anfang diese Option ein: # modified by linuxmuster-base-1.3.1 LDAPVerifyServerCert Off NameVirtualHost * ... Danach lädt man noch die Apache-Konfiguration neu: ''/etc/init.d/apache2 reload'' Nicht vergessen: Die Datei ''/etc/apache2/sites-enabled/000-default'' kann bei einem Update überschrieben werden! Wer sich auskennt, richtet sich deshalb besser einen eigenen VirtualHost ein, dann ist man gegen Überraschungen gefeit.