Der Webserverpark im ZIV
1
ca. 90 Min.
Rainer Perske
Westfälische Wilhelms-Universität
Zentrum für Informationsverarbeitung
Röntgenstraße 7-13
48149 Münster
perske@uni-muenster.de
+49 251 83 31582 (fon)
+49 251 83 31555 (fax)
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
2
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
3
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
4
Dynamisch generierte Inhalte für alle Infoanbieter
Weitgehende Konfigurierbarkeit durch alle Infoanbieter
Skalierbarkeit und Performanz
Ausfallsicherheit und Stabilität
Einfaches Management
Erweiterbarkeit und Anpassungsfähigkeit - schon etliche Male bewiesen
Sicherheit - Datensicherheit, Datenschutz, Schadensbegrenzung
Neu: Single Sign On
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
5
Zu unterscheiden:
URLs (WWW-Adressen)
Verzeichnisbasiert:
http://www.uni-muenster.de/NAME/
http://www.wwu.de/NAME/
https://www.uni-muenster.de/NAME/
https://sso.uni-muenster.de/NAME/
https://xsso.uni-muenster.de/NAME/
https://ssso.uni-muenster.de/NAME/
Hostbasiert:
http://NAME.uni-muenster.de/
http://www.NAME.uni-muenster.de/
https://NAME.uni-muenster.de/ (nur in Ausnahmefällen)
https://www.NAME.uni-muenster.de/ (nur in Ausnahmefällen)
Domainbasiert:
http://www.NAME.TLD/ (kostenpflichtig)
https://www.NAME.TLD/ (nur in Ausnahmefällen)
Realisierungen
Webspace (Backend-Server und Plattenplatz im Webserverpark)
normalerweise dedizierte VirtualHosts, ausnahmsweise (LearnWeb)
dedizierte Apache-Prozessgruppen
jeweils auf mehreren Backend-Servern parallel
Redirect (Umleitung durch Frontend-Server auf andere Adresse)
Reverse Proxy (Backend-Server und Plattenplatz auf
Institutsrechnern, z. B. mit privaten IP-Adressen)
mit oder ohne Lastverteilung
Alle Kombinationen möglich
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
6
Zugriffsrechte hängen an Nutzergruppen
Manuell gepflegte Bereiche: X0infoXX
Imperia-gepflegte Bereiche: X6XXXXXX
Antrag G durch für Finanzmittel Verantwortliche zwingend erforderlich
Bei gemischten Webspaces reicht ein Antrag für beide Gruppen
Keine Kostenberechnung (außer Fremddomains oder Terabytes)
Ausfüllhilfe:
Titel/Thema der Arbeit: Infoanbieter „Name des
Projekts“
Ressourcen: Rechner: Webserverpark
Falls Imperia-gepflegt: Ressourcen: Software: Imperia
Falls manuell gepflegt: Ressourcen: Software: SSH / Samba
Finanzierungsart: immer WWU, auch bei Drittmittelprojekten
Bitte immer vorher mit uns absprechen!
Ansprechpartner: R. Perske (manuelle Webspaces), W. Kaspar oder Online-Redaktion (Imperia-Webspaces)
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
7
Einrichtung auf Zuruf (Telefon, E-Mail)
Nur durch Verantwortliche
Nutzergruppenleiter von Infoanbietergruppen
technisch Verantwortliche von Webservern
Online-Redaktion
usw.
Nur Einzelfälle, keine Massen
Bitte immer mit uns absprechen! - Ansprechpartner: R. Perske
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
8
Verzeichnisbasiert: http://www.uni-muenster.de/NAME/ usw.
Grundsätzlich keine Dreibuchstabenkürzel
Grundsätzlich keine Begriffe, auf die mehrere Stellen Anspruch erheben könnten
Bei Bedenken und über Ausnahmen entscheidet Online-Redaktion i. A. des Rektorats
Hostbasiert: http://NAME.uni-muenster.de/ usw.
Es gelten (nur) die allgemeinen Regeln für Rechnernamen in der WWU
Domainbasiert: http://www.NAME.TLD/ usw.
Es gelten die einschlägigen Gesetze und dienstrechtlichen Vorschriften
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
9
Nutzergruppe muss bereits eingerichtet sein
Alles weitere läuft auf Zuruf per Telefon oder E-Mail
Vereinbarung der URL
Einrichtung des Webspaces (Plattenplatz, Backend- und Frontend-Server)
Weitere Wünsche, z. B. MySQL-Datenbank, Software usw.
Plattenplatzquote (anfänglich 1 GB) erhöhen
Bitte lassen Sie sich durch uns beraten!
Schon vielen Nutzern haben wir viele unnötige Arbeit ersparen können.
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
10
Zugreifbar unter mehreren Webadressen:
http://www.uni-muenster.de/NAME/ - ungeschützt
http://www.wwu.de/NAME/ - für Visitenkarten,
Veröffentlichungen
https://www.uni-muenster.de/NAME/ - abhörsicher
https://sso.uni-muenster.de/NAME/ - Single Sign On (Passwort)
https://xsso.uni-muenster.de/NAME/ - Single Sign On (Zertifikat)
https://ssso.uni-muenster.de/NAME/ - Single Sign On
(Shibboleth)
Frontends agieren als Reverse Proxy mit Lastverteilung auf verschiedene zivwebNN:
http://www.uni-muenster.de/NAME/
http://www.wwu.de/NAME/
→ http://zivwebNN.uni-muenster.de:1NNNN/NAME/
https://www.uni-muenster.de/NAME/
→ https://zivwebNN.uni-muenster.de:2NNNN/NAME/
https://sso.uni-muenster.de/NAME/
https://xsso.uni-muenster.de/NAME/
https://ssso.uni-muenster.de/NAME/
→ https://zivwebNN.uni-muenster.de:3NNNN/NAME/
Jeder Infoanbieter hat ein eigenes NNNN auf mehreren zivwebNN
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
11
NAME.uni-muenster.de oder www.NAME.TLD als Webspace
Kein Imperia
Kein Single Sign On
HTTPS nur in Ausnahmefällen
www.NAME.TLD kostenpflichtig und unerwünscht (Corporate Identity)
Verzeichnisbaum /www/data/NAME/ - daher nur falls keine Kollision
Redirects (Umleitungen) und Reverse Proxys
uni-muenster.de/NAME → irgendwas
NAME.uni-muenster.de → irgendwas
www.NAME.TLD → irgendwas (kostenpflichtig, aber als Umleitung erwünscht)
Pfade bleiben: www.NAME.TLD/ABC/DEF → irgendwas/ABC/DEF
Gerne als Kombination
Redirect: http://NAME.uni-muenster.de/ → http://www.uni-muenster.de/NAME/
Webspace: http://www.uni-muenster.de/NAME/
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
12
SSH: upload.uni-muenster.de:/www/data/NAME/
Login als: username
Authentifizierung mittels SSH-Public-Keys (über MeinZIV
hochgeladen)
SMB: \\upload.uni-muenster.de\www\NAME\
Login als: uni-muenster\username
Authentifizierung mittels Active Directory
Imperia: https://imperia.uni-muenster.de/imperia/
Login als: username
Authentifizierung mittels Imperia-Passwörtern
Verzeichnisbaum:
/www/data/NAME/ - Wurzelverzeichnis, nur für Infoanbietergruppe
zugreifbar
/www/data/NAME/htdocs/ - »Document Root« (kaum nutzbar)
/www/data/NAME/htdocs/NAME/ - alle angebotenen Inhalte
/www/data/NAME/imperialive/NAME/ - (R/O) per Imperia freigeschaltete
Inhalte
/www/data/NAME/home/USER/ - Unix-Homeverzeichnis (.bashrc,
SSH-Schlüssel)
/www/data/NAME/XYZ/ - frei für Installations- und
Arbeitsdateien
/www/data/NAME/sessions/ - empfohlen für Sitzungsdateien (nicht
/tmp/ verwenden!)
/www/data/NAME.logs/ - Error-Logdateien (live)
Einbindung von Imperia-Bereich (Datei, Verzeichnisbaum) per SSH
durch
ln -sfn /www/data/NAME/imperialive/NAME/BEREICH
/www/data/NAME/htdocs/NAME/BEREICH
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
13
Alle Dateien: R/W by Owner, R/W by Group, R/O by Other!
Sonst kann der Apache nicht zugreifen
(dieser läuft
teils als User=apache
, teils als
User=XinfoXX
)
Das Wurzelverzeichnis verhindert unbefugte Zugriffe:
Owner=apache
, Group=X0infoXX
,
Mode=dr-xrws---
Zugriffsrechte werden bei Schreibzugriff via SMB erzwungen, bei SSH leider nicht
Notfalls reparieren: /www/bin/repairwebspace NAME (oder mit MeinZIV)
Innerhalb eines Webspaces keine Rechte-Differenzierung!
Schreibzugriff hängt an Mitgliedschaft in Nutzergruppe
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
14
upload.uni-muenster.de
Einzige Login-Methode: Public-Key-Authentifizierung
Public Key wird mit MeinZIV auf Server abgelegt
Unix-Home (mit .bashrc, .ssh/authorized_keys) liegt im Webspace
Nicht als persönliche Ablage gedacht!
Nach einmaliger Überwindung der Einstiegshürde genauso simpel bedienbar wie übliche FTP-Software
Linux/Mac-Software: OpenSSH (ssh, scp usw.)
Windows-Software 1: PuTTY plus Filezilla
Windows-Software 2: SSH Secure Shell Client
oder jede andere SSH-Software
Ausführliche Anleitungen für obige Programme im WWW
Demo: SSH-Zugang mit PuTTY+Filezilla einrichten
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
15
\\upload.uni-muenster.de\www (entspricht /www/data/)
Anmelden als uni-muenster\username
Erzwingt automatisch richtige Dateisystemzugriffsrechte
Dafür keine Kommandozeile und keine Symlinks
Achtung bei Steuerdateien .htaccess usw.: CR+LF → LF umwandeln!
Nur aus dem lokalen Netz (oder mit VPN)
Deshalb vielleicht doch besser SSH verwenden? Sie haben die Wahl.
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
16
Zugriff auf TSM-Backup (nur per SSH):
restore [-inactive] [-pick] dateiname [neuerdateiname]
(erspart Angabe von -errorlogname=... und -asnode=zivweb)
Zugriff auf Original-Logdateien und einfache Auswertungen:
https://mein-ziv.uni-muenster.de/wwwstat/
Zugriffshäufigkeiten (offen)
Original-Logdateien (geschützt)
Anonymisierung durch Abrufer nach Auswertung gesetzlich vorgeschrieben!
Hinweise auf tatsächlich benutzte kaputte Links (geschützt)
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
17
Steuerdateien:
.htaccess für http://www.uni-muenster.de
.htsslaccess für https://www.uni-muenster.de
.htssoaccess für https://sso.uni-muenster.de u. a. SSO
Fallback, falls eine Datei nicht existiert
.htaccess.imperia für https://imperia.uni-muenster.de
(Imperia-Vorschau, beschränkte Einstellmöglichkeiten)
WWW-Zugriffsrechte (s. u.)
Dateinamen von Titelseiten
Eigene Fehlermeldungsseiten
Eigene Umleitungen
Server Side Includes (welche Dateien werden ge-parse-t?)
Zuordnungen
Dateiendungen - MIME-Typen
Dateiendungen - Apache-Handler (CGI, PHP, As-is, ...)
z. B.: AddHandler cgi-script pl
u. v. a. m.
Unix-Zeilenenden (LF), keine Windows-Zeilenenden (CR+LF)
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
18
Nicht zu verwechseln mit Dateisystem-Zugriffsrechten
Von Zugangskontrolle per IP-Adresse wird abgeraten.
funktioniert wegen Reverse Proxy auch anders als üblich
Zugangskontrolle per Identitätsnachweis, allgemeiner Fall:
http://www.uni-muenster.de/NNN/ABC/
Kein Zugang, Umleiten zu SSO
https://www.uni-muenster.de/NNN/ABC/
Zugang für Gäste mit manuell vergebenem Gastpasswort
(Auch für Vorlesungsskript-Passwörter o.ä.)
https://sso.uni-muenster.de/NNN/ABC/
https://xsso.uni-muenster.de/NNN/ABC/ usw.
Zugang mit ZIV-Nutzerkennung und Passwort/Zertifikat/usw.
Verteilung mit offener Vorschaltseite (unnötig falls nur ZIV-Nutzer oder nur Gäste)
Verschiedene Alternativen siehe im WWW
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
19
Datei .htaccess
RedirectPermanent / https://www.uni-muenster.de/
Hier steckt die Umschaltung auf »Login erforderlich«!
Datei .htsslaccess
AuthName "Nur fuer eingeladene Gaeste"
AuthType Basic
AuthBasicProvider file
AuthUserFile /www/data/NNN/gastzugaenge
Require valid-user
/www/data/NNN/gastzugaenge enthält manuell vergebene Nutzer und Passwörter
Datei .htssoaccess
AuthName "Nur fuer zweifelsfrei der WWU Angehoerige"
AuthTypeBasic
AuthBasicProvider dbm
AuthDBMUserFile /www/data/usersso
AuthDBMGroupFile /www/data/groups
Require group gruppe gruppe nutzer nutzer
pseudogruppe pseudogruppe
Niemals Require user ... oder Require valid-user verwenden!
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
20
Ausschließlich für WWW-Autorisierung verfügbar
Nicht in WWU-Benutzerverwaltung, sondern algorithmisch hergeleitet:
an=uni=sicher
zweifelsfrei der
WWU Angehörige*
an=uni=unsicher
wahrscheinlich
der WWU Angehörige
an=uni=stud
Student(in)*
an=uni=mitarb
wiss. oder
nichtwiss. Mitarbeiter(in)*
an=uni=whk
wiss. Hilfskraft*
an=uni=shk
stud. Hilfskraft*
an=uni=lehr
Lehrbeauftragte(r)*
an=uni=emerit
Emeritus/a*
sys=pc-urz
Zugang zu den PC-Pools
(Domäne uni-muenster)
sys=cms-imperia
Zugang zu
Imperia
sys=ras-wwu
Zugang zu den
Einwahlzugängen
sys=intro-wwu
Darf Intro-Karte
bekommen
any=p0
, any=q0
,
any=r0
Mitglied einer Nutzer p0*
,
q0*
, r0*
usw. (* = laut Verwaltungsdaten)
Weitere (Pseudo-) Gruppen bei Bedarf - Fragen Sie uns!
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
21
Schutz gegen Amok: Keine normalen Cron-Jobs
Daily-Skripte
/www/data/NNN/cron/daily
wird täglich kurz nach 3 Uhr aufgerufen
Häufigere Aktionen
/www/data/NNN/cron/XYZ.loop
Skripte werden alle 5 Minuten ausgeführt
Aber nur, wenn seit mehr als 5 Minuten beendet
→ nicht mehrere gleichzeitig, maximal alle 10 Minuten
Für seltenere Ausführung: Am Ende: sleep
$((NNN-600))
stündlich: sleep 3000
; zweistündlich:
sleep 6600
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
22
In verzeichnisbasierten Webspaces (www.uni-muenster.de/NNN/)
wegen der verschiedenen URLs:
niemals: <a href="http://www.uni-muenster.de/AAA/BBB/CCC">
sondern: <a href="/AAA/BBB/CCC">
niemals: <img src="http://www.uni-muenster.de/AAA/BBB/CCC">
sondern: <img src="/AAA/BBB/CCC">
niemals: <a href="https://sso.uni-muenster.de/perMail">
sondern: <a href="/perMail/"> (mit Schrägstrich!)
schreiben!
Dann funktionieren Links, Bilder und Medien auch mit HTTPS und Single Sign On
(Kein Secure-Insecure-Mix oder Wechsel der Authentifizierungsmethode mehr)
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
23
Apache-Handler
*.php wird mit PHP-Interpreter ausgeführt (zzt. PHP 5.3)
*.cgi wird als CGI-Program ausgeführt
Bei Skripten: Hash-Bang-Zeile nötig
Ausführen von *.pl als Perl-Programm:
Erste Zeile: #!/usr/bin/perl (mit LF, nicht CR+LF!)
AddHandler cgi-script pl (in .htaccess & Co.)
Anfragen werden willkürlich auf Server verteilt
Gemeinsames Dateiesystem /www/data/
Sitzungsdaten daher nicht in /tmp/
PHP: ini_set('session.save_path','/www/data/NNN/sessions');
E-Mail-Versand: Envelope-Absender angeben!
PHP: mail($to,$subj,$msg,'','-f user@uni-muenster.de')
Login-Username (auch Single Sign On)
PHP: $_SERVER['REDIRECT_REMOTE_USER']
andere: Umgebungsvariable REMOTE_USER
Abgesprochene Attribute in REMOTE_ATTR
Eigene Kontrolle auf Zugehörigkeit zu (Pseudo-) Gruppe:
PHP: require_once('/www/data/groups.php'); if(is_array($groups)) if(is_array($groups[$user])) if(in_array($grp,$groups[$user])) ...
andere: /www/data/groups.txt lesen
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
24
Bei erheblichen Problemen wird auf das Notfallsystem umgeschaltet
Dort laufen keine Skripte oder Handler (PHP, CGI)
(wohl aber Server Side Includes)
Bei Zugriff auf Skripte: ErrSOS.html
Falls andere Seite erwünscht:
Zu Datei XYZ.php eine Notfalldatei XYZ.php-sos.html anlegen.
Zu Datei XYZ.cgi eine Notfalldatei XYZ.cgi-sos.html anlegen.
Beliebiger HTML-Inhalt nach Wahl (aber kein Server Side Include)
Notfallsystem schaut bei Skripten nach solchen Notfalldateien
Rainer Perske, 16.02.2011
Der Webserverpark im ZIV
25
Vielen Dank für Ihre Aufmerksamkeit!
Haben Sie noch Fragen?
Was darf ich Ihnen vorführen?
http://www.uni-muenster.de/ZIV/Technik/WWW/
Rainer Perske, 16.02.2011
© 2011 Rainer Perske und Universität Münster