- Hosting

Transcription

- Hosting
Dokumentation
Kunden Dokumentation
Verizon Business stellt Ihnen sämtliche Informationen zu Ihrem Hosting-Produkt online zur Verfügung. Eine
PDF-Version steht ebenfalls zur Verfügung: Download
Most of the documentation is also available in English. Just switch the language on the right upper menu.
1. Allgemeine Beschreibung
Diese Dokumentation gibt Ihnen Antworten auf allgemeine Fragen zu Ihrem speziellen Hosting-Produkt. Sie
umfasst technische Informationen, Vorschläge und Tipps. Von hier aus werden Sie zu den spezifischen
Dokumenten mit detaillierten Anleitungen zur Behebung von Problemen, auf die Sie stoßen können, geleitet.
2. Produkte
Eine erste Übersicht über die allgemeinen Features unserer Unix-basierten Produkte Verizon Shared Hosting Unix
und Verizon Dedicated Server Unix sowie über die allgemeinen Features für Verizon Dedicated Server auf
Windows-Basis bzw. für Verizon Shared Hosting Windows finden sie in folgenden Dokumenten:
Verizon Shared Hosting und Verizon Dedicated Server auf Unix-Basis
Verizon Shared Hosting und Verizon Dedicated Server auf Windows-Basis
3. Service
Darüber hinaus stellt Verizon Business Dokumentationen zu ergänzenden, technischen Funktionen und Themen
(z.B. Datensicherung) zur Verfügung, die produktunabhängig sind. Einen Überblick über diese Themen erhalten
Sie hier.
4. Kontakt
Falls Sie noch weitere Informationen wünschen oder Fragen haben, nehmen Sie bitte mit uns Kontakt auf.
Dokumentation
1
Dokumentation
Generelle Informationen
Nachfolgend erhalten Sie einen Überblick über weiterführende Dokumente zu Themen, die produktunabhängig
sind.
1. Datensicherung
Jeder Server verfügt über ein Sicherungssystem für seine Daten. Das Backup-Dokument beschreibt, wie Verizon
Business die Sicherung der Daten auf Ihrem Server durchführt.
2. Sicherheitslösungen
Sie erwarten geschützte Datenübertragung und sicheren Zugriff auf Ihre Daten. Der Sicherheitsstandard unserer
Hosting-Produkte ist sehr hoch. Das Dokument über Sicherheitslösungen erläutert die verschiedenen Optionen, mit
denen sich der Sicherheitsstandard sogar noch weiter optimieren lässt.
3. SSL-Datenblatt
Wie Sie ein SSL-Zertifikat für einen Webserver bestellen und das zugehörige Datenblatt richtig ausfüllen, erfahren
Sie hier.
4. Datentransfer Accounting
Die Abrechnung unserer Hosting-Produkte erfolgt auf Basis des Datentransfers. Das Dokument zum
Netflow-Accounting erklärt den technischen Hintergrund des Abrechnungsprozesses. Es erläutert außerdem das
Format der aggregierten Daten und der Rohdaten, die auf Anfrage verfügbar sind.
Dokumentation
2
Dokumentation
Secure Socket Layer (SSL)
Dieses Dokument gibt einen Einblick in die Funktionsweise von SSL, beschreibt grundlegende
Verschlüsselungsverfahren dieses Protokolls und erklärt einige Begriffe, die im Zusammenhang mit SSL häufig
genutzt werden. Darüber hinaus werden einige übliche Vorgehensweisen beschrieben sowie verschiedene Tipps
zur Konfiguration und Verwendung gegeben.
1. Allgemeine Beschreibung
Der Transport und das Routing der Daten im Internet wird vom TCP/IP-Protokoll geregelt. Der gesamte auf diesem
Protokoll basierende Verkehr kann von jedermann während des Übertragungsprozesses zwischen Client und
Server abgefangen werden. Das SSL-Protokoll, ursprünglich von Netscape entwickelt, liegt über der
TCP/IP-Schicht und unterhalb der Protokolle höherer Schichten wie HTTP oder POP3. Die SSL-Schicht setzt sich
aus zwei Unterschichten zusammen,
1. dem SSL-Record-Protokoll und
2. dem SSL-Handshake-Protokoll.
Beide Schichten werden oft zu einer "SSL-Schicht" summiert und sind für die TCP/IP- und Anwendungsprotokolle
transparent. Weder die Anwendungs- noch die TCP/IP-Protokolle nehmen die Arbeit der SSL-Schicht wahr, so
dass keinerlei Änderungen an den Schichten über und unter der SSL-Schicht erforderlich sind um SSL einsetzen
zu können.
Das SSL-Protokoll befindet sich zwischen dem TCP/IP-Protokoll und Protokollen höherer Schichten
Um die SSL-Verschlüsselung richtig verstehen zu können, müssen zunächst einige wichtige Begriffe geklärt
werden.
1. 1. Symmetrische Verschlüsselung
Die symmetrische Verschlüsselung, im Englischen auch "Secret-Key-Encryption" genannt, basiert auf nur einem
Schlüssel, der zum Ver- bzw. Entschlüsseln verwendet wird. Diese Technik ist sehr schnell. Wird jedoch der
genutze Schlüssel bekannt, liegt die gesamte Kommunikation zwischen Client und Server offen. Verbreitete
Beispiele für symmetrische Verschlüsselungen sind Blowfish, DES, RC4 und RC5.
1. 2. Asymmetrische Verschlüsselung
Dieser Technik, im Englischen auch "Public-Key-Encryption" genannt, liegen zwei Schlüssel zugrunde, ein
öffentlicher und ein privater. Der öffentliche Schlüssel wird dem Client zur Verfügung gestellt. Bei Verwendung von
SSL zur Absicherung des HTTP-Protokolls muss der öffentliche Schlüssel vom Server an den Browser
weitergegeben werden. Die mit diesem Schlüssel verschlüsselten Daten können nur mit dem privaten Schlüssel
des Servers entschlüsselt werden. Der private Schlüssel ist vom öffentlichen Schlüssel in einer endlichen
Zeitspanne nicht ermittelbar. Dies macht das Verfahren sicher, allerdings auch langsamer als die symmetrische
Verschlüsselung. Einige geläufige Beispiele für die asymmetrische Verschlüsselung sind RSA, DSS, Diffie-Hellman
und El Gamal.
Dokumentation
3
Dokumentation
1. 3. Message Digests
Digitale Fingerabdrücke, im Englischen "Message-Digests" (etwa: Zusammenfassung einer Nachricht) genannt,
sind spezielle Einweg-Hashes (nicht rückwärts zu berechnende Algorithmen), die über einem Dokument gebildet
werden und eine eindeutige Prüfsumme ergeben. Mit dieser Technik wird gewährleistet, dass sich sämtliche Daten
im Urzustand befinden. Wurden während der Übertragung Änderungen vorgenommen, ist die Prüfsumme stets
abweichend.
1. 4. Digitale Signaturen
Mit digitalen Signaturen wird überprüft, ob die Daten vom richtigen Urheber kommen. Bei diesem Vorgang werden
der Message-Digest sowie einige andere benutzerspezifische Daten mit dem privaten Schlüssel des Benutzers
verschlüsselt. Die entstandene Signatur kann nur mit dem öffentlichen Schlüssel desselben Benutzers
entschlüsselt werden. Durch die Umkehr der Schlüssel kann die Identität des Urhebers sichergestellt werden, da
nur er über seinen eigenen privaten Schlüssel verfügt.
1. 5. Zertifikate
Bei Zertifikaten handelt es sich um "elektronische Ausweise" der Server. Sie enthalten den öffentlichen Schlüssel
des Servers, die Seriennummer und Gültigkeitsdauer des Zertifikats, den Domainnamen des Servers und des
Zertifikat-Herausgebers sowie die digitale Signatur des Zertifikat-Herausgebers. Das Format ist im internationalen
Standard ITU-T X.509 definiert und jede Anwendung, die ebenfalls mit diesem Standard arbeitet, kann derartige
Zertifikate lesen und schreiben.
SSL basiert auf den oben beschriebenen Techniken und ist völlig unabhängig von irgendwelchen
Anwendungsprogrammen. Es kann zusammen mit vielen verschiedenen Protokollen wie HTTP, FTP oder POP3
eingesetzt werden. Am häufigsten werden Zertifikate in Zusammenhang mit HTTP verwendet. Aus historischen
Gründen und aufgrund von Exportbeschränkungen der US-Regierung für kryptografische Technologien gibt es
zwei verschiedene Schlüssellängen: 40 und 128 Bit. Für beide Versionen existieren unterschiedliche Zertifikate.
2. Benutzung
Jede mit SSL verschlüsselte Übertragung beginnt mit dem "SSL-Handshake". Während dieser Phase authentifiziert
sich der Server gegenüber dem Client unter Verwendung einer asymmetrischen Verschlüsselung, anschließend
generieren Client und Server gemeinsam einen symmetrischen Sitzungsschlüssel. Wahlweise ermöglicht der
Handshake auch dem Client, sich gegenüber dem Server zu authentifizieren. Bevor der Server sein Zertifikat an
den Client sendet, muss der Client während der sogenannten "Hello-Phase" dem Server mitteilen, welche
Verschlüsselungstechniken er einsetzen kann. Anschließend schickt er diese Informationen zusammen mit der
SSL-Versionsnummer und einigen zufällig generierten Daten zum Server. Der Server wählt eine öffentliche
Schlüsseltechnik, eine private Schlüsseltechnik und einen Hash-Algorithmus und sendet dies zusammen mit der
verwendeten SSL-Versionsnummer und seinem Zertifikat zum Client. Will der Client eine Server-Ressource
nutzen, die eine Authentifizierung des Clients voraussetzt, fordert der Server das Zertifikat des Clients an.
Zur Authentifizierung der Zusammengehörigkeit eines öffentlichen Schlüssels und des Servers, der durch das
Zertifikat, das den öffentlichen Schlüssel enthält, identifiziert wurde, muss ein SSL-fähiger Client ein "YES" auf die
vier Fragen in der folgenden Abbildung erhalten.
Dokumentation
4
Dokumentation
Vier Schritte zur Authentifizierung der Identität eines Servers
1. Fällt das heutige Datum in die Gültigkeitsdauer?
Der Client geht erst zu Schritt 2 über, wenn das aktuelle Datum in den Gültigkeitsbereich des Server-Zertifikats
fällt.
2. Ist die herausgebende Zertifizierungsanstalt (CA = Certification Authority) vertrauenswürdig?
Jeder Client führt eine Liste mit Zertifikaten vertrauenswürdiger Zertifizierungsanstalten. Nur wenn der
eindeutige Name (DN = Distinguished Name) der herausgebenden Zertifizierungsanstalt mit dem eindeutigen
Namen einer Zertifizierungsanstalt in der Liste des Clients übereinstimmt, ist die Antwort auf diese Frage "Ja".
3. Ist die digitale Signatur des Herausgebers im Zertifikat gültig?
Falls Frage 2 mit "Ja" beantwortet wurde, liest der Client den öffentlichen Schlüssel der herausgebenden
Zertifizierungsanstalt aus der geführten Liste ein und prüft bzw. bestätigt die digitale Signatur des
Herausgebers auf dem Zertifikat des Servers. Deckt sich der öffentliche Schlüssel nicht mit dem privaten
Schlüssel des Herausgebers, mit dem das Zertifikat unterschrieben wurde, oder haben sich die Informationen
im Zertifikat seit der Unterschrift durch die Zertifizierungsanstalt geändert, authentifiziert der Client die Identität
des Servers nicht. Falls die digitale Signatur der Zertifizierungsanstalt bestätigt wurde, hat der Client bestimmt,
dass das Server-Zertifikat gültig ist, und beantwortet die Frage mit "Ja".
4. Ist der Domainname im Zertifikat derselbe wie der Domainname des Servers?
Dieser Schritt ist nicht Teil des SSL-Protokolls, jedoch die einzige Möglichkeit, sich vor einem
"zwischengeschalteten Angreifer" zu schützen. Durch diesen Schritt bestätigt der Client, dass der Server sich
tatsächlich an der Netzwerkadresse befindet, die durch den Domainnamen im Zertifikat des Servers
spezifiziert ist.
5. Server-Authentifizierung ist abgeschlossen!
Ist dieser Schritt erreicht, wurde der Server erfolgreich vom Client authentifiziert, und der Client kann nun mit
den restlichen SSL-Handshake-Vorgängen fortfahren. Sollte die Server-Authentifizierung aus irgendeinem
Grund fehlschlagen, wird keine sichere Verbindung aufgebaut und der Benutzer darüber informiert, dass
eventuell eine zweifelhafte Aktion im Gange ist.
Dokumentation
5
Dokumentation
Beim nächsten Schritt des SSL-Handshakes muss der Server mit Hilfe seines privaten Schlüssels erfolgreich ein
sogenanntes Premaster-Geheimnis entschlüsseln, das der Client mit dem öffentlichen Schlüssel aus dem Zertifikat
des Servers verschlüsselt und ihm gesendet hat.
Ein optionaler Schritt im SSL-Handshake ist die Client-Authentifizierung durch den Server. Wird diese
Authentifizierung vom Server angefordert, schickt der Client sein eigenes Zertifikat zusammen mit dem
"Premaster-Geheimnis" zum Server.
Nachdem das "Premaster-Geheimnis" erfolgreich entschlüsselt wurde, beginnen Server und Client mit einer Reihe
paralleler Schritte, um das "Master-Geheimnis" zu generieren. Dieses "Master-Geheimnis" verwenden Server und
Client zur Erzeugung der Sitzungsschlüssel, wobei es sich um symmetrische Schlüssel handelt, die während der
ganzen Sitzung bei der Ver- und Entschlüsselung zum Einsatz kommen.
Damit der Server weiß, dass alle künftigen Nachrichten mit dem generierten symmetrischen Schlüssel
verschlüsselt werden, schickt der Client eine Nachricht an den Server. Eine weitere an den Server gerichtete
Nachricht weist darauf hin, dass der Client den SSL-Handshake erfolgreich abgeschlossen hat.
Der Server macht dasselbe und meldet dem Client durch Versenden einer Nachricht, dass alle künftigen
Nachrichten mit dem Sitzungsschlüssel verschlüsselt werden. Eine weitere separate verschlüsselte Nachricht zeigt
dem Client das Ende des SSL-Handshakes seitens des Servers an.
Nachdem der SSL-Handshake nun abgeschlossen ist, können Client und Server mit dem Austausch
verschlüsselter Nachrichten beginnen, ohne den Sitzungsschlüssel vom Client zum Server und umgekehrt
übermitteln zu müssen.
3. Installation und Konfiguration
Das Zertifikat wird normalerweise von Verizon Business auf dem Webserver des Kunden installiert. Auf dem
Unix-System findet sich der private Schlüssel des Servers im Verzeichnis
/users/www/httpd-customer.net/etc/ssl.key. Aus Sicherheitsgründen kann er nur vom Root-Benutzer gelesen
werden. Das Zertifikat befindet sich in der Datei server.crt in /users/www/httpd-customer.net/etc/ssl.crt und kann
von jedermann gelesen werden.
Zur Aktivierung von SSL auf Apache-Webservern wird mod_ssl benutzt.
Auf Servern unter Windows muss der Microsoft Key-Manager zur Einsicht der Server-Zertifikate verwendet werden.
Bei Zertifikatinstallationen auf nichtdedizierten Webservern müssen die Anleitungen im Manual der jeweils
eingesetzten Serversoftware befolgt werden.
4. Verwendung
Wird durch einen Webserver SSL unterstützt, so kann dies durch das Ersetzen von HTTP durch HTTPS am
Anfang einer URL im Browser genutzt werden, es wird demzufolge statt http://www.customer.net jetzt
https://www.customer.net geschrieben.
Falls eine mit HTTPS angeforderte Webseite absolute Verweise auf Nicht-HTTPS Objekte enthält, beispielsweise
wenn ein Bild mittels HTTP eingebunden wird, wird vom Browser eine Warnmeldung in Verbindung mit der Frage
ob der Ladevorgang fortgesetzt werden soll, an. Diese Meldung erscheint auch, wenn auf einer Webseite, die
korrekt mit HTTPS angefordert wurde, ein normaler HTTP-Link ausgewählt wurde.
Enthält eine Webseite nur Verweise auf Objekte (wie z.B. Bilder), die sich auf demselben lokalen Server befinden,
sollten all diese Verweise als relative und nicht absolute Verweise eingebunden werden. Hierdurch wird der Server
gezwungen, für alle eingebundenen Objekte eine SSL-verschlüsselte Übertragung zu verwenden.
Das folgende Beispiel zeigt eine HTML-Zeile, die das Laden eines Bildes innerhalb einer Webseite unter
Verwendung des normalem HTTP-Protokolls erzwingt:
<IMG SRC="http://www.customer.net/images/myimage.gif">
Wenn dieses Bild mittels HTTPS geladen werden soll, bieten sich zwei Möglichkeiten. Zum einen kann der
vollständige absolute Pfad im IMG-Tag angegeben werden (1), zum anderen kann ein Pfad verwendet werden, der
lediglich relativ zum Document-Root-Verzeichnis des Servers ist (2).
Dokumentation
6
Dokumentation
(1) <IMG SRC="https://www.customer.net/images/myimage.gif">
(2) <IMG SRC="/images/myimage.gif">
5. Weitere Verwendung
5. 1. Apache Webserver
Die gängigsten SSL-Optionen lassen sich mit einer Datei namens .htaccess modifizieren, die in jenem Verzeichnis
vorliegen muss, für das die Optionen angepasst werden sollen. Die in dieser Datei vorhandenen Optionen sind
auch für alle Unterverzeichnisse gültig, bis sie in einer neuen .htaccess-Datei überschrieben werden.
Näheres zu den einzelnen SSL-Optionen kann im Dokument zu Apache-SSL nachgelesen werden.
5. 1. 1. Schutz einzelner Verzeichnisse
Natürlich besteht auch die Möglichkeit, die Verwendung der SSL-Verschlüsselung für ein oder mehrere
Verzeichnisse zu erzwingen. Die einzige Option, die hierfür in der Datei .htaccess eingetragen werden muss, ist
SSLRequireSSL. Erfolgt nun ein Abruf von Dateien aus diesem Verzeichnis mit normalen HTTP statt HTTPS, wird
der Zugriff verweigert. Im Gegensatz dazu kann der SSL-Zugriff auf ein Verzeichnis auch verweigert werden, und
zwar mit der Option SSLDenySSL.
5. 1. 2. Verifizieren von Clients
Wie oben beschrieben, kann der Server eine Client-Authentifizierung auf verschiedene Arten anfordern. Hierfür
wird die Option SSLVerfiyClient zusammen mit einer Authentifizierungsabstufung verwendet.
none Kein Zertifikat erforderlich (Standard).
optional Der Client kann ein gültiges Zertifikat vorlegen, muss aber nicht. Wird ein Zertifikat angegeben, muss
dieses von einer Zertifizierungsanstalt stammen, von der der Server selbst ein Zertifikat besitzt.
require Der Client muss ein gültiges Zertifikat vorlegen.
optional_no_ca Der Client kann ein gültiges Zertifikat vorlegen, es muss jedoch nicht unbedingt von einer
Zertifizierungsanstalt stammen, von der der Server ein Zertifikat besitzt.
5. 1. 3. Gültigkeit von Sitzungsschlüsseln
Wann immer ein Client ein Dokument zum ersten Mal vom Server anfordert, wird ein neuer Sitzungsschlüssel
generiert. Mit der Option SSLSessionCacheTimeout kann sekundenweise festgelegt werden, wie lang dieser
Sitzungsschlüssel lokal im Cache gespeichert wird. Um die Übertragung gegenüber Angreifern so sicher wie
möglich zu machen, empfiehlt sich ein niedrigerer Wert, da dem Angreifer dann weniger Zeit zum Knacken des
Schlüssels bleibt, bevor ein neuer erzeugt wird. Da der Schlüssel bei jedem "Timeout" neu generiert wird, ist dies
zwar sicher, jedoch recht langsam. Fordert der Server ein Client-Zertifikat an, wird dieses bei jeder neuen
Erzeugung eines Sitzungsschlüssels ebenfalls angefordert.
Für den normalen Gebrauch ist ein "Timeout" von ein paar Stunden sicher ausreichend.
5. 2. Windows IIS
Bei Windows unter Verwendung von IIS (Internet Information Server) ist der Einsatz von SSL auf einer
Pro-Verzeichnis-Basis nicht möglich. Zur Anforderung von SSL beim Zugriff auf eine beliebige Webseite eines
IIS-Webs kann die Management Console verwendet werden, um die Properties eines Webs zu öffnen. Unter der
Registerkarte "Directory Security" bietet die Option "Secure communications" die Möglichkeit, für das gesamte Web
nur Anfragen unter Verwendung von SSL zuzulassen, und zwar indem die Option "Require Secure Channel When
accessing this resource"aktiviert wird. Diese Option ist standardmäßig deaktiviert.
Mit derselben Registerkarte ist es weiterhin möglich, das Akzeptieren von Client-Zertifikaten einzuschalten sowie
Zuordnungen zwischen den Zertifikaten und Windows-Benutzeraccounts zu aktivieren. Diese Option ist
Dokumentation
7
Dokumentation
standardmäßig so eingestellt, dass keinerlei Client-Zertifikate akzeptiert werden.
Um die Details eines Server-Zertifikats einzusehen, sollte der Microsoft Key Manager verwendet werden. Das
Programm lässt sich auch von der Management Console aus starten oder aber auf direktem Weg durch Aufrufen
von keyring.exe. Der Key Manager zeigt sämtliche Informationen, die in den installierten Zertifikaten enthalten
sind, sowie die Gültigkeitsdauer eines jeden installierten Zertifikats.
6. Weitere Informationen
Näheres zum SSL-Protokoll findet sich auf verschiedenen Webseiten:
Apache mod_ssl Die Online-Dokumentation von Apache mod_ssl.
OpenSSL Homepage des OpenSSL-Projekts, eine freie Implementierung des SSL/TLS-Protokolls.
Apache-SSL Eine weitere SSL-Implementierung für den Apache-Webserver.
Dokumentation
8
Dokumentation
Beantragung eines SSL-Zertifikats für Webserver
Für die Beantragung eines SSL-Zertifikates für Webserver werden einige zusätzliche Angaben benötigt. Zur
Erfassung aller wichtigen Informationen stellt Verizon Business auf Anfrage ein Datenblatt zur Verfügung.
1. Notwendige Unterlagen
Für die Beantragung des SSL-Zertifikates werden folgende Unterlagen benötigt:
1. Vollständig ausgefülltes Datenblatt SSL.
2. Handelsregisterauszug oder Gewerbeschein.
Die Unterlagen sind per Fax an 0231 972 2544 zu senden.
2. Datenblatt SSL
Das auszufüllende Datenblatt ist in den Unterlagen zu den entsprechenden Hosting-Produkten enthalten.
Im ersten Abschnitt "Details zum Kunden" ist der genaue Name der Firma, die Stadt und das Bundesland des
Firmensitzes sowie die eventuell bereits vorhandene Verizon Business Kundennummer einzutragen. Optional ist
auch die Angabe eines Abteilungsnamens möglich. Diese Daten erscheinen komplett im fertigen SSL-Zertifikat.
SSL-Datenblatt 1
Im Abschnitt "Gesetzlicher Vertreter" sollte nach Möglichkeit der auch im Handelsregisterauszug eingetragene
Geschäftsführer, ein Vorstandsmitglied oder ein anderer leitender Manager eingetragen werden. Diese Person
muss Kenntnis von der Beantragung des SSL-Zertifikates haben und gegenüber der zertifizierenden Stelle die
Echtheit des Auftrages zur SSL-Zertifizierung bestätigen können. Diese Bestätigung wird durch einen Anruf bei der
angegeben Person eingeholt, weshalb bei der Angabe von Fax- und Telefonnummer auf die Eintragung von
Zentralrufnummern zu verzichten ist und stattdessen eine Rufnummer zur direkten Erreichbarkeit der
angegebenen Person angegeben werden sollte. Die gleiche Vorgehensweise ist für die Angabe der Mailadresse zu
empfehlen, an diese Adresse werden Meldungen über den Status der Beantragung sowie Benachrichtigungen
Dokumentation
9
Dokumentation
über fehlende Unterlagen gesandt. Die Daten dieses Abschnittes dienen nur zur Beantragung und sind nicht
Bestandteil des fertigen Zertifikates.
Als technischer Ansprechpartner sollte eine Person eingetragen werden, die Zugang zu dem Webserver besitzt,
auf dem das SSL-Zertifikat installiert werden soll und für alle technischen Rückfragen zur Verfügung steht. Diese
Angaben erscheinen nicht im ausgestellten Zertifikat.
SSL-Datenblatt 2
Im Abschnitt "Details zum Server" ist der Name des Webservers einzutragen, z.B. www.customer.net, für den das
Zertifikat ausgestellt werden soll. Ein SSL-Zertifikat ist an diesen Namen gebunden und kann nicht für einen
anderen Server eingesetzt werden.
Wird der Server im Rahmen eines Shared- oder Dedicated-Vertrages bei Verizon Business betrieben so ist dies
entsprechend anzukreuzen, anderenfalls ist die genaue Bezeichnung und Versionsnummer der verwendeten
Serversoftware anzugeben.
Im letzten Abschnitt muss angekreuzt werden, welche Unterlagen über das Unternehmen dem Auftrag beigefügt
werden. Mit einigen Angaben zur unterzeichnenden Person und deren Unterschrift wird der Auftrag komplettiert.
Da es sich bei einem SSL-Zertifikat um eine Zusatzdienstleistung zu einem Webhosting Produkt handelt ist die
Unterschrift auf dem SSL-Datenblatt in jedem Fall für die weitere Bearbeitung notwendig.
SSL-Datenblatt 3
Dokumentation
10
Dokumentation
3. SSL-Zertifikate für externe Kunden
Wird der Webserver, für den SSL-Zertifikat beantragt wird, nicht im Rahmen eines Shared- oder
Dedicated-Auftrages bei Verizon Business betrieben, so ist dies auf dem Datenblatt im entsprechenden Abschnitt
zu vermerken. Die SSL-Zertifizierung wird ebenfalls für die Dauer von einem Jahr vorgenommen und muss danach
erneut schriftlich beauftragt werden.
Um das Zertifikat zu beantragen, wird zusätzlich zum SSL-Datenblatt die erste Seite der Unterlagen zu den
Produkten, komplett ausgefüllt und unterzeichnet, benötigt. Zur Klärung offener Fragen, nach erfolgreicher
Ausstellung oder bei dem bevorstehenden Ablauf der Gültigkeit des Zertifikates wird der angegebene technische
Ansprechpartner von Verizon Business kontaktiert um ggf. fehlende Unterlagen nachreichen zu können oder das
Zertifikat über ein Webinterface abzuholen.
Dokumentation
11
Dokumentation
Ausschlussklausel
Verizon Business ist bemüht zu gewährleisten, dass die auf dieser Webseite enthaltenen Informationen und Daten
korrekt sind.
Für die Richtigkeit, Aktualität und Vollständigkeit der zur Verfügung gestellten Inhalte kann Verizon Business
jedoch nicht haften oder garantieren - dies bezieht sich sowohl auf die Webseiten, auf die Verizon Business
innerhalb dieser Dokumentation verweist als auch auf die Funktionalität dieser Links.
Mit den in dieser Dokumentation aufgelisteten Links verlassen Sie die Verizon Business Webseite. Verizon
Business ist dann weder verantwortlich für Informationen und Inhalte außerhalb der Verizon Business Webseite,
noch werden diese von Verizon Business kontrolliert.
Es ist nicht gestattet, Inhalte dieser Webseite wieder zu veröffentlichen oder weiter zu verbreiten, wenn keine
ausdrückliche schriftliche Zustimmung von Verizon Business erteilt wurde.
Alle Produktnamen, die in dieser Dokumentation erwähnt werden, sind Warenzeichen oder eingetragene
Warenzeichen ihrer jeweiligen Firmen.
Dokumentation
12
Dokumentation
Backup-System
Verizon Business verwendet ein Backup-System, um die Daten eines jeden Servers täglich zu sichern. Wird eine
Datei versehentlich gelöscht, oder sollte ein Server Probleme mit seiner/seinen Festplatte(n) haben, können die
Verizon Business Webmaster die Daten wieder herstellen. Dieses Dokument beschreibt das grundlegende Setup
des Backup-Systems und die Vorgehensweise, um Daten wieder herzuerstellen.
1. Allgemeine Beschreibung
Für das Verizon Business Backup-System ist auf jedem Server ein Backup-Client standardmäßig installiert. Dieser
Client steht einer ganzen Reihe von Betriebssystemen zur Verfügung.
Die Backup-Daten werden auf mehreren Bändern gespeichert. Backup-Server kontrollieren den Betrieb des
Systems.
Wird ein Server neu installiert, wird initial eine Vollsicherung durchgeführt. Anschließend wird automatisch während
der Nacht von 22:00 Uhr bis 6:00 Uhr eine inkrementelle Datensicherung durchgeführt, bei der nur die gegenüber
dem Vortag geänderten Daten gesichert werden. Die exakte Zeit für ein bestimmten Server kann nicht im voraus
angegeben werden, da die Dauer des Backup-Prozesses von anderen Servern abhängt. Die Sicherung selbst
erfolgt ohne Mitwirken des Kunden.
Die Daten, die länger als 28 Tage gespeichert sind und durch neuere Dateien ersetzt wurden, werden gelöscht.
Dieses Verfahren verringert das Gesamtvolumen auf den Bändern und erlaubt gleichzeitig ein volles Backup des
Systems in jedem Backup-Zustand der vorhergehenden vier Wochen.
2. Wichtiger Hinweis zur Sicherung von Datenbanken
Bei der Datensicherung werden für Datenbanken KEINE Sicherungen durchgeführt! Es werden nur die Daten
gesichert, die im Dateisystem abgelegt sind.
Soll eine Sicherung der Datenbank erfolgen, muss der Kunde ein Skript erstellen, das regelmäßig einen Dump der
Datenbank erstellt, der dann in einer Datei explizit gespeichert wird. Das System kann diese Datei sichern und im
Störfall die Datenbank daraus zurückladen. Verizon Business garantiert nicht für die Richtigkeit oder Vollständigkeit
dieser Daten.
3. Ausschluss von Dateien
Um ein hohes Backup-Volumen zu vermeiden, ist es möglich, bestimmte Dateien oder Verzeichnisse vom Backup
auszuschließen. Dies führt auch zu einer Kostenverringerung für das aufkommende Backupvolumen auf der
Monatsrechnung.
Typische Dateien oder Verzeichnisse für einen solchen Ausschluss sind die oben erwähnten Datenbankdateien,
Session-Dateien von PHP oder Servlets und andere temporäre Dateien. Teilen Sie bitte den Verizon Business
Webmastern per Fax mit, welche Verzeichnisse und Dateien nicht gesichert werden sollen, damit das
Backup-System dementsprechend konfiguriert werden kann. Es liegt in der Verantwortung des Kunden diese
Einträge bei Bedarf wieder entfernen zu lassen.
4. Wiederherstellen von Dateien
Sollte ein Wiederherstellen der Daten nötig sein, senden Sie bitte eine eMail an die Verizon Business Webmaster.
Sie holen die Daten aus dem Backup-System und benachrichtigen Sie, sobald das Wiederherstellen der Daten
abgeschlossen ist. Der Kunde sollte nicht versuchen, Dateien selbst wiederherzustellen.
Dokumentation
13
Dokumentation
Kontakt
Hier erfahren Sie, wie Sie Verizon Business in den verschiedenen Ländern erreichen können, wenn Sie noch
Fragen haben oder weitere Informationen wünschen.
1. Allgemeines
Wenn Sie sich per eMail, Fax oder Telefon direkt an Verizon Business wenden, versichern Sie sich bitte zunächst,
dass Sie die für Ihr Land geltenden Kontaktdaten gewählt haben. Weiterhin ist es hilfreich, wenn Sie Ihre
Kundennummer und den Namen des Servers bei der Kontaktaufnahme nennen.
Bevor Sie aber mit unserem Support Kontakt aufnehmen, informieren Sie sich bitte zuerst in der hier zur Verfügung
gestellten technischen Dokumentation.
Falls Sie dann immer noch Fragen haben und/oder weitere Informationen wünschen, nehmen Sie bitte mit uns
Kontakt auf:
2. Deutschland:
Verizon Deutschland GmbH
Sebrathweg 20
D-44149 Dortmund
Deutschland
Telefon (national): 01803 020201 (9,5 Cent/Min)
Telefax: +49 231 972-2544
E-Mail: Technischer Support IP Produkte
Web: http://www.verizonbusiness.com/de/support/
3. Niederlande:
Verizon Nederland B.V.
H.J.E. Wenckebachweg 123
1096 AM AMSTERDAM
The Netherlands
Telefon (national): 0800 0230 707
Telefax: +31 20 711 7190
E-Mail: Technical Support IP Products
Web: http://www.verizonbusiness.com/nl/support/
4. Großbritannien:
Verizon UK Limited
Reading International Business Park
Basingstoke Road
Reading Berkshire RG2 6DA
Telefon: +44 118 905 5000
E-Mail: Support
Web: http://www.verizonbusiness.com/uk/
Dokumentation
14
Dokumentation
4. Schweden:
Verizon Sweden AB
Armégatan 38
Box 4127
171 04 Solna
Sweden
Telefon (national): 0200 288 888
Telefon (international): +46 8 750 8850
E-Mail: Support
Web: http://www.verizonbusiness.com/se/
Dokumentation
15
Dokumentation
Datentransfer Accounting (Netflow)
Die auf Datentransfer basierenden Produkte wie Shared Server, Dedicated Server und Internet Colocation werden
anhand von IP-Accounting abgerechnet.
Dieses Dokument erklärt das Verfahren, das Verizon Business benutzt, um den Datentransfer zu protokollieren
und zu messen. Verizon Business stellt auf Anfrage die Datengrundlage für Ihre Rechnung in zwei Varianten zur
Verfügung. Das Format der aggregierten Daten und der Rohdaten wird in diesem Dokument ebenfalls erklärt.
1. Gemessene / abgerechnete Daten
Netflow-Switching ist ein von Cisco entwickelter Routing-Mechanismus, der sich einer Art Routing-Cache bedient.
Ausführlichere Informationen zur Funktionsweise von Netflow können in Ciscos Whitepaper Introduction to Cisco
IOS NetFlow nachgelesen werden. Wann immer ein solcher Cache abläuft, wird der Cache-Eintrag ausgelesen
und als Netflow stream (UDP-Pakete) versendet.
Dieser Stream wird von Collector-Servern gesammelt und summiert, wobei nach Protokoll (z.B. Portnummern,
siehe Abschnitt IP : Port Analyse) aufgeschlüsselte Datentransferzahlen über 15 Minuten Intervalle (sogenannte
Netflow-Aggrate) berechnet werden. Die Addition dieser Zahlen auf monatlicher Basis ergibt den abgerechneten
IP-Verkehr pro IP-Adresse und Monat.
Kunden erhalten für alle IP-Adressen, die sie nutzen, eine Abrechnung. Dies ist meist eine IP-Adresse für
Shared-Kunden und mehrere IP-Adressen oder gar ganze Netze für Dedicated- (und Colocation-) Kunden.
Hinweis: Der abgerechnete IP-Verkehr basiert auf Daten, die auf der Ebene des IP-Protokolls übertragen werden.
Dies schließt z.B. den TCP/IP-Protokoll-Overhead mit ein. Berücksichtigt wird der gesamte IP-Verkehr, nicht nur
der Verkehr für das HTTP-Protokoll, sondern auch der von anderen Protokollen wie FTP, POP3, DNS sowie von
Datenbankverbindungen. Desweiteren sind im IP-Verkehr Daten beider Richtungen (eingehender und abgehender
Verkehr) enthalten. Dies ist die Erklärung für die Abweichung zwischen dem abgerechneten IP-Verkehr und den
Zahlen, die Sie z.B. von Server-Protokolldateien erhalten.
Verizon Business kann Ihnen die Daten, die die Grundlage für die Erstellung Ihrer Rechnung bilden, auf
Anforderung zur Verfügung stellen. Je nach Wunsch liefert Ihnen Verizon Business die aggregierten Daten für
15-Minuten-Intervallen, Tage oder Monate oder sämtliche Rohdaten, die dieser Aggregation zugrunde liegen. Die
folgenden Abschnitte beschreiben den Inhalt und das Format der Daten für beide Möglichkeiten und enthalten
Hinweise zum geschätzten Datenvolumen. Bitte kontaktieren Sie die Verizon Business Webmaster, wenn Sie
Netflow-Daten benötigen.
Hinweis: Bevor Sie alle monatlichen Rohdaten eines Servers mit hohem Datendurchsatz anfordern, sollten Sie
unbedingt den Umfang dieser Daten in Betracht ziehen.
2. Netflow-Aggregate
2. 1. Format der Daten
Die Netflow-Aggregate werden entweder für 15-Minuten-Intervalle, pro Tag oder pro Monat berechnet. Die Daten
sind im ASCII-Format (Zeilen von Werten, die durch Tabulatoren getrennt sind) und werden mit gzip komprimiert.
Das Format sieht wie folgt aus:
IP Nummer
Port
Aggregatzeitstempel (formatiert als JJJJMMTTSSMMSS)
Aggregatlänge(in Sekunden)
Anzahl der Flows
Bytes Input
Dokumentation
16
Dokumentation
Bytes Output
Pakete Input
Pakete Output
Die IP number ist im Dezimalformat formatiert, also mit führenden Nullen und ohne jegliche Punkte (’.’). Daraus
ergibt sich eine 12stellige Nummer für jede IP-Adresse.
Ein Beispiel verdeutlicht den Aufbau des Formats. Das HTTP-Aggregat (Port 80) mit der IP-Nummer 192.168.1.1
für den 3. Juni 2005, 0.00 - 0.15 Uhr könnte wie folgt aussehen:
192168001001
80
20050603000000
900
114
21724
14250
292 228
Dieser Host hat also 21724 Bytes auf Port 80 (z. B. HTTP-Anfragen) empfangen und 14250 Bytes als Antwort
innerhalb dieses Intervalls versendet.
Hinweis: Bitte beachten Sie bei der Anforderung von Netflow-Aggregaten, dass Sie pro 15-Minuten-Intervall einen
Datensatz pro IP-Adresse und zugewiesenem Service (Abschnitt: IP / Port Analyse, siehe unten) erhalten. Daraus
ergibt sich ein Datenumfang von bis zu einem Megabyte (1000 KB) (im komprimierten Format 10% dieses Werts)
pro angeforderter IP-Adresse.
2. 2. Analyse der Daten nach IP oder Ports
Eine Analyse des IP-Verkehrs für einen Server lässt sich einfach durchführen, wenn Sie die aggregierten Daten für
einen Tag oder Monat anfordern. Diese werden im selben Format wie oben beschrieben bereitgestellt.
Alle geläufigen TCP/IP-Protokolle sind spezifischen Portnummern zugewiesen, wie Port 80 zu HTTP, 20 und 21 zu
FTP (beide 21 zugewiesen), 22 und 23 zu SSH bzw. Telnet. Spezifische Services wie Datenbankverbindungen
oder Streaming-Anwendungen können auf Anfrage einem besonderen Port zugewiesen werden. Sämtlicher nicht
spezifizierter Datenverkehr wird Port 0 zugewiesen, wo auch der gesamte TCP- und UDP-fremde Verkehr (z.B.
ICMP aus Anwendungen wie ping) aufsummiert wird.
3. Netflow-Rohdaten
Die Netflow-Rohdaten stehen auf Anfrage ebenfalls zur Verfügung. Sie erhalten dann eine komprimierte
ASCII-Datei mit Zeitstempel- und Netflow-Daten.
Zeitstempel Ein Zeitstempel besteht aus einer einzigen Zeile mit einem 14stelligen Eintrag, der den
Start-Zeitstempel aller folgenden Einträge enthält:
JJJJMMTTSSMMSS
Derzeit ist ein Zeitstempel für jede Minute der gemessenen Periode vorhanden.
Netflow Jeder Netflow-Datensatz (jeweils eine Zeile) enthält eine Teilmenge der echten Netflow-Daten (Version 5),
wie sie im Cisco-Dokument NetFlow Data Format beschrieben werden. Die 11 Einträge, abgegrenzt durch das
Zeichen |, enthalten die folgenden Informationen:
IP-Nummer des Routers, auf dem die Daten gesammelt wurden
Sequenznummer (für diesen Router)
Quell-IP-Nummer
Ziel-IP-Nummer
Quell-Port
Ziel-Port
IP-Protokollnummer / ID (oder 0 für ICMP)
Anzahl der Bytes
Anzahl der Pakete
Dokumentation
17
Dokumentation
Hinweis: Bitte berücksichtigen Sie, dass Sie mindestens ein Netflow-Paket pro TCP-Session erhalten, die sich in
den Server-Protokollen befinden. Dies schließt Sessions für Telnet, FTP, SSH, HTTP, SMTP, DNS und andere ein.
Sessions, die länger als 30 Sekunden dauerten (wie große FTP-Downloads und KeepAlive-HTTP-Verbindungen),
können zu weiteren Netflow-Paketen führen.
Das Datenvolumen beläuft sich durchschnittlich auf 25 bis 30 Megabyte unkomprimierte Daten pro Gigabyte
Datenverkehr. Sollte der Server viele kleine Verbindungen abgewickelt haben (z.B. durch einen Portscan oder eine
Denial-of-Service-Attacke), kann sich der Wert um 100% oder mehr erhöhen.
4. Weitere Informationen
Näheres zu den technischen Aspekten der Netflow-Services finden Sie auf verschiedenen Webseiten:
http://www.cisco.com/warp/ Das Cisco-Whitepaper "Netflow Services and Applications".
http://www.cisco.com/univercd/ Das Cisco-Dokument "NetFlow Data Format".
Dokumentation
18
Dokumentation
Sicherheit der Hosting-Produkte
Sicherheit ist von größter Wichtigkeit in der Welt des Internets. Die von Verizon Business verwalteten Server
werden in ihrer ursprünglichen Konfiguration mit einem hohen Sicherheitsstandard bereitgestellt. Je nach
Anforderungen und Wünschen der Kunden kann der Sicherheitsgrad weiter erhöht werden. Hierfür stehen
verschiedene Möglichkeiten zur Verfügung, die im Folgenden erläutert werden.
1. Zugriffsbeschränkungen auf Services
Die einfachste Methode zur Absicherung des Servers ist das Beschränken bzw. Verwehren von Zugriff auf
bestimmte Services, die der Server selbst bereitstellt. Auf Servern, die unter Unix laufen, kann der Zugriff auf
POP3, TELNET und FTP über die integrierte ACL (Zugriffskontrollliste) über xinetd oder (auf neueren
Installationen) über die TCP-Wrapper-Bibliothek konfiguriert werden.
Services können auch komplett deaktiviert bzw. nur bestimmten IP-Adressen oder IP-Netzwerken zugänglich
gemacht werden. Alle Services sind selbstverständlich auch über Kennwort-Authentifizierung abgesichert. Auf
Anfrage passen die Verizon Business Webmaster die Konfiguration an die Anforderungen des Kunden an.
Darüber hinaus kann der Zugriff auf HTTP eingeschränkt werden. Windows-Kunden können die Einstellungen über
die IIS Management Console ändern, Unix-Kunden haben die Möglichkeit, .htaccess in Verzeichnissen abzulegen,
die abgesichert werden sollen (siehe dazu die Apache-Dokumentation).
2. Einsatz verschlüsselter Services
Einige Services können durch eine verschlüsselte Alternative ersetzt werden. Statt TELNET und FTP sollte (wann
immer möglich) SSH verwendet werden, um Logins und das Kopieren von Dateien über einen sicheren Kanal
abwickeln zu können. SSH sollte standardmäßig installiert sein, die Verizon Business Webmaster installieren SSH
auf Anfrage auf auf älteren Servern. Sie können außerdem TELNET und FTP wie oben beschrieben deaktivieren
oder beschränken. Bei Verwendung von HTTPS und SSL lässt sich auch der über den Webserver gehende
Verkehr verschlüsseln.
3. Zugriffskontrolllisten auf Routern
Eine weitere Möglichkeit ist der Einsatz von Zugriffskontrolllisten (ACL, Access Control Lists), die auf den
Dedicated Hosting Routern (DHR) konfiguriert sind, mit denen der Server verbunden ist. Hierdurch lässt sich ein
gewisses Maß an Kontrolle über bestimmte IP-Bereiche und Portnummern ausüben, indem Zugriff erlaubt oder
verwehrt wird. Die an blockierte Ports versendeten Pakete werden beim Router schlicht aussortiert und erreichen
den Server erst gar nicht. Zugriffskontrolllisten müssen auf die Bedürfnisse des Kunden und die
Verwaltungsanforderungen von Verizon Business zugeschnitten werden. Hierbei muss äußerst vorsichtig
vorgegangen werden, um keine der wichtigen Services zu blockieren. Für den Entwurf der Zugriffskontrollliste ist
der Kunde verantwortlich. Verizon Business kann auf diesem Gebiet momentan nur eingeschränkt Unterstützung
leisten. Darüber hinaus besteht nur für Kunden mit dedizierten Servern die Möglichkeit, dass Verizon Business
Zugriffskontrolllisten auf den Routern konfiguriert. Für die Zugriffskontrolllisten benötigen wir ein spezifisches
Format, das auf Anfrage über die Verizon Business Webmaster erhältlich ist.
4. Firewalls
Eine Firewall ist die leistungsstärkste Verbesserung im Sicherheitssektor. Funktionen wie Network Address
Translation (NAT) oder das Protokollieren von Netzwerkereignissen und Einbruchsversuchen heben die Firewalls
von anderen Lösungen ab. Verizon Business bietet Managed Firewalls als Sicherheitslösung an, die vor einem
oder mehreren dedizierten Servern installiert werden können. Weitere Informationen erhalten Sie durch die Verizon
Business Webmaster oder unseren Vertrieb.
Dokumentation
19
Dokumentation
Unix basierte Hosting-Produkte
Dieses Dokument gibt einen kurzen Überblick über die technischen Fähigkeiten und Eigenschaften der auf Unix
basierten Hosting-Produkte sowie deren Anpassungsmöglichkeiten und Zusatzprodukte. Es enthält eine Reihe von
Links, die zu den spezifischen Dokumenten führen.
1. Betriebssystem
Unser Hosting-Service basiert auf dem Betriebssystem SUN Solaris. Sie erhalten Ihren eigenen Webserver durch
die Implementierung des Virtual Machine Environment (Virtual MachineE). Ihnen steht für die erfolgreiche Nutzung
Ihrer Web-Services eine vollständig geschützte Betriebssystemumgebung zur Verfügung. Das Dokument zum
Betriebssystem gibt einen Überblick über diese spezifische Umgebung.
2. Zugriffsmöglichkeiten
Damit Sie auf Ihre Daten Zugriff haben, bietet Verizon Business verschiedene Services wie "anonymous
FTP"-Server, zusätzliche Webmaster-Accounts, FTP, TELNET oder SSH. Im Dokument zum Thema
Zugriffsmöglichkeiten finden Sie einen Überblick und auch detailliertere Informationen zu den verschiedenen
Methoden, mit denen Sie sich anmelden können.
3. Applikationen
Nachstehend sind sämtliche Informationen über den Webserver und seine Module, den Einsatz von E-Mail und
vorinstallierter Software zusammengestellt.
3. 1. Webserver
Innerhalb der Virtual Machine installiert Verizon Business einen dedizierten Apache Webserver in einer
Standardkonfiguration mit Server Side Includes. Näheres hierzu und zu den verschiedenen Modulen wie PHP, die
auch bereitgestellt werden können, finden Sie in der Apache-Dokumentation. Darüberhinaus werden Sie dort
weitere Links zu themenbezogenen Dokumenten finden.
3. 2. E-Mail
Verizon Business bietet bestimmte E-Mail-Services für Ihre Domain. Das E-Mail-Dokument enthält alles
Wissenswerte zum Empfangen und Weiterleiten von E-Mails sowie zur E-Mail-Konfiguration.
3. 3. Softwarepakete
Es besteht die Möglichkeit, Ihre eigene Software zu installieren oder die von Verizon Business vorinstallierte
Software zu nutzen. Informationen über die Standardprogramme und Tools für die Administration, Erweiterung der
Webserver-Fähigkeiten sowie zur Erstellung zusätzlicher Softwarepakete erhalten sie in einem separaten
Dokument.
4. Projekte
Verizon Business unterstützt zusätzliche Projektservices wie spezielle Software-Installationen und -Konfigurationen
je nach Kundenwunsch. Für die weitere Konfiguration und Administration dieser Software ist der Kunde
verantwortlich. Sie erhalten diesen gebührenpflichtigen Service nur auf Anfrage.
Dokumentation
20
Dokumentation
Apache Webserver
Verizon Business installiert standardmäßig den Apache Webserver auf allen Servern. Apache ist ein schneller,
stabiler und kostenloser HTTP-Server, darüber hinaus äußerst konfigurierbar und erweiterbar.
Dieses Dokument führt Sie zu weiteren Dokumenten, die über Apache auf Verizon Business Servern zur
Verfügung stehen.
1. Apache-Setup
Das Dokument "Apache-Setup" erklärt, wie und wo der Webserver installiert wird. Es zeigt die Verzeichnis- und
Dateistruktur auf, so dass Sie wissen, wo Ihre HTML-Dateien und CGI-Programme gespeichert werden. Darüber
hinaus wird der Startvorgang detailliert beschrieben.
2. Server-Konfiguration
Das Dokument "Apache-Konfiguration" geht auf die Standardkonfiguration ein und wie sie eingerichtet wird.
Kundenseitige Erweiterungen und Modifikationen sind über die .htaccess-Datei möglich und werden ebenfalls
beschrieben.
3. Zugriffsbeschränkungen
Mit dem Apache Webserver lässt sich der Zugriff auf Verzeichnisse innnerhalb des Document-Roots sehr leicht
über das Web beschränken. Anhand von HTTP-Benutzerauthentifizierungen ist es möglich, Dateien und
Verzeichnisse nur Benutzern mit gültigen Benutzernamen und Kennwörtern zugänglich zu machen.
Beschränkungen auf IP-Basis erlauben nur definierten Hosts den Zugriff. Das Dokument "Zugriffsbeschränkungen"
erklärt im Einzelnen, wie diese eingerichtet und gehandhabt werden.
4. Protokolldateien und Statistiken
Der Apache-Server verfügt über hochentwickelte Protokollfähigkeiten. Das Dokument über die Protokolldateien
und Statistiken geht auf die Informationen ein, die in den standardmäßigen Protokolldateien enthalten sind, und
beschreibt außerdem die Rotation und den Hostnamen-Auflösungsprozess. Verizon Business liefert im täglichen,
wöchentlichen oder monatlichen Rhythmus verschiedene Statistiken, die sich aus diesen Dateien ergeben.
5. CGI-Skripte
Jeder Apache-Server ist so konfiguriert, dass CGI-Skripte in einem bestimmten Verzeichnis ausgeführt werden. Ein
separates Dokument beschreibt, wie CGI-Programme kundenseitig geschrieben und installiert werden. Verizon
Business stattet jeden Server mit einigen CGI-Beispielskripten aus.
6. Zusätzliche Hosts
Der Apache-Server ist in der Lage, mehrere Web-Dienste anzubieten, die alle mit eigenen Hostnamen und URLs
auf derselben Apache-Instanz ausgestattet sind. Verizon Business installiert verschiedene Typen zusätzlicher
Hosts wie virtuelle Hosts, Server-Aliase und URL Redirects.
Dokumentation
21
Dokumentation
7. Apache-Module
Verizon Business kann auf Anfrage die folgenden Module installieren (für die Installation mancher Module kann
eine Gebühr erhoben werden):
SSL module
PHP
Tomcat
Weitere Apache-Standardmodule wie mod_rewrite,mod_proxy oder mod_expire sind bereits installiert und
können auf Anfrage aktiviert werden .
8. Weitere Informationen
Näheres zum Apache Webserver ist auf verschiedenen Webseiten und in gedruckter Form erhältlich:
Apache Server Project Die offizielle Apache-Homepage der Apache Software Foundation bietet Download-Links,
Dokumentationen und Links zu anderen nützlichen Ressourcen.
Apache Week Homepage von Apache Week - der wichtigen, kostenlosen Ressource für Benutzer des beliebtesten
Webservers der Welt.
Installierte Dokumentation Die Dokumentation zur installierten Apache-Version auf Verizon Business Servern
befindet sich in /usr/local/apache/htdocs/manual auf jedem Server.
Buch: Apache: The Definitive Guide Apache: The Definitive Guide
von Ben Laurie &amp; Peter Laurie
2. Auflage Februar 1999
O’Reilly &amp; Associates, Inc.
ISBN 1-56592-528-9
englische Ausgabe
Buch: Apache Desktop Reference Apache Desktop Reference
von Ralf S. Engelschall
1. Auflage Dezember 2000
Addison-Wesley
ISBN 0-201-60470-1
englische Ausgabe
Online verfügbar über http://www.apacheref.com/
Buch: Apache Pocket Reference Apache Pocket Reference
von Andrew Ford
1. Auflage Juni 2000
O’Reilly &amp; Associates, Inc.
ISBN 1-56592-706-0
englische Ausgabe
Online verfügbar über http://www.refcards.com/
Dokumentation
22
Dokumentation
Apache-Zugriffsbeschränkungen
Der Zugriff auf bestimmte Dateien oder Verzeichnisse mittels Browser über das Internet lässt sich einschränken.
1. Allgemeine Beschreibung
Der Zugriff auf Dateien oder Verzeichnisse kann auf verschiedene Arten beschränkt werden. Am häufigsten
geschieht dies auf Basis von IP-Adressen oder Domains oder mittels Benutzerauthentifizierung (Benutzername
und Kennwort).
2. Benutzung
In der Regel wird die Authentifizierung dazu verwendet, vertrauliche Daten vor der Einsicht durch Dritte zu
schützen. Zum Beispiel kann über die Authentifizierung der Zugriff auf ein Download-Verzeichnis eingeschränkt
werden.
Hinweis: Das Kennwort wird als Klartext unter Verwendung der Basis-Authentifizierung (AuthType Basic)
übertragen, die Authentifizierung per digitalem Fingerabdruck (AuthType Digest) wird derzeit von keinem Browser
unterstützt. Für sichere Verbindungen ist SSL (https) eine gute Wahl.
3. Installation und Konfiguration
Die unkomplizierteste Möglichkeit ist die Verwendung einer einfachen Textdatei, die die Benutzernamen und
Kennwörter enthält. Bei einer großen Anzahl von Accounts (Zugriffe) ist eine einfache Textdatei für die Verwaltung
allerdings nicht empfehlenswert. Hierfür bieten sich andere Module an, z.B. mod_auth_dbm.
3. 1. Beispiel für die einfache Benutzerauthentifizierung ohne Gruppen
Der Zugriff soll nur Benutzern erlaubt sein, die sich erfolgreich authentifiziert haben. Im zu schützenden
Verzeichnis muss eine .htaccess-Datei mit dem folgenden Inhalt vorliegen:
AuthType Basic
AuthName Download
AuthUserFile /users/home/www123/user.001
Require valid-user
Im Home-Verzeichnis /users/home/www123/ muss folgender Befehl eingegeben werden:
htpasswd -c ./user.001 admin
Dieser Befehl fügt der Kennwortdatei user.001 den Benutzer admin hinzu und fragt nach dem zugehörigen
Kennwort. Die Option -c sorgt dafür, dass die Datei user.001 erstellt wird, falls sie nicht existiert.
Achtung: Die Kennwortdatei darf nie innerhalb des Document-Root-Verzeichnisses abgelegt werden!
Hinweis: Die Datei .htaccess ist gültig für das Verzeichnis, in dem sie sich befindet, und alle zugehörigen
Unterverzeichnisse. Beispiel:
Im Verzeichnis ?/data/download existiert eine .htaccess-Datei. Die .htaccess-Datei wird nun auch für ein
Verzeichnis wie ?/data/download/new oder ?/data/download/old usw. verwendet.
Wenn ein Benutzer auf das Verzeichnis zugreift, muss er sich mit einem Benutzernamen aus der Kennwortdatei
user.001 authentifizieren.
Dokumentation
23
Dokumentation
3. 1. 1. Beispiel für Authentifizierung mit Netscape unter Solaris
Aufforderung zur Authentifizierung für Download mit Netscape
3. 1. 2. Beispiel für Authentifizierung mit Internet Explorer unter Windows
Aufforderung zur Authentifizierung für Download mit Internet Explorer
3. 2. Beispiel für Benutzerauthentifizierung mit Gruppen
Der Zugriff soll nur dann erlaubt sein, wenn ein Benutzer zusätzlich Mitglied einer bestimmten Gruppe ist. Im zu
schützenden Verzeichnis muss eine .htaccess-Datei mit dem folgenden Inhalt vorliegen:
AuthType Basic
AuthName Download
AuthUserFile /users/home/www123/user.002
AuthGroupFile /users/home/www123/group.002
Require group admin
Im Verzeichnis /users/home/www123/:
Dokumentation
24
Dokumentation
htpasswd -c ./user.002 www123
fügt den Benutzer www123 der Kennwortdatei user.002 hinzu.
htpasswd ./user.002 webmaster
fügt den Benutzer webmaster dem user.002-Kennwortdatei hinzu.
Die Gruppendatei group.002 muss auf dem Server angelegt werden, falls sie noch nicht vorhanden ist und sollte
(z.B.) folgendes enthalten:
admin: www123 webmaster
Das bedeutet, dass die Benutzer www123 und webmaster zur Gruppe admin gehören. Die Authentifizierung ist nur
für diese Benutzer gültig, da sie Mitglieder der Gruppe admin sind (Require group admin).
Tipp: Mit der Option -b kann das Kennwort direkt in die Befehlszeile eingegeben werden:
htpasswd -b <PASSWORDFILE>
<USER>
<PASSWORD>
htpasswd zeigt die verfügbaren Optionen des Befehls htpasswd.
3. 3. Beispiel für eine geschützte Datei
Um eine Datei mit dem Namen secure.html zu schützen, muss im zugehörigen Verzeichnis eine .htaccess-Datei
vorliegen, in die folgende Zeilen einzufügen sind:
<Files secure.html>
AuthType Basic
AuthName Download
AuthUserFile /users/home/www123/user.003
AuthGroupFile /users/home/www123/group.003
Require user webmaster
</Files>
3. 4. Beispiel für die Benutzerauthentifizierung mit Benutzer-Datenbankdatei
Bei sehr vielen Usern, die sich mittels Passwort authentifizieren müssen, empfiehlt es sich,
mod_auth_dbm
zu verwenden. Dies muss allerdings zuvor von den Verizon Business Webmastern aktiviert werden. Im zu
schützenden Verzeichnis muss eine .htaccess-Datei mit dem folgenden Inhalt vorliegen:
AuthType Basic
AuthName Download
AuthDBMUserFile /users/home/www123/user.dbm
AuthDBMGroupFile /users/home/www123/group.dbm
Require user webmaster
Require group admin
Im Home-Verzeichnis /users/home/www123/ müssen folgende Befehle eingegeben werden:
cd /users/home/www123/
dbmmanage /users/home/www123/user.dbm adduser webmaster
dbmmanage /users/home/www123/user.dbm adduser www123
Dokumentation
25
Dokumentation
Das Kennwort wird im Dialogfenster "Kennwort" eingegeben. Die Datei group.dbm muss angelegt werden und
entspricht in ihrem Aufbau dem Beispiel wie oben. Diese Datei sollte Folgendes enthalten:
admin: www123
Das bedeutet, dass der Benutzer www123 zur Gruppe admin gehört. Die Datei AuthDBMGroupFile ist mit der Datei
AuthGroupFile identisch, was bedeutet, dass es keine Datenbankdatei ist, sondern einfacher Text!
3. 5. Beispiel für Authentifizierung mit IP- oder Domain-Beschränkung
Die Datei .htaccess muss mit dem folgenden Inhalt vorliegen:
order deny,allow
deny from all
allow from customer.net
allow from host.domain.net
allow from 192.168.0.1
AuthType Basic
AuthName Download
AuthUserFile /users/home/www123/user.004
AuthGroupFile /users/home/www123/group.004
Require user webmaster
Require group admin
Satisfy Any
In der Datei user.004 sollen (wie schon weiter oben beschrieben) die User webmaster, www123 und control
angelegt werden.
In der Datei group.004 sollen die User www123 und control Gruppenzugehörigkeit zur Gruppe admin erhalten:
admin: www123,control
Dies bedeutet, dass der Benutzer www123 zur Gruppe admin gehört. Mit diesem Beispiel erreicht man Folgendes:
Der Zugriff von einem nicht spezifizierten Host wird ohne Nutzerkennung verweigert.
Der Zugriff von einem beliebigen Host in der Domain customer.net wird ohne Kennwort gewährt.
Der Zugriff vom spezifizierten Host host.domain.net wird ohne Kennwort gewährt.
Andere müssen sich mit einer gültigen Benutzerkennung aus der Gruppe admin (www123, control) oder dem
Benutzernamen webmaster und dessen Kennwort authentifizieren. Durch Verwendung von satisfy any wurde
festgelegt, dass für host.domain.net, den 192.168.0.1 und Hosts innerhalb von customer.net keine
Authentifizierung erforderlich ist. Im Gegensatz dazu wird mit satisfy all erreicht, dass nur die angegebenen
Hosts oder Domains Zugriff haben und diese sich zusätzlich mit einem Benutzernamen und gültigen Kennwort
authentifizieren müssen.
3. 6. Beispiel für einfache Authentifizierung auf IP- oder Domain-Basis
Die Datei .htaccess muss mit dem folgenden Inhalt vorliegen:
<Location /download>
order deny,allow
deny from all
allow from customer.net
allow from host.domain.net
allow from 192.168.0.1
allow from 192.168.0
</Location>
Dokumentation
26
Dokumentation
Zugriff wird nur customer.net, host.domain.net, 192.168.0.1 oder IPs, die mit 192.168.0 beginnen, gewährt.
<Location /download>
order allow,deny
allow from all
deny from 192.168.0
</Location>
Zugriff wird allen gewährt mit Ausnahme von IPs, die mit 192.168.0 beginnen.
3. 7. Beispiel für anonymen Zugriff
Oftmals wird der Zugriff auf bestimmte Verzeichnisse oder Dateien mit Hilfe von Kennwörtern kontrolliert. In
manchen Fällen ist es jedoch nötig, dass der Gastzugriff auf verschiedene Webseiten möglich ist. Diese
Authentifizierung ist so ähnlich wie "anonymous FTP". Dafür ist der Name des Benutzers und seine E-Mail-Adresse
erforderlich. Natürlich gibt es keine Garantie dafür, dass Name und E-Mail-Adresse authentisch sind. Damit der
anonyme Zugriff ermöglicht werden kann, muss die Datei .htaccess mit dem folgenden Inhalt vorliegen:
AuthName "guest access with ’guest’ and email as password"
AuthType Basic
require valid-user
Anonymous guest gast anonymous Anonymous Gast Guest "let me in"
Anonymous_LogEmail on
Anonymous_VerifyEmail on
Anonymous_MustGiveEmail on
Anonymous_NoUserId off
Anonymous_Authoritative off
Der Benutzer muss guest oder gast usw. als Benutzernamen und eine E-Mail-Adresse als Kennwort eingeben. Die
Benutzernamen- und Kennwort-Felder dürfen nicht leer gelassen werden. Die E-Mail-Adresse wird im
Fehlerprotokoll eingetragen und verifiziert. Bei der Verifizierung wird lediglich die Syntax der E-Mail-Adresse
daraufhin überprüft, ob wenigstens ein "@" und ein "." vorhanden ist. Die Gültigkeit der E-Mail-Adresse wird nicht
geprüft. error_log:
[Wed Jun 13 12:39:39 2001] [info] [client 139.4.37.195]
Anonymous: Passwd <webmaster@customer.net> Accepted
3. 7. 1. Beispiel für anonyme Authentifizierung mit Netscape unter Windows
Anonyme Authentifizierung mit Netscape unter Windows
Dokumentation
27
Dokumentation
3. 8. Verfügbare Befehle für Authentifizierung und Zugriff nach Modulen geordnet
core:
AuthName Name
<Directory> <Files> <Location> .htaccess
AuthType Basic|Digest
<Directory> <Files>
<Location>
.htaccess
Require user|group|valid-user [Name, Name,?.]
<Directory>
<Files>
<Location>
<Limit>
.htaccess
Satisfy Any|All
<Directory> <Files> <Location> <Limit>
.htaccess
mod_auth:
AuthUserFile Filename
<Directory>
<Files>
AuthGroupFile Filename
<Directory>
<Files>
AuthAuthoritative on|off
<Directory>
<Files>
<Location>
.htaccess
<Location>
.htaccess
<Location>
.htaccess
<Location>
.htaccess
<Location>
.htaccess
<Location>
.htaccess
mod_auth_dbm:
AuthDBMUserFile Filename
<Directory>
<Files>
AuthDBMGroupFile Filename
<Directory>
<Files>
AuthDBMAuthoritative on|off
<Directory>
<Files>
mod_auth_anon:
Anonymous User-ID[User-ID,?.]
<Directory>
<Files>
<Location>
Anonymous_LogEmail on|off
<Directory>
<Files>
<Location>
Anonymous_VerifyEmail on|off
<Directory>
<Files>
<Location>
Anonymous_MustGiveEmail on|of
<Directory>
<Files>
<Location>
Anonymous_NoUserID on|off
<Directory>
<Files>
<Location>
Anonymous_Authoritative on|off
<Directory>
<Files>
<Location>
.htaccess
.htaccess
.htaccess
.htaccess
.htaccess
.htaccess
mod_access:
order sequence (Default: deny, allow)
<Directory> <Files> <Location>
deny from Name[Name ?]
<Directory> <Files> <Location>
allow from Name[Name ?]
Dokumentation
<Limit>
.htaccess
<Limit>
.htaccess
28
Dokumentation
<Directory>
<Files>
<Location>
<Limit>
.htaccess
4. Weitere Informationen
Dokumentation und empfohlene Literatur zu den Authentifizierungsmöglichkeiten von Apache ist im Internet und in
gedruckter Form erhältlich:
http://httpd.apache.org/docs/mod/mod_auth.html Das Online-Handbuch von Apache zum Modul mod_auth.
http://httpd.apache.org/docs/mod/mod_auth_dbm.html Das Online-Handbuch von Apache zum Modul
mod_auth_dbm.
http://httpd.apache.org/docs/mod/mod_auth_anon.html Das Online-Handbuch von Apache zum Modul
mod_auth_anon.
Buch: Apache Webserver Apache Webserver
von L. Eilebrecht
3. Auflage 2000
MITP-Verlag
ISBN 3-8266-0612-4
Buch: Apache: The Definitive Guide Apache: The Definitive Guide
von Ben Laurie &amp; Peter Laurie
2. Auflage Februar 1999
O’Reilly &amp; Associates, Inc.
ISBN: 1-56592-528-9
englische Ausgabe
Buch: Apache Pocket Reference Apache Pocket Reference
von Andrew Ford
1. Auflage Juni 2000
O’Reilly &amp; Associates, Inc.
ISBN: 1-56592-706-0
englische Ausgabe
Online verfügbar über http://www.refcards.com/
Dokumentation
29
Dokumentation
Virtuelle Hosts, Server-Aliases und URL-Redirects
Virtuelle Hosts bieten die Möglichkeit, mit mehreren Domain- oder Hostnamen präsent zu sein, ohne zusätzliche
IP-Adressen zu benötigen.
1. Allgemeine Beschreibung
Oft ist es notwendig, einen Webserver aufzuteilen, um unter verschiedenen URLs bzw. Hostnamen zugänglich zu
sein. Apache unterstützt seit Version 1.1 bis zum heutigen Zeitpunkt virtuelle Hosts auf IP-Basis und Namensbasis.
Bei Verwendung von virtuellen Hosts auf Namensbasis ergibt sich der Vorteil, dass man praktisch eine
unbegrenzte Anzahl von Servern erhält.
2. Technische Beschreibung
Die VirtualHost-Direktive erfordert keinerlei Änderungen am Apache-Server. Die Direktive ist Teil vom
Apache-Core.
2. 1. Virtueller Host
Wenn von einem Webserver gesagt wird, er unterstütze virtuelle Hosts, bedeutet das, dass er auf mehrere
Hostnamen parallel reagiert. Für jeden Hostnamen verwaltet der Webserver ein eigenes Document-Root,
Protokolldateien, cgi-Verzeichnis usw. Es ist wirtschaftlicher, einen Server für mehrere Webseiten aufzuteilen, als
für jede Webseite einen eigenen Server zu betreiben. Es gibt zwei Arten von virtuellen Hosts, !! IP-basisierte und
Namens-basisierte. Virtuelle Hosts auf IP-Basis werden hier nur der Vollständigkeit halber erwähnt. Diese
Dokument beschränkt sich auf Namens-basierte virtuelle Hosts.
Die Verwendung von virtuellen Hosts auf Namensbasis haben den Vorteil, dass man praktisch eine unbegrenzte
Anzahl von Webservern erhält und keine zusätzliche Hard- oder Software benötigt. Außerdem ist die Konfiguration
und Handhabung unkompliziert. Der größte Nachteil besteht darin, dass der Client, um einen Namensbasierten
virtuellen Host anzusprechen, ein bestimmtes Protokolls unterstützen muss. Fast alle Browser sind dazu in der
Lage, jedoch gibt es immer noch eine zu vernachlässigbar geringe Zahl (sehr) alter Browser, die dazu nicht fähig
sind. Dies kann zu Problemen führen. Es wird jedoch weiter unten ein Lösungsvorschlag angesprochen.
2. 2. Server-Aliases
Mit der Verwendung der Server-Alias-Directive des Apache ist es möglich, virtuellen Hosts weitere Namen zu
geben. Dies ist nötig, wenn der virtuelle Host auch unter anderen Namen erreichbar sein soll. Alle Alias-Namen
müssen nartürlich auch im DNS definiert sein.
2. 3. URL-Redirects
Die Redirect-Anweisung dient dazu, einen Client, der auf eine bestimmte URL zugegriffen hat, zu einer anderen
URL weiterzuleiten. Dies nennt man eine HTTP- oder URL-Redirect (Umleitung). Im Gegensatz zu einem
Server-Alias bzw. DNS-Eintrag ändert sich die URL in der Adressleiste des Browsers dabei nicht. Die Weiterleitung
geschieht bei den meisten Browsern automatisch.
3. Server-Einstellungen
Virtuelle Hosts, Server-Aliases und URL-Redirects werden von Verizon Business konfiguriert. Dieses Dokument ist
eine Zusammenfassung der Möglichkeiten.
Dokumentation
30
Dokumentation
Voraussetzung: Der Hauptserver ist über www.domain1.de zugänglich und für den Betrieb konfiguriert. Dem
Apache-Server ist die IP 192.168.0.1 zugeordnet. Siehe auch: Apache-Server-Konfiguration
3. 1. Virtuelle Hosts
Z.B. www.domain1.de und www.domain2.de sollen als zwei völlig eigenständige Webseiten erscheinen.
www.domain1.de ist der Hauptserver und www.domain2.de ist der virtuelle Host. Der virtuelle Host soll ein eigenes
Document-Root erhalten, welches sich vom Document-Root des Hauptservers (komplett) unterscheidet. Um den
virtuellen Host zu erstellen, werden mindestens die folgenden zusätzlichen Direktiven in der
Apache-Konfigurationsdatei benötigt:
..
NameVirtualHost 192.168.0.1
<VirtualHost 192.168.0.1>
ServerName www.domain2.de
DocumentRoot /users/www/data--domain2.de
</VirtualHost>
Zusätzliche Direktiven für Protokolle, Optionen usw. können innerhalb des VirtualHost-Abschnitts festgelegt
werden. Es ist außerdem möglich, einen virtuellen Host für einen Port, der kein Standardport ist (z.B. 8080), zu
konfigurieren.
..
Listen 192.168.0.1:80
Listen 192.168.0.1:8080
NameVirtualHost 192.168.0.1
<VirtualHost 192.168.0.1:8080>
ServerName www.domain2.de
DocumentRoot /users/www/data--domain2.de
</VirtualHost>
3. 2. Server-Alias
Falls ein virtueller Host über eine zweite Domain oder einen anderen Hostnamen zugänglich sein soll, ist es
möglich, die ServerAlias-Direktive zum VirtualHost-Abschnitt hinzuzufügen.
<VirtualHost 192.168.0.1>
ServerName www.domain2.de
ServerAlias info.domain2.de
ServerAlias www.domain2.com
DocumentRoot /users/www/data--domain2.de
</VirtualHost>
Der Server (virtuelle Host) ist nun unter den URLs www.domain2.de, info.domain2.de und www.domain2.com zu
erreichen. Außerdem ist die Verwendung von Platzhaltern (sog. Wildcards) möglich.
ServerAlias info.domain2.de *.domain3.de host?.domain2.de
3. 3. URL-Redirect
Wenn ein Server unter mehr als einer URL / Domain erreichbar sein soll, ohne dass ein eigenes Document-Root
eingerichtet werden soll, kann dies mit einem Redirect geschehen. Für einem URL-Redirect wird ein sehr einfacher
virtueller Host zur Apache-Server-Konfiguration hinzugefügt.
Dokumentation
31
Dokumentation
<VirtualHost 192.168.0.1>
ServerName www.domain2.de
Redirect / http://www.domain1.de/
</VirtualHost>
Wenn nun die URL www.domain2.de im Browser eingegeben wird, wird auf den virtuellen Host zugegriffen und
dann auf www.domain1.de umgeleitet. Man kann auch auf ein bestimmtes Verzeichnis und/oder eine Datei
umleiten:
<VirtualHost 192.168.0.1>
ServerName www.domain2.de
Redirect / http://www.domain1.de/dir/site.html
</VirtualHost>
Weiterhin ist es möglich, einen regulären Ausdruck mit Hilfe der Anweisung RedirectMatch zu verwenden.
<VirtualHost 192.168.0.1>
ServerName www.domain2.de
RedirectMatch ^/(.*)\.gif$ /pictures/$1.jpg
</VirtualHost>
Der Name der gif-Datei (in Klammern) wird in der Variablen $1 gespeichert. Wenn ein Client auf ein Bild namens
card.gif (http://www.domain2.de/card.gif) zugreifen will, wird er zu http://www.domains.com/pictures/card.jpg
umgeleitet. In der Address-Zeile des Browsers steht jedoch weiterhin die URL http://www.domain2.de/card.gif
4. Client-Einstellungen
Der Browser muss Host-Header unterstützen. Der Host-Header ist Teil des HTTP/1.1-Protokolls und eine gängige
Erweiterung des HTTP/1.0-Protokolls, bei dem der Browser dem Server den Hostnamen, den er erreichen will,
nennen muss. Die meisten der modernen Browser, die derzeit in Benutzung sind, unterstützen Host-Header. Falls
ein älterer Browser versucht, eine Verbindung zu einem virtuellen Host auf Namensbasis herzustellen, muss der
Server mit einer Liste möglicher virtueller Hosts reagieren.
5. Weitere Informationen
Näheres zur VirtualHost-Anweisung von Apache ist auf der folgenden Webseite und in gedruckter Form erhältlich:
httpd.apache.org/docs/vhosts/index.html Die Online-Dokumentation von Apache zu virtuellen Hosts.
Buch: Apache Webserver Apache Webserver
von L. Eilebrecht
3. Auflage 2000
MITP-Verlag
ISBN 3-8266-0612-4
Buch: Apache: The Definitive Guide Apache: The Definitive Guide
von Ben Laurie &amp; Peter Laurie
2. Auflage Februar 1999
O’Reilly &amp; Associates, Inc.
ISBN 1-56592-528-9
englische Ausgabe
Buch: Apache Pocket Reference Apache Pocket Reference
von Andrew Ford
1. Auflage Juni 2000
O’Reilly &amp; Associates, Inc.
ISBN 1-56592-706-0
englische Ausgabe
Dokumentation
32
Dokumentation
Online verfügbar über http://www.refcards.com/
Dokumentation
33
Dokumentation
Konfiguration des Apache Webservers
Dieses Dokument beschreibt die Konfiguration des Apache Webservers in der Verizon Business Virtual
Machine-Umgebung. Im ersten Teil werden die Standardeinstellungen behandelt. Anschließend folgen
Beschreibungen der verschiedenen Erweiterungsmöglichkeiten von Apache.
1. Apache-Standardkonfiguration
1. 1. Konfigurationsdateien
Die Apache-Konfigurationsdateien befinden sich im Apache-Instanzenverzeichnis, d.h.
/users/www/httpd-www.customer.net/etc/ (siehe Setup des Apache Webservers). Die Konfiguration ist
auf verschiedene Dateien aufgeteilt:
httpd.conf Dies ist die Hauptkonfigurationsdatei von Apache. Alle für die gesamte Instanz gültigen Einstellungen
werden in dieser Datei vorgenommen.
mime.types Diese Datei enthält die Liste der Standardzuordnungen zwischen Dateinamenerweiterungen und
MIME-Inhaltstypen. Wie man weitere MIME-Zuordnungen hinzufügt, ist im Abschnitt Hinzufügen von
MIME-Typenzuordungen beschrieben.
vhost.conf Alle individuellen Konfigurationen für virtuelle Hosts werden in dieser Datei vorgenommen.
access.conf und srm.conf Diese Dateien sind aus historischen Gründen noch verfügbar (eine humorvolle Erklärung
hierzu finden Sie in einem Artikel auf der Apache-Webseite). Sie enthalten jetzt nur noch Kommentare.
Neben diesen Dateien, die auf allen Installationen vorhanden sind, können bei Bedarf weitere
Konfigurationsdateien für spezielle Apache-Module installiert werden. Die Konfigurationsdateien sind nur für
Verizon Business Webmaster schreibbar.
1. 2. Standardeinstellungen der Apache-Parameter
Verizon Business verwendet im Allgemeinen die von der Apache-Gruppe empfohlenen Standardeinstellungen.
Einige Parameter wurden jedoch angepasst, um der Virtual Machine-Umgebung zu entsprechen und die Sicherheit
zu erhöhen. Eine Liste der interessantesten Einstellungen ist weiter unten zu finden. Nicht aufgeführte Parameter
können in httpd.conf eingesehen werden. Viele Einstellungen können vom Kunden geändert werden. Die
Vorgehensweise wird unten erklärt.
1. 2. 1. Apache-Benutzer und -Gruppe
Aus Sicherheitsgründen läuft der Apache-Server unter Benutzer und Gruppe www000. Dieser Benutzer muss
Lesezugriff auf alle Dateien haben, die vom Server genutzt werden (z.B. HTML-Dateien und CGIs). Darüber hinaus
müssen CGI-Programme für diesen Benutzer ausführbar sein. Dateien, die durch Skripts generiert wurden, die
durch den Server laufen, gehören ebenfalls Benutzer und Gruppe www000.
1. 2. 2. Verzeichnisindizes
Wenn auf ein Verzeichnis über HTTP zugegriffen wird, sucht der Apache-Server nach einigen Dateien, die ihm als
vorgegebener Verzeichnisindex dienen. Standardmäßig sind das die Dateien index.html, index.htm, index.php,
index.shtml und index.jsp. Andere Dateien können über die DirectoryIndex-Direktive festgelegt werden.
Falls keine Verzeichnisindexdatei existiert, kann der Apache-Server einen Index generieren, der den Inhalt des
Verzeichnisses aufführt. Dies ist in der Standardkonfiguration deaktiviert, kann aber durch Einfügen von Options
+Indexes in die .htaccess-Datei eingeschaltet werden. Die Direktive IndexOptions (Standard ist
FancyIndexing) steuert das Erscheinungsbild der generierten Liste. Die für FancyIndexing verwendeten
Symbole befinden sich im Verzeichnis /icons/, was ein Alias für /usr/local/apache/icons/ ist.
Dateien, die den regulären Ausdrücken
Dokumentation
34
Dokumentation
.??* *~ *# HEADER* README* RCS CVS *,v *,t
entsprechen, werden über die IndexIgnore-Direktive von der Verzeichnisauflistung ausgenommen.
1. 2. 3. Prozesssteuerung
Der Apache-Server besteht aus einem Hauptprozess und vielen Kindprozessen. Letztere werden bei Bedarf vom
Hauptprozess gestartet und führen die eigentliche Verarbeitung der eingehenden Anfragen aus. Es laufen
höchsten 256 Prozesse gleichzeitig. Der Hauptprozess steuert den Pool der Kindprozesse. Wenn vom
Elternprozess viele Anfragen empfangen wurden, startet dieser neue Kindprozesse, die dann die Anfragen
verarbeiten. Um die schnelle Abwicklung von Anfragen zu ermöglichen, sollte immer wenigstens ein freier
Kindprozess vorhanden sein. Gesteuert wird dies über die MinSpareServers -Direktive, die standardmäßig auf 1
gesetzt ist. Eine hohe Anzahl freier Prozesse würde allerdings Speicherplatz verschwenden. Daher vernichtet der
Elternprozess freie Kindprozesse, wenn deren Anzahl einen durch die MaxSpareServers-Direktive festgelegten
Grenzwert überschreitet (standardmäßig auf 5 eingestellt). Für Sites mit großer Auslastung sind die
Standardeinstellungen eventuell ungeeignet. Wenn der Apache LogLevel mindestens auf info eingestellt wird,
führt dieses zu Meldungen im error_log wie:
[Tue Oct 30 08:53:48 2001] [info] server seems busy, (you may need to increase
StartServers, or Min/MaxSpareServers), spawning 8 children, there are 0 idle,
and 12 total children
Diese Meldungen dienen nur zur Information, alle Anfragen an den Server werden richtig bearbeitet. Um die
Leistung zu erhöhen, können die Standardeinstellungen durch die Verizon Business Webmaster angepasst
werden.
1. 2. 4. Anhaltende (persistente) HTTP-Verbindungen
HTTP/1.1 hat das Konzept der persistenten Verbindungen per KeepAlive eingeführt. Apache unterstützt diese
Funktion standardmäßig. Wenn sie aktiviert ist, werden TCP-Verbindungen nicht nach jeder Anfrage geschlossen,
sondern eine gewisse Zeit lang offen gelassen. Daher kann die nächste Anfrage vom Client gesendet werden,
ohne dass ein Overhead durch das Öffnen einer neuer TCP-Verbindung entsteht. Der Nachteil dieses
Mechanismus ist, dass Angriffe, die auf das Blockieren von Diensten (DoS = Denial-of-Service) zielen, bei
KeepAlive-aktivierten Servern relativ einfach auszuführen sind. Aus diesem Grund arbeiten die Verizon Business
Server nicht mit KeepAlive.
2. Anpassen der Konfiguration des Apache-Servers
Die Standardkonfiguration lässt sich auf verschiedene Arten anpassen, ohne dass Konfigurationsdateien geändert
werden müssen. Mit den .htaccess-Dateien im Document-Root und seinen Unterverzeichnissen können
verschiedene Funktionen des Servers gezielt gesteuert werden. Einige Möglichkeiten werden weiter unten erklärt.
Das Hinzufügen von Zugriffsbeschränkungen wird in einem separaten Dokument behandelt.
Es lassen sich noch viele andere Direktiven in .htaccess-Dateien verwenden. Ob dies bei einer bestimmten
Direktive möglich ist, kann dem Feld Context: der jeweiligen Direktivenbeschreibung im Apache-Manual
entnommen werden.
Änderungen an der Konfiguration, die nur über Konfigurationsdateien möglich sind, können über die Verizon
Business Webmaster angefordert werden. Sie werden überprüfen, ob die Modifikationen die Verizon Business
Standards erfüllen und diese dann implementieren.
Dokumentation
35
Dokumentation
2. 1. Hinzufügen von MIME-Typenzuordnungen
Viele gängige Dateinamenerweiterungen sind bereits MIME-Inhaltstypen in der Konfigurationsdatei mime.types
zugeordnet. Es besteht auch die Möglichkeit, die Konfiguration um zusätzliche, benutzerdefinierte Zuordnungen zu
erweitern. Hierfür lässt sich die Direktive
AddType
in .htaccess verwenden. Sie weist eine gegebene Dateinamenerweiterung dem spezifizierten Inhaltstyp zu. Die
Zeile
AddType text/html .foo
würde den Server anweisen, Dateien mit der Erweiterung .foo als HTML-Seiten anzubieten, wodurch der Browser
dann nicht die HTML-Quelle anzeigt, sondern die Seite wiedergibt. Einige Browser (z.B. Microsoft IE) verwenden
statt den vom Server gelieferten Inhaltstyp ihren eigenen Mechanismus zur Erkennung der Art des Inhalts.
2. 2. Server Side Includes (SSI)
Manchmal wäre es praktisch, oft vorkommende Kopf- oder Fußzeilen für HTML-Seiten in eine einzige Datei zu
verschieben. Dies (und vieles andere) ist mit Server Side Includes möglich. Sie können in normalen HTML-Dateien
spezielle Direktiven platzieren, die dann von Apache bei jeder Anforderung der Datei ausgewertet werden. Dies
erfolgt durch Einfügen der Direktive
Options +Includes
in eine .htaccess-Datei. Die Handler- und Type-Direktiven
AddType text/html .shtml
AddHandler server-parsed .shtml
sind in der Standardkonfiguration bereits enthalten. Sämtliche Dateien mit der Erweiterung .shtml werden nun vom
Server analysiert und alle SSI-Anweisungen ausgewertet.
Mehrere verschiedene Anweisungen sind möglich, angefangen beim Einbinden anderer Dateien, der Definition und
Ausgabe von Variablen bis hin zu bedingten Anweisungen. Einige Beispiele folgen, die komplette Liste finden Sie
im Apache Manual.
Die Direktive
<!-- #include virtual="/footer.html" -->
schließt die Datei footer.html im Document-Root des Hosts ein.
Dieses Dokument wurde zuletzt am <!?#echo var="LAST_MODIFIED" ?> geändert.
gibt einen Satz aus, der darüber Aufschluss gibt, wann die verarbeitete Datei geändert wurde.
2. 3. Angepasste Fehlermeldungen
Der Apache-Server gibt standardmäßig vorprogrammierte Fehlermeldungen aus, wenn eine HTTP-Anfrage
fehlschlägt, beispielsweise wenn die angeforderte Datei nicht gefunden wurde. Mit der Direktive
ErrorDocument
Dokumentation
36
Dokumentation
besteht die Möglichkeit, nützlichere, angepasste Fehlermeldungen anzubieten. Die Direktive beinhaltet zwei
Argumente: einen HTTP-Antwort-Code (siehe vollständige Liste in RFC 2616), für den die neue Fehlermeldung
konfiguriert werden soll, sowie eine Meldung, einen Dateinamen oder eine Umleitungs-URL. Eine Meldung ist ein
einfacher String (beginnt mit dem doppelten Anführungszeichen ", endet jedoch ohne abschließendes ") die statt
der vorprogrammierten Apache-Meldung ausgegeben wird. Ein Dateinamen spezifiziert eine Datei auf dem lokalen
Server im Document-Root und muss mit einem Schrägstrich / beginnen. Im Falle eines Fehlers wird der Inhalt
dieser Datei an den Client weitergegeben. Eine Umleitungs-URL hat die Form
http://www.customer.net/dir/filename und kann auf jeden Server im Internet verweisen (auch auf
denselben Server). Dies lässt den Server im Fehlerfall einen HTTP-Redirect (Antwort-Code 302) zu der
angegebenen URL senden, und verbirgt somit den Fehler.
Einige Beispiele:
ErrorDocument 403 "Sie sind nicht autorisiert, diese Informationen zu sehen!
ErrorDocument 404 /not_found.html
ErrorDocument 500 http://other.site.com/server_down.html
Das erste Beispiel gibt die spezifizierte Meldung aus, wenn das Verzeichnis über Zugriffsbeschränkungen
gesichert ist und der Benutzer ein falsches Kennwort eingibt. Falls der Benutzer ein nicht zu findendes Dokument
anfordert, wird im zweiten Beispiel der Inhalt der Datei not_found.html aus dem Dokument-Root angezeigt. Sollte
der Server auf einen internen Fehler stoßen, wird der Surfer in Beispiel drei zu einer Seite auf einem anderen
Server umgeleitet, wo der Fehler eventuell weitergehend erklärt wird.
2. 4. content negotiation und Sprachauswahl mit Multiviews
Die HTTP/1.1-Spezifikation enthält leistungsstarke Mittel, um die bestmögliche Entsprechung einer Ressource auf
Basis von Voreinstellungen zu liefern. Die meisten Browser sind in der Lage,
Accept-Language
-Header in HTTP-Anfragen zu verschicken, die die bevorzugte Sprache des Benutzers angeben. Der integrierte
Mechanismus zur content negotiation ermöglicht dem Apache-Server, eine Datei entsprechend dieser
Voreinstellung auszuwählen.
Um diesen Mechanismus zu aktivieren, muss die folgende Zeile in .htaccess eingefügt werden:
Options +MultiViews
Verschiedene Sprachen und Spracherweiterungen sind bereits für die Verwendung mit der content negotiation
konfiguriert. Wenn eine Anfrage für filename.html zusammen mit dem Header
Accept-Language: en, de
eingeht, sucht der Server nach einer Datei namens filename.html.en. Falls vorhanden, wird diese Datei zurück an
den Client geschickt. Wenn nicht, sucht der Server nach der Datei filename.html.de und gibt diese zurück, sofern
sie gefunden wurde.
Neben den Sprachen können auch Codierungen und Dateitypen je nach Voreinstellungen des Clients gewählt
werden. Das Apache Content Negotiation Tutorial geht näher auf dieses Thema ein.
Es sollte beachtet werden, dass die content negotiation viele Plattenzugriffe benötigt, um die richtige Datei zu
finden und dadurch langsam werden kann. Sie sollte daher nach Möglichkeit nur für einen kleinen Teil einer
Webseite verwendet werden.
Dokumentation
37
Dokumentation
3. Erweitern des Apache-Servers mit Modulen
Damit ein Maximum an Flexibilität gewährleistet ist, installiert Verizon Business den Apache-Server mit
Unterstütung für Dynamic Shared Object (DSO). Das bedeutet, dass sich Apache-Module leicht über die Direktiven
LoadModule
und
AddModule
zum Server hinzufügen lassen, ohne dass die httpd-Binärdatei geändert werden muss.
Verschiedene Apache-Standardmodule sind bereits auf Verizon Business Servern installiert. Aus
Sicherheitsgründen und zur Begrenzung der Serverlast ist allerdings inbesondere auf Shared Servern nur ein
begrenzter Satz an Modulen standardmäßig aktiviert. Manche Module stehen nur auf dedizierten Servern zur
Verfügung (z.B. mod_rewrite). Für die Installation gewisser Module kann je nach Vertragsbedingungen mit
Verizon Business eine Gebühr erhoben werden. Die Verizon Business Webmaster werden Ihnen gerne alle Fragen
bezüglich Modulinstallationen beantworten.
Weiter unten finden Sie Praxisbeispiele für einige Standardmodule. Links zu Dokumentationen, die komplexere
Module wie PHP, Tomcat oder FrontPage behandeln, sind im Dokument "Apache Webserver" zu finden.
3. 1. Anzeigen des Server-Status
Bei mod_status handelt es sich um ein Modul, das den Server-Status als HTML-Seite anzeigen kann. Wenn es
aktiviert ist, lässt sich der Serverstatus über HTTP bei /server-status auf jedem konfiguriertem Host des
Apache-Servers einsehen, z.B. über die URL http://www.customer.net/server-status. Die Seite ist gegenüber
anonymen Zugriff gesichert. Nur Benutzer, die in der Kennwortdatei
/users/www/httpd-customer.net/conf/admin.passwd geführt werden, dürfen die Statusseite einsehen.
Das Dokument "Apache-Zugriffsbeschränkungen" erklärt, wie neue Benutzer mit dem Befehl htpasswd erklärt,
wie neue Benutzer mit dem Befehl der Datei hinzugefügt werden können.
Standardmäßig ist die Direktive ExtendedStatus gesetzt. Dies zeigt detaillierte Informationen zum Status eines
jeden Apache-Kindprozesses, einschließlich letzter HTTP-Anfrage. Die genaue Bedeutung der angezeigten Zahlen
wird auf der Manual Page von mod_status erklärt.
3. 2. URL-Manipulation mit mod_rewrite
mod_rewrite ist ein sehr leistungsstarkes und komplexes Werkzeug, um URLs schnell umzuschreiben. Mit Hilfe
sogenannter rewrite rules (Umschreibregeln) ist es möglich, Anfragen an andere Adressen umzuleiten und ein
unsichtbares Proxying durchzuführen. Die jeweils gewählte Aktion kann von der gegebenen Anfrage, den Serveroder Umgebungsvariablen oder den HTTP-Headers abhängen. Mit Hilfe von regulären Ausdrücken werden
Anfragen mit den Regeln verglichen und extrahiert. Dieses Modul ist zu komplex, um hier vollständig darauf
einzugehen, daher nur ein kurzer Überblick. Ausführlichere Informationen finden Sie in der Online-Dokumentation
zu mod_rewrite.
Nach der Aktivierung von mod_rewrite kann das Modul über Direktiven in den .htaccess-Dateien, die sich im
Document-Root oder seinen Unterverzeichnissen befinden, konfiguriert werden. Die Direktiven zu den
Protokollfunktionen lassen sich in den .htaccess-Dateien nicht konfigurieren - sie müssen von den Verizon
Business Webmastern zur Datei mod_rewrite.conf hinzugefügt werden.
Steht die Direktive
Dokumentation
38
Dokumentation
RewriteEngine On
in einer .htaccess-Datei, so aktiviert diese die URL-Umschreibroutine für dieses Verzeichnis mit all seinen
Unterverzeichnissen. Dies ist die Voraussetzung für alle weiteren Beispiele.
Die Direktive
RewriteRule
benötigt zwei Argumente: das Muster, ein regulärer Ausdruck, der mit der Anfrage verglichen wird, und den Ersatz,
der beschreibt, wie die resultierende Anfrage konstruiert werden sollte. Außerdem können zusätzlich Bits gesetzt
werden, um das Regelverhalten zu steuern. Die Regel
RewriteRule ^somepath/(.*) /otherpath/$1
leitet beispielsweise Anfragen für http://www.customer.net/somepath/filename
http://www.customer.net/otherpath/filename
zur
Datei
um. Dies ist für den Benutzer nicht ersichtlich, da keine externe URL-Umleitung durchgeführt wird. Die ist ebenfalls
möglich, wenn man [R] (für Redirect) an die Regel anhängt. Der Ausdruck (.*)
im Muster vergleicht alles und speichert dies in einer Referenzvariablen. Der Inhalt kann mit $1
(für die erste Gruppierung in Klammern im Muster) im Ersatz verwendet werden.
RewriteCond
definiert Regelbedingungen, die bestimmte Variablen prüfen. Wenn Bedingungen wahr sind, wird die nachfolgende
RewriteRule
auf die URL angewendet. Die folgenden Bedingungen und Regeln zeigen verschiedene Seiten je nach aktueller
Uhrzeit an:
RewriteCond
RewriteCond
RewriteRule
RewriteRule
%{TIME_HOUR}%{TIME_MIN} >0800
%{TIME_HOUR}%{TIME_MIN} <1800
^index\.html$
index.day.html
^index\.html$
index.night.html
Dies sind nur wenige Beispiele der möglichen Umschreibregeln. Weitere praxisorientierte Beispiele können dem
hervorragenden URL Rewriting Guide entnommen werden.
Dokumentation
39
Dokumentation
Setup des Apache Webservers
Dieses Dokument beschreibt das Setup des Apache Webservers in der Verizon Business Virtual
Machine-Umgebung. Auf die Hierarchie des Dateisystems wird ausführlich eingegangen. Anschließend folgt eine
Erklärung des Startmechanismus. Die Apache-Konfiguration selbst ist Thema eines separaten Dokuments.
1. Speicherorte von Apache-Dateien
Die Apache-Dateien befinden sich an drei verschiedenen Orten. Auf jedes Verzeichnis wird unten einzeln
eingegangen.
1. 1. Pfade der Programminstallation
Alle von Verizon Business gelieferten Apache-Binärdateien und -Bibliotheken sind in /usr/local/apache/
installiert (was tatsächlich ein Link zu einem Verzeichnis mit dem Namen der installierten Apache-Version ist). Die
Struktur unter diesem Verzeichnis sieht wie folgt aus:
bin/ Die Binärdateien für den HTTP-Daemon httpd, das Kennwortänderungstool htpasswd sowie das
Apache Extension-Tool apxs befinden sich hier.
cgi-bin/ Einige CGI-Testprogramme.
conf/ Die Standard-Konfigurationsdateien aus der Apache-Distribution. Diese werden nicht verwendet und
stehen nur zu Referenzzwecken zur Verfügung.
htdocs/ Speicherort der Server-Dokumentation im Unterverzeichnis manual.
Wenn Sie das Manual über HTTP einsehen wollen, platzieren Sie ein Link zu diesem Verzeichnis im
Document-Root-Verzeichnis des Servers mit
ln -s /users/local/apache/htdocs/manual apache-manual
Das Manual ist nun über http://www.customer.net/apache-manual/ zugänglich.
icons/ Eine Sammlung von Symbolen, die für illustrierte automatische Verzeichnisindizes verwendet werden.
include/ Hier befinden sich die Include-Dateien, die zur Kompilierung weiterer Apache-DSO-Module
benötigt werden.
libexec/ Speicherort gemeinsam genutzter Bibliotheken und Apache-Modulen.
logs/ Nicht benutztes, leeres Verzeichnis für Protokolldateien.
man/ Manual pages für die Programme in bin/.
proxy/ Nicht benutztes, leeres Verzeichnis für die Proxy-Funktion.
Die installierten Dateien und ausführbaren Binärdateien können vom Kunden nicht geändert werden und sind auf
allen Virtual Machines gleich.
1. 2. Globale und individuelle Apache-Instanzenkonfigurationen
Die individuelle Konfiguration der Apache-Server-Instanzen wird mit Dateien unter /users/www/ durchgeführt.
Folgende Verzeichnisse sind standardmäßig enthalten:
cgi-uunet/ Einige CGI-Beispielprogramme, die von Verizon Business bereitgestellt wurden. Diese
Programme lassen sich nicht von diesem Speicherort aus verwenden, sondern müssen in ein cgi-Verzeichnis
des jeweiligen Hosts, auf dem sie benutzt werden sollen, kopiert werden (siehe nächsten Abschnitt).
conf/ Serverweite Konfigurationsdateien, die von CGI-Programmen oder Apache-Modulen benötigt werden.
lib/ Serverweite Bibliotheken für einige CGI-Programme.
log/ Protokolldateien aus einigen CGI-Programmen.
Dokumentation
40
Dokumentation
Für jede separate Apache-Instanz gibt es auch ein Verzeichnis mit dem Präfix httpd- gefolgt vom
Hauptdomainnamen der Instanz (z. B. httpd-customer.net). Normalerweise existiert nur ein einziges Verzeichnis
dieser Art. Die folgenden Dateien und Unterverzeichnisse befinden sich in jedem Apache-Instanzenverzeichnis:
conf/ Konfigurationsdateien für Apache-Module wie Tomcat, die für alle konfigurierten Hosts dieser
Apache-Instanz gültig sind. control.conf Konfigurationsdatei für den Start des Apache-Servers. Die Syntax
ist weiter unten beschrieben.
etc/ Dieses Verzeichnis enthält die Apache-Konfigurationsdateien. Die Standardkonfiguration wird in einem
separaten Dokument behandelt.
log/ Dies ist ein Link zum Hauptprotokollverzeichnis in /users/webs/HOSTNAME/log wobei HOSTNAME
der Name der Virtual Machine ist (siehe nächsten Abschnitt). Aus rein praktischen Gründen bereitgestellt.
tmp/ Ein Verzeichnis für temporäre Dateien des Apache-Servers.
1. 3. Konfiguration für spezifische Hosts
Eine einzelne Apache-Instanz kann Webseiten für verschiedene Hostnamen liefern. Dafür stehen verschiedene
Methoden zur Verfügung, die hier beschrieben sind. Normalerweise gibt es einen Standardhost mit dem Namen
der Virtual Machine. Webseiten aus dem Document-Root-Verzeichnis dieses Hosts werden auch bei
HTTP-Anfragen mit keinen oder unbekannten Host-Headern geliefert. Dateien, die zum Standardhost der Virtual
Machine www.customer.net gehören, befinden sich meist im Verzeichnis
/users/webs/www.customer.net/. Zusätzliche virtuelle Hosts auf Namensbasis für andere Domains besitzen
ähnliche Verzeichnisse unter /users/webs/. Jeder Host verfügt über sein eigenes Dokument-Root,
CGI-Verzeichnis, Protokolldatei- und Statistikenverzeichnis innerhalb seines Host-Verzeichnisses. Letzteres setzt
sich aus den folgenden Unterverzeichnissen zusammen:
cgi/ Der Speicherort für CGI-Programme und -Skripts. Näheres zu CGI auf Verizon Business Servern finden
Sie in einem separaten Dokument.
conf/ Spezielle Konfigurationsdateien für diesen Host.
customlog/ Protokolldateien von Apache-Modulen wie mod_rewrite oder Tomcat.
data/ Das Document-Root-Verzeichnis für den jeweiligen Host. In diesem Verzeichnis müssen die
HTML-Dokumente abgelegt werden, damit sie über HTTP einsehbar sind.
log/ Dieses Verzeichnis enthält die aktuellen Zugriffs- und Fehlerprotokolldateien (access_log bzw. error_log)
und die archivierten, komprimierten Protokolldateien der letzten 80 Tage (in separate Unterverzeichnisse
aufgeteilt).
stat/ Hier sind die automatisch generierten Statistiken abgespeichert. Detailliertere Informationen zum
Erstellungsprozess von Protokollen und Statistiken sind im Statistik-Dokument enthalten.
Weitere Unterverzeichnisse können vorhanden sein, wenn Zusatzmodule für den Apache installiert sind.
2. Starten und Steuern des Apache-Servers
Alle Apache-Instanzen werden zum Bootzeitpunkt von einem init Skript namens httpd gestartet. Der Webserver
wird in Runlevel 3 gestartet.
Um die anschließende Ausführung von Apache zu steuern, liefert Verizon Business eine Reihe von
Steuerprogrammen, zusammengefasst als wwwctrl.. Diese Programme befinden sich in /usr/local/bin/.
Benutzer, die zur Gruppe www-ctrl gehören, dürfen diese Programme ausführen.
Hinweis: Es können nur Benutzer auf dedizierten Systemen in die Gruppe www-ctrl aufgenommen werden.
Die folgenden Befehle sind verfügbar:
Dokumentation
41
Dokumentation
www-start
Hiermit wird der Apache-Server gestartet.
www-stop
Hiermit wird der Apache-Server gestoppt.
www-restart
Dies ist eine praktische Kombination von
www-start
und
www-stop
Einige Änderungen (z. B. an control.conf) benötigen diesen Vorgang zur Aktivierung.
www-reload
Hiermit wird ein HUP-Signal an Apache gesendet. Der Server beendet alle Kindprozesse, liest die
Konfigurationsdateien neu ein und startet neue Kindprozesse. Änderungen an der Konfiguration lassen sich mit
diesem Befehl aktivieren.
www-test
Mit diesem Befehl kann überprüft werden, ob die Konfigurationsdateien gültig sind. Der Apache-Server analysiert
die Konfigurationsdateien nur, meldet eventuell vorhandene Fehler und beendet sich dann wieder. Es wird kein
Netzwerk-Service gestartet.
Zusätzliche Optionen für eine Apache-Serverinstanz sind über die Datei control.conf im Verzeichnis der
Apache-Instanz verfügbar. Diese Datei wird vom init-Skript httpd gelesen. Es handelt sich dabei im Grunde
genommen um ein Shell-Skript, das einige Shell-Variablen definiert. Die Variable START_HTTPDsollte auf yes oder
YES gesetzt werden, wenn die Apache-Instanz gestartet werden soll. Ist sie auf irgendeinen anderen Wert
eingestellt, wird die Apache-Instanz nicht gestartet.
HTTPD_OPT enthält die zusätzlichen Optionen, die beim Apache-Start an die auszuführende httpd geliefert
werden. Normalerweise definieren diese Optionen Namen für den Gebrauch in IfDefine-Direktiven in
Apache-Hostkonfiguration, beispielsweise -DStatus.
Optionen können in einen einzigen String geschrieben werden, lassen sich aber auch in separaten Zeilen
hinzufügen:
START_HTTPD=´yes´
HTTPD_OPT=´-DStatus´
HTTPD_OPT="$HTTPD_OPT -DPHP4"
Dies ermöglicht die Änderung der control.conf durch automatische Prozesse wie Paketinstallationen. Daher ist die
zweite Methode vorzuziehen. Vorhandene Zeilen sollten unberührt bleiben.
Weitere Umgebungsvariablen wie LD_LIBRARY_PATH, die von manchen Apache-Modulen benötigt werden,
können ebenfalls in control.conf gesetzt werden, müssen jedoch exportiert werden, damit sie dem nachfolgend
ausgeführten httpd ersichtlich sind:
Dokumentation
42
Dokumentation
export LD_LIBRARY_PATH="/usr/local/lib"
Jegliche Änderungen in control.conf sollten im Vorfeld mit den Verizon Business Webmastern abgesprochen
werden.
3. Weitere Informationen
Näheres zum Apache-Setup ist auf dem Server oder dem Client-System erhältlich:
Manual page Für die Steuerprogramme
wwwctrl
verfügbar auf der Virtual Machine über den Befehl
man
Dokumentation
43
Dokumentation
Common Gateway Interface (CGI)
CGI ist die Standardschnittstelle zu externen Anwendungen.
1. Allgemeine Beschreibung
Beim Common Gateway Interface handelt es sich um ein Protokoll, das bei der Kommunikation zwischen einem
Webserver und einer externen Anwendung zum Einsatz kommt. Die externe Anwendung wird meist CGI-Skript
genannt. Der Webserver führt das CGI-Skript als Kindprozess aus und leitet Daten an diesen Prozess weiter. Die
Ausgabe des Skripts wird dann an den Client (Browser) geliefert, wie dies auch mit einer statischen HTML-Seite
geschehen würde.
Ein Beispiel für ein CGI-Programm ist eine Suchmaschine. Nach Eingabe einiger Suchwörter in ein Formular auf
einer Webseite, gibt die Suchmaschine eine Liste von Webseiten zurück, die diese Wörter enthalten. Hinter den
Kulissen werden die in das Suchformular eingegebenen Informationen an ein Programm auf dem Server geschickt,
der Server führt eine Suche auf der Datenbank der Suchmaschine aus, sendet die Ergebnisse zurück und
präsentiert sie in Form einer Webseite. Dabei macht CGI all diese Vorgänge möglich. Andere Beispiele für
CGI-Programme wären Seitenzähler, E-Mail-Formulare, Einkaufswagen und Mitteilungsbretter.
2. Schreiben eines CGI-Skripts
Perl und sein CGI-Modul werden für viele CGI-Anwendungen verwendet. Diese Skripts müssen nicht kompiliert
werden, sind weit verbreitet und relativ einfach zu verstehen. Shell-Skripts, die mit bash, sh, csh, tcsh geschrieben
wurden, sind nicht geeignet. Die shellspezifische Angewohnheit, den Inhalt von Variablen zu erweitern und
auszuführen, kann zu Problemen mit schweren Sicherheitsauswirkungen führen. Programme, die in C und C++
geschrieben wurden, können benutzt werden. Ein Compiler ist zwar installiert, für den Kompilierprozess steht
jedoch kein Support zur Verfügung.
2. 1. Fehlermeldungen des Servers
Falls ein CGI-Skript nicht erfolgreich ausgeführt werden konnte, gibt der Server einen "Internal Server Error" aus. In
einem solchen Fall sollte der Grund für das Scheitern in die STDERR-Datei von Perl geschrieben werden. Die
Ausgabe ist im error_log des Webservers zu finden.
3. Benötigte Serverinformationen zur Ausführung des CGI-Skripts
Die erste Zeile des Skripts sollte den Pfad zu Perl enthalten, also wo es auf dem Server installiert ist:
#!/usr/local/bin/perl
Der Pfad zum Document-Root (Verzeichnis, wo die Datei index.html gespeichert
/users/webs/HOSTNAME/data/, wobei HOSTNAME der Name der Virtual Machine ist.
sein
sollte):
Je nachdem, welches CGI-Programm installiert werden muss, kann das Programm nach dem Pfad des
Mail-Programms des Servers fragen: /usr/lib/sendmail.
Weitere Informationen zum Speicherort von Programmen und der Verzeichnisstruktur des Servers ist im Dokument
"setup" zu finden.
Dokumentation
44
Dokumentation
3. 1. Verwendung vorkompilierter Programme
Hinweis: Verizon Business verwendet das Solaris Betriebsystem auf Sun Servern. Falls das vorkompilierte
Programm auf diesem Betriebsystem nicht funktioniert, bietet Verizon Business keinerlei Unterstützung.
4. Hochladen des CGI-Skripts
Wenn das Skript geschrieben ist, kann es zum cgi-bin-Verzeichnis /users/webs/HOSTNAME/cgi/ des Servers
hochgeladen werden, wobei HOSTNAME der Name der Virtual Machine ist.
Hinweis: CGI-Skripte sollten im ASCII-Modus hochgeladen werden.
Das FTP-Progamm lädt Dateien standardmäßig im Binärmodus hoch, was für die meisten Dateien kein Problem
darstellt, mit Ausnahme von CGI-Dateien. Der Grund für das Hochladen der CGI-Programme im ASCII-Modus
besteht darin, dass Betriebssysteme wie Windows einfache Textzeilen mit einem Zeilenumschaltung und einem
Zeilenvorschub beenden (Steuerzeichen ^M^J in DOS/Win, \r\n in C oder Unix), Unix-Systeme aber Zeilen nur mit
einem Zeilenvorschub (\n) abschließen. Daher laufen CGI-Scripte mit Zeilenumschaltungen nicht auf einem
Unix-Webserver.
Tipp: FTP-Programme wie WS_FTP können Zeilenumschaltungen automatisch entfernen, wenn sie auf
ASCII-Modus eingestellt sind. Wenn beim FTP-Programm die automatische Erkennung des Dateityps eingestellt
wird, sollte sichergestellt werden, dass CGI- und PL-Dateinamenerweiterungen ebenfalls als ASCII erkannt
werden.
Das Programm
dos2unix
steht für die Konvertierung von Textdateien vom DOS- ins ISO-Format zur Verfügung. Falls das Hochladen im
Binär- und nicht im ASCII-Modus stattgefunden hat, kann eine Konvertierung mit diesem Programm durchgeführt
werden.
5. Vorbereiten des CGI-Skripts für die Ausführung
Nach dem Hochladen des CGI-Skripts in das Verzeichnis cgi-bin, muss das CGI-Skript noch ausführbar gemacht
werden. Dies kann entweder durch Anmelden bei der Maschine mit einem SSH-Client oder durch Verwendung
eines FTP-Clients geschehen.
5. 1. Vorbereiten des CGI-Skripts für die Ausführung mit SSH
ssh -l username testserver.uu.net
Passwd:
cd /users/webs/testserver.uu.net/cgi/
chmod 775 testscript
Die Datei ist jetzt ausführbar und bereit für den Einsatz.
5. 2. Vorbereiten des CGI-Skripts für die Ausführung mit FTP
WS_FTP für Windows: Gehen Sie mit FTP auf die Webseite. Klicken Sie mit der rechten Maustaste auf die Datei
oder das Verzeichnis und wählen Sie
Dokumentation
45
Dokumentation
chmod
aus dem Einblendmenü. Bei Verzeichnissen (Ordnern) klicken Sie mit der rechten Maustaste auf das Verzeichnis,
wählen SITE und geben den Unix-Befehl ein.
Beispiel: Um das Verzeichnis "Forms" auf 755 zu setzen, würde der Befehl
chmod 755 forms
lauten.
CuteFTP für Windows: Klicken Sie mit der rechten Maustaste auf eine Datei oder ein Verzeichnis und wählen Sie
Change file attributes aus dem Popup-Menü. Damit Sie die Unix-Dateizugriffsrechte im FTP-Fenster sehen, klicken
Sie im Fenster mit der rechten Maustaste und wählen Long listing.
Fetch FTP für Macintosh: Gehen Sie mit FTP auf die Webseite. Wählen Sie die Datei oder das Verzeichnis aus
und rufen Sie Set permissions im Menü Remote auf. Dieser Befehl steht nur in Fetch 3.0 oder später zur
Verfügung.
6. CGI-Skripts und Sicherheit
Da ein CGI-Programm ausführbar ist, läuft es im Grunde genommen darauf hinaus, dass allen erlaubt wird, ein
Programm auf dem System auszuführen, was nicht das Sicherste ist. Deswegen gibt es einige
Sicherheitsvorkehrungen, die bei Verwendung von CGI-Programmen implementiert werden müssen. Die für den
typischen Web-Benutzer weitgreifendste wäre diejenige, dass CGI-Programme in speziellen Verzeichnissen
stehen müssen, so dass der Webserver weiß, dass er das Programm ausführen und nicht nur dem Browser
anzeigen muss.
7. Weitere Informationen
Näheres zu CGI finden Sie auf verschiedenen Webseiten:
http://www.visca.com/clueless Die Homepage von Clueless Lou. Behandelt das für die Ausführung von
CGI-Skripten nötige Grundwissen.
http://cgi-help.virtualave.net Spezifische Informationen und häufig gestellte Fragen zu CGI-Themen.
http://www.jmarshall.com/easy/cgi Informationen zum Schreiben von CGI-Skripten, um Web-Formulare zu
bearbeiten.
http://worldwidemart.com/scripts Matt’s Free Perl CGI Scripts.
http://hoohoo.ncsa.uiuc.edu/cgi/overview.html Diese Homepage erklärt im Allgemeinen, wie ein CGI-Programm
gestaltet sein muss, damit es funktioniert.
http://www.cgi-resources.com Über 2600 mit CGI in Verbindung stehende Ressourcen in über 240 Kategorien.
http://www.cgi-world.com Interaktive Perl-/CGI-Skripte für das Web.
http://www.icthus.net/CGI-City/ Große Web-Ressourcen für CGI-Materialien. Hervorragende Webseite für
unerfahrene und fortgeschrittene Web-Entwickler.
Dokumentation
46
Dokumentation
PHP-Modul für Apache Webserver
PHP ist eine serverseitige Skriptsprache, die im normalen HTML-Code eingebettet ist. Skripts werden auf dem
Server durch ein Modul ausgeführt, das im Apache Webserver integriert ist. PHP bietet Funktionen zur
Verarbeitung von Formulardaten, Handhabung von Sitzungen und Erzeugung von HTML-Ausgaben. Es unterstützt
außerdem Protokolle wie FTP und SNMP. Das leistungsstärkste Merkmal ist die Möglichkeit, mit einem breiten
Spektrum von Datenbanken, in erster Linie mit MySQL, zu interagieren.
1. Allgemeine Beschreibung
Dieser Abschnitt umreißt kurz die PHP-Entstehungsgeschichte und dessen aktuellen Stand. Danach wird auf die
Merkmale der Sprache und die Integration in Webservern eingegangen.
1. 1. Geschichte und aktueller Stand von PHP
PHP wurde ursprünglich von Rasmus Lerdorf entwickelt. Seit es unter der Open-Source-Lizenz steht, hat es einige
größere Änderungen durchlaufen. Aktuell stehen die Versionen 4 und 5 zur Verfügung. PHP wird von einer sehr
grossen Gruppe von Entwicklern engagiert gepflegt. Das Unternehmen Zend entwickelte die Core-Skript-Maschine
und bietet PHP-Tools wie IDE, Debugger und Optimierer.
1. 2. Merkmale der Sprache
Die PHP-Sprache selbst ist Perl oder C sehr ähnlich. Programmierern mit Erfahrung in diesen beliebten Sprachen
wird es daher sehr leicht fallen, Skripte zu programmieren. PHP ist auf Web-Programmierung zugeschneidert,
wurde aber auch um anderweitige Funktionen erweitert. Es kann mit anderen Services unter Verwendung von
Protokollen wie FTP, SNMP oder IMAP und diversen anderen kommunizieren. Außerdem unterstützt es
verschiedene Datenbanken wie z.B. MySQL. Das Abfragen von Datenbanken geht sehr einfach und unkompliziert
vonstatten. Außerdem lässt sich der Funktionsumfang von PHP durch Plugins noch erweitern. PHP-Skripte sind
plattformunabhängig und laufen auf einer Vielzahl von Betriebssystemen.
1. 3. Webserver-Integration
PHP wird hauptsächlich serverseitig zur Generierung von HTML-Ausgaben verwendet. Damit dies möglich ist,
muss PHP erst in den Webserver integriert werden. Das Server API von PHP ermöglicht die Integration in gängige
Webserver wie Apache oder IIS. Dadurch sind PHP-Skripte schneller als normale CGI-Programme. Der mögliche
gemeinsame Einsatz von HTML- und PHP-Code in einer Datei erleichtert es, die Layout- und die Anwendungslogik
von dynamischen Seiten separat zu halten.
2. Gründe für den Einsatz von PHP
Der Hauptzweck von PHP ist die Generierung von dynamischen Webseiten. In Kombination mit einer Datenbank
ermöglicht dies die einfache Implementierung von Fomular-Routinen, eBusiness-Shops, webbasierten Kalendern,
Gästebüchern oder sogar von CMS (Content Management System). Es kann vorhandene CGI-Programme
ersetzen und als Open-Source-Alternative zu anderen eingebetteten Skript-Technologien wie Active Server Pages
(ASP) von Microsoft oder Java Server Pages (JSP) eingesetzt werden. Seine Plattformunabhängigkeit ermöglicht
die Migration von einem Server zu einem anderen.
Dokumentation
47
Dokumentation
3. Installation und Konfiguration
3. 1. Installation des PHP-Apache-Moduls
Auf Anfrage installieren die Verizon Business Webmaster PHP als Apache-Modul. Nach der Installation ist der
Server in der Lage, PHP-Skripte mit der Erweiterung .php, die sich im Document-Root-Verzeichnis befinden, zu
interpretieren. Die Skripte müssen nicht ausführbar sein (d.h. das x-Bit muss nicht gesetzt sein). Verwendbar sind
auch andere Erweiterungen (wie .phtml) durch Hinzufügen der Zeile
AddType application/x-httpd-php
.phtml
zur Datei .htaccess im Document-Root-Verzeichnis des Apache.
index.php wird als Standarddokument für ein Verzeichnis ausgeführt, wenn keine index.html Datei vorhanden ist.
3. 2. Speicherort von Konfigurationsdatei und Binärdateien
Beim Start liest das PHP-Modul eine Konfigurationsdatei mit dem Namen php.ini aus dem Verzeichnis
/etc/php4/ bzw. /etc/php5/ (je nach installierter Version) ein. Die Konfigurationsdatei gehört dem Kunden
und kann einfach geändert werden. In der Datei können verschiedene Direktiven z.B. zur Angabe des Pfades für
Include-Dateien, der Fehlerbehandlung oder des Typs des Session Managements aufgeführt werden. Das PHP
Manual enthält dahingehend eine detaillierte Liste. Der Abschnitt "Anzeigen der Konfigurationseinstellungen" weiter
unten beschreibt, wie sich die aktuelle Konfiguration ausgeben lässt.
Die Binärdateien für PHP sind in /usr/local/apache installiert. Das Unterverzeichnis php4/ bzw. ’
php5/ enthält die nötigen Include-Dateien, um Plugins für PHP zu erstellen, einige Binärdateien zum Installieren
von Plugins sowie verschiedene Standardbibliotheken für die Einbindung in Benutzer-Skripten. Das Apache-Modul
befindet sich im Unterverzeichnis libexec/.
4. Verwendung
4. 1. Schreiben von PHP-Skripten
Wie zuvor erwähnt, müssen PHP-Skripte die Erweiterung .php aufweisen. Aber wie sieht so ein Skript im
Einzelnen aus? Die Antwort ist sehr einfach: fast wie herkömmliche HTML-Skripte nur mit der Ausnahme, dass
Abschnitte, die in
<?php und ?> (oder <? und ?> bei aktivierter Option short_open_tag) eingeschlossen sind, als PHP-Code
interpretiert werden. Es besteht die Möglichkeit, in einer HTML-Datei in den PHP-Modus hinein- und
herauszuwechseln. Der logische Durchlauf des PHP-Skripts bleibt dabei intakt, so dass HTML zwischen bedingten
Anweisungen nur in der Ausgabe erscheint, wenn die Bedingung wahr ist.
4. 2. "Hello World"-Beispiel
Ein einfaches PHP-Skript hello.php, das lediglich eine HTML-Seite mit der Nachricht "Hello World!" erzeugt, würde
folgendermaßen aussehen:
<html>
<?php $text="Hello World!" ?>
<head>
<title><?php echo $text ?></title>
</head>
<body><?php echo $text ?></body>
</html>
Dokumentation
48
Dokumentation
5. Weitere Verwendung
Wie PHP eingesetzt wird, hängt stark vom Zweck des Webservers ab. Die folgenden Tipps sind allerdings für fast
jede Installation hilfreich.
5. 1. Verwendung von Bibliotheken
Funktionen, die in mehreren Skripten vorkommen, sollten in eine separate Datei exportiert werden. Diese Datei
kann mit dem Befehl
include()
hinzugefügt werden. PHP sucht in allen Verzeichnissen, die in der Direktive
include_path
angegeben sind, nach Include-Dateien. Standardmäßig ist dies das Verzeichnis php4/lib/php bzw. php5/lib/php in
/usr/local/apache und das Verzeichnis, in dem sich das aktuelle Skript befindet. Dies kann jedoch in der
Konfigurationsdatei geändert werden.
Es ist weiterhin möglich, eine Datei an alle PHP-Skripte anzuhängen bzw. diesen voranzustellen. Hierbei kann es
sich um eine normale Include-Datei oder einer HTML-Kopf- oder Fußzeile für sämtliche Ausgabeseiten handeln.
Die Konfigurationsdirektiven
auto_prepend_file
und
auto_append_file
steuern diese Funktion.
Eine bekannte Bibliothek ist phplib, die hier heruntergeladen werden kann.
5. 2. Anzeigen der Konfigurationseinstellungen
Mit der Funktion
phpinfo()
lassen sich die aktuellen Werte der verschiedenen Konfigurationsdirektiven ausgeben. Wenn Sie das Skript
phpinfo.php mit dem Inhalt
<?php phpinfo() ?>
irgendwo im Document-Root-Verzeichnis des Webservers platzieren, zeigt es eine lange Liste mit Informationen zu
PHP, seinen Konfigurationseinstellungen, konfigurierten Modulen und globalen Variablen, die für PHP-Skripte
zugänglich sind, wenn darauf mit einem Web-Browser zugegriffen wird.
5. 3. Erweiterung durch Dynamic Extensions
Die Funktionalität von PHP läßt sich mittels der sogenannten Dynamic Extensions erweitern, ohne den PHP-Kern
zu verändern. Z.B kann so FTP Support durch die cURL Library ergänzt werden.
Das installierte PHP bietet bereits einige Standard Extensions. Diese liegen im Verzeichnis
/usr/local/apache/php4/lib/php/extensions/no-debug-non-zts-* bzw.
/usr/local/apache/php5/lib/php/extensions/no-debug-non-zts-* mit der Dateiendung .so.
Um eine dieser Extensions zu benutzen, muß die Zeile
Dokumentation
49
Dokumentation
extension=curl.so
an die Datei php.ini angehängt werden. Diese Anweisung lädt die Extension curl.so beim Serverstart in den
Speicher. Wird die Erweiterung von vielen Skripten benutzt, ist dies die beste Lösung. Alternativ lädt die
Anweisung
dl("curl.so");
in einem PHP Skript die Erweiterung.
Damit eigene Dynamic Extension benützt werden können, muß PHP wissen, woher diese geladen werden sollen.
Dies wird PHP durch die folgende Anweisung in php.ini mitgeteilt:
extension_dir=/complete/path/to/extensions
Die Standard-Extensions unter /usr/local/ sind in diesem Fall nicht mehr verfügbar.
5. 3. 1. Compilation von Dynamic Extensions
Andere PHP Module können als Dynamic Extensions hinzugefügt werden. Diese Extensions müssen auf dem
Webserver selber übersetzt werden. Sie funktionieren u.U. nur mit der bestimmten PHP Version, mit der sie
übersetzt wurden.
Als Beispiel stellen wir hier den Build-Prozess für die cURL Extension vor. Die PHP Source-Archive enthalten den
Code für diese Dynamic Extension und müssen daher heruntergeladen und entpackt werden. Der Build-Prozess
findet innerhalb des Extension-Verzeichnisses statt. Das Kommando phpize konfiguriert die PHP
Build-Umgebung und erstellt ein configure Skript. Der Pfad zu der vorinstallierten cURL Library und zum
php-config Kommando werden als Argumente an configure übergeben. Nach einem make
liegt die Extension im Unterverzeichnis modules und kann an einen geeigneten Platz kopiert werden. Die letzen
Schritte sind die Aktivierung der Extension in der php.ini und das Aufräumen der Build-Umgebung. Der gesamte
Prozess ist im untenstehenden Skript zusammengefaßt. Passen Sie PHPVERSION und PHPFULLVERSION an Ihren
Server an.
#!/bin/sh
# create build environment
PHPVERSION=php5
PHPFULLVERSION=5.2.1
cd /users/local/
mkdir build
mkdir src
# get software
cd src
wget http://de.php.net/get/php-$PHPFULLVERSION.tar.gz/from/de.php.net/mirror
# unzip software
cd ../build
do gtar xzvf ../src/php-$PHPFULLVERSION.tar.gz; done
# build curl extension
cd php-$PHPFULLVERSION/ext/curl/
# phpize
/usr/local/apache/$PHPVERSION/bin/phpize
Dokumentation
50
Dokumentation
# configure curl extensions only
./configure \
--with-php-config=/usr/local/apache/$PHPVERSION/bin/php-config \
--with-curl=/usr/local --enable-shared=yes --enable-static=no
# start make
make
# install extension
mkdir /users/local/php-modules
cp modules/curl.so /users/local/php-modules
# activate extension in php.ini
echo "extension_dir = /users/local/php-modules" >>/etc/$PHPVERSION/php.ini
echo "extension = curl.so" >>/etc/$PHPVERSION/php.ini
# clean up
cd /users/local
/bin/rm -rf src build
Andere PHP Extensions benötigen Anpassungen und unter Umständen sogar Änderungen an einzelnen Dateien,
der Grundprozess der Compilation bleibt jedoch gleich.
5. 3. 2. PHP Performance Optimierung
Um die Geschwindigkeit von PHP Skripten zu erhöhen können verschiedene Maßnahmen ergriffen werden. Der
erste Schritt sollte die Optimierung des PHP Skripts sein. Die Benutzung von persistenten Datenbankverbindungen
und der nativen Schnittstelle für Ihre Datenbank kann die Laufzeit Ihrer Skripte verringern.
PHP kompiliert Skripte in einen Zwischen-Opcode, der dann von der sogenannten Zend Engine ausgeführt wird.
Die Kompilation wird normalerweise jedesmal durchgeführt wenn ein Skript angefragt wird. Opcode Caches wie
APC, eAccelerator oder XCache speichern den kompilierten Opcode nach dem ersten Durchlauf in Shared
Memory oder auf Platte. Wenn das Skript ein weiteres Mal ausgeführt werden soll kann der Opcode einfach aus
dem Cache geholt werden und es ist keine erneute Kompilation erforderlich.
Zuletzt kann der erzeugte Opcode automatisch optimiert werden. Einige Opcode Caches als auch der frei
erhältliche ZendOptimizer ermöglichen dies.
Die Verizon Business Webmaster können die erwähnten Opcode Caches auf dem Webserver installieren. Welcher
Cache benutzt werden sollte, hängt stark von der verwendeten Applikation ab.
Die Konfiguration der Opcode Caches erfolgt in der php.ini Datei. Die Bedeutung der einzelnen Direktiven ist auf
den jeweiligen Webseiten dokumentiert.
6. Weitere Informationen
Näheres zu PHP ist auf verschiedenen Webseiten und in gedruckter Form erhältlich:
PHP Homepage des Open-Source-Projekts. Sie bietet ein einführendes Tutorial und ein aktuelles Manual mit sehr
hilfreichen Benutzerhinweisen.
Zend Homepage von Zend, dem Unternehmen, das die Core-Skript-Maschine entwickelt hat und PHP-Tools wie
IDE, Debugger und Optimierer anbietet.
PHPBuilder Eine Webseite mit vielen Ressourcen (Tutorials, Artikeln, Foren, Downloads) zu sämtlichen Aspekten
der PHP-Programmierung.
Buch: PHP Pocket Reference PHP Pocket Reference
2nd Edition November 2002
by Rasmus Lerdorf
O’Reilly Media
ISBN 0-59600-402-8
Dokumentation
51
Dokumentation
englische Ausgabe
Buch: PHP Bible PHP Bible
2nd Edition September 2002
by Tim Converse &amp; Joyce Park
Wiley
ISBN 0-76454-955-3
englische Ausgabe
Dokumentation
52
Dokumentation
Tomcat
Servlets sind Java Programme, die in einem Serverkontext (daher der Name "Servlets" analog zu "Applets" auf der
Client-Seite) laufen und Client-Anfragen beantworten. Servlets benützen Java Standard Klassen. Da Servlets in
der sehr portablen Programmiersprache Java geschrieben sind und ein standardisiertes Gerüst besitzen, kann
man mit Ihnen Server- und Betriebsystem-unabhängige Webapplikationen erzeugen. Java Server Pages (JSP)
sind eine Servlet-Erweiterung, die das Schreiben von dynamischen HTML Seiten unterstützt. Dadurch wird es
einfach, feste Templates mit dynamischen Inhalt zu ergänzen.
Tomcat ist eine Servlet-Engine, die Servlets und JSP ausführt und die Ausgabe ausliefert. Sie kann mit dem
Apache Webserver zusammenarbeiten um statische und dynamische Seiten zu kombinieren.
1. Einführung in Tomcat
Servlets sind eine effiziente, mächtige und portable Technik um dynamische Inhalte im Web zu erzeugen. Servlets
sind Java Programme, die die Standardklassen javax.servlet (bzw. javax.servlet.http für HTTP Requests)
erweitern. Wie Applets, die im Kontext des Webbrowsers ausgeführt werden, werden Servlets in einer
Server-Applikation ausgeführt wenn ein Client (normalerweise ein Webbrowser) eine bestimmte URL anfordert.
Servlets können alle Eigenschaften und Vorteile der Programmiersprache Java benutzen. Dies bedeutet
insbesondere, daß Servlets nicht an ein bestimmtes Betriebssystem oder eine bestimmte Webserver Software
gebunden sind, sondern auf jeder standardkonformen Plattform laufen. Java Erweiterungen für Datenbankzugriff
(JDBC) oder E-Mailversand (JavaMail) können von Servlets benutzt werden. Servlet-Engines speichern Servlets im
Speicher nachdem Sie einmal geladen wurden. Dadurch sind Servlets schneller als normale CGI-Progamme.
Das Servlet-API wurde von Sun standardisiert und wurde bereits von verschiedenen Herstellern implementiert.
Tomcat ist eine freie Implementierung des Java Servlet API durch das Jakarta Projekts, das zur Apache Software
Foundation gehört. Es besteht aus zwei Teilen:
Tomcat Architektur
Das Apache-Modul. Das Apache-Modul ist in C geschrieben und dient als Mittler zwischen dem Webserver und
dem Java-Teil. Das Modul reicht Anfragen und Antworten zwischen den beiden hin und her. Der Connector
mod_jk wird standardmäßig installiert. Er benutzt das Protokoll AJP13 für die Kommunikation mit der
Servlet-Engine. Früher wurden auch die Connectoren mod_webapp und mod_jk2 auf den Servern installiert, der
Support dafür ist aber eingestellt.
Dokumentation
53
Dokumentation
Die Tomcat Servlet-Engine Die Tomcat Servlet-Engine ist in Java geschrieben und implementiert das Servlet API.
Sie ist für die Ausführung von Servlets verantwortlich. Sie ist ein eigenes Programm und wird während der
Bootphase gestartet.
Java Server Pages erlauben das Vermischen von statischen HTML und Java Code, der HTML erzeugt. JSP sind
mächtiger als Server Side includes (SSI), da sie die alle Möglichkeiten von Java benutzen können.
2. Installation und Konfiguration
2. 1. Tomcat Installation
Tomcat ist eine Service-Option für Ihren Webserver. Nach der Installation können Java Servlets und Java Server
Pages (JSP) ausgeführt werden. Dies können Sie testen, in dem Sie auf
http://www.customer.net/servlets-examples/ bzw http://www.customer.net/jsp-examples/ auf Ihrem Server
zugreifen. Dies sind die mitgelieferten Beispiel-Webapplikationen für Servlets und JSP.
2. 2. Pfade und Dateien
Die Installation von Tomcat wird von Verizon Business im Namen des Kunden ausgeführt, d.h. die Installation kann
komplett von Ihnen verändert werden. Alle Dateien befinden sich im Verzeichnis /users/local/tomcat:
/bin Die Skripte zum Stoppen und Starten von Tomcat sind hier installiert.
/common Alle Java Klassen und Bibliotheken (*.jar)in diesem Verzeichnis sind sichtbar für interne Tomcat
Klassen und für Webapplikationen.
/conf Konfigurationsdateien
/conf.orig Kopie der Konfigurationsdateien aus der Original Tomcat Distribution. Dies dient nur als
Referenz.
/logs Tomcat schreibt verschiedene Log-Dateien in dieses Verzeichnis. Es gibt keinen Prozess, um
Log-Dateien automatisch zu löschen, daher sollte dies regelmäßig manuell geschehen um zu verhindern, daß
übermäßig Festplattenplatz belegt wird.
/server Hier liegen die Java Klassen und Bibliotheken, die nur für interne Tomcat Klassen sichtbar sind.
/shared/classes Unkomprimierte Klassen und andere Resourcen, die für alle Webapplikation auf dem
Server (jedoch nicht für Tomcat selber) verfügbar sein sollen, müssen hier installiert werden. Initial ist das
Verzeichnis leer.
/shared/lib Hier können Java Bibliotheken im JAR Format abgelegt werden, die für alle Webapplikationen
sichtbar sind.
/webapps Diese Verzeichnis enthält einige vorinstallierte Webapplikationen wie die oben erwähnten Beispiel
Servlets und JSPs, eine Webapplikations-Manager und die Tomcat Dokumentation. Diese sind über den
Apache Webserver sichtbar. Die anderen installierten Webapplikationen sind aus Sicherheitsgründen nicht
sichtbar. Eigene Webapplikationen sollten ebenfalls hier installiert werden.
/work Tomcat speichert hier temporäre Dateien wie Java Klassen für JSPs.
Die Connector Module für Apache befinden sich in /usr/local/apache/libexec/.
2. 3. Tomcat Konfiguration
Verizon Business installiert eine Basiskonfiguration für Tomcat. Standardmäßig wird Tomcat nicht als Webserver
betrieben (obwohl das möglich ist), sondern kann nur über Apache erreicht werden. Dies wird über das AJP13
Protokoll durchgeführt (implementiert in mod_jk über den Socket Virtual Machine_IP:8012.
Dokumentation
54
Dokumentation
Einige Webapplikationen sind vordefiniert:
tomcat-docs, manager, servlets-examples und jsp-examples.
Dies geschieht in der Datei etc/jk.conf im Apache Verzeichnis (z.B. /users/www/httpd-customer.net/).
Wenn neue Webapplikationen hinzugefügt werden sollen, müssen Sie die notwendigen Änderungen in
server.xml selber durchführen und den Tomcat neustarten. Die Verizon Business Webmaster ändern dann die
Datei jk.conf nach Ihrer Spezifikation und laden die neue Konfiguration in den Apache Webserver.
2. 4. Tomcat starten und stoppen
Die Tomcat Servlet-Engine wird während des Bootvorgangs durch init mit dem Skript /etc/init.d/tomcat
(verlinkt in /etc/init.d/rc3.d/S89tomcat) gestartet. Tomcat läuft unter der Benutzer- und Gruppenkennung
des Kunden. Daher kann der Kunde die Ausführung des Tomcat kontrollieren. Dazu sollte nur das installierte Skript
mit den Parametern start bzw. stop benutzt werden.
3. Einhaltung von Standards
Tomcat 5.5 ist die Referenzimplementation der Java Servlet Spezifikation 2.4 und der Java Server Pages
Spezifikation 2.0. Die aktuelle Verizon Business Installation benutzt die Java 2 Platform Standard Edition (J2SE)
1.5 (erhältlich bei Sun für eine Reihe von Betriebssystemen). Die J2SE ist auf jedem Server unter /usr/local/
installiert.
4. Weitere Informationen
Weitere Informationen über Tomcat gibt es im Internet:
Apache Tomcat Die Startseite von Tomcat innerhalb des Jakarta Projekts. Es gibt ein komplette Referenz der
Konfigurationsdirektiven und einige HOW-TOs zu spezifischen Themen.
Dokumentation
55
Dokumentation
Virtual Machine Environment (VME)
Das Virtual Machine Environment (Virtual MachineE) ist die technische Lösung, die unseren Hosting-Produkten
(Dedicated Unix / Shared Unix) zugrunde liegt.
1. Allgemeine Beschreibung
Verizon Business hat das Konzept der virtuellen Webserver erweitert, um mehr Flexibilität und Skalierbarkeit zu
gewinnen und den Kundenwünschen noch mehr zu entsprechen. Verizon Business hat außerdem
sicherheitstechnische und betriebliche Aspekte besonders berücksichtigt, um den betrieblichen Anforderungen der
Kunden gerecht zu werden.
Technisch gesehen ist die Virtual Machine eine chroot(1)-Umgebung. Im Vergleich zu anderen vorhandenen
Lösungen, wo nur CGI-Skripte aus Sicherheitsgründen in einer chroot-Umgebung eingeschlossen sind, erhält der
Kunde bei Verizon Business eine komplette chroot-Umgebung. Dies erhöht nicht nur die Geschwindigkeit,
sondern bietet auch verschiedene Vorteile, auf die weiter unten eingegangen wird.
2. Zuverlässigkeit
Verizon Business liefert seit 1992 Hosting-Services auf Basis von Solaris. Die Anforderungen der Kunden
bezüglich einer flexiblen, skalierbaren und doch zuverlässigen Umgebung hat zum Einsatz der Virtual Machine
(Virtual Machine) geführt. Sie erfüllt auch die Anforderung von Verizon Business, ein standardisiertes Basisprodukt
für die betriebliche Ebene zu besitzen. Auf der anderen Seite ist die Virtual Machine auch flexibel und erweiterbar
genug, um alle Anforderungen unserer Kunden zu erfüllen.
Es ist äußerst wichtig, eine gut definierte Schnittstelle zwischen Verizon Business und dem Kunden zu haben.
Beim gemanagten Hosting-Produkt ist Verizon Business zuständig für die Hardware, das Betriebssystem und
bestimmte Services. Hierzu gehören natürlich der standardmäßig installierte Webserver Process, die
Logdateirotation und die Erstellung von Statistiken. Es beinhaltet auch andere Dienste wie Remote-Zugang via
FTP oder SSH und Maildienst über POP3 und SMTP. Der Kunde ist dagegen für den Inhalt und den Betrieb der
Anwendung selbst zuständig. Falls die Anwendung auf dem Server Probleme bereitet, kann Verizon Business
natürlich immer mit Tipps in Sachen Einstellung, Skalierung, Stabilität und Sicherheit aushelfen.
Damit alle obigen Punkte erfüllt werden können, basieren seit 1996 (Erstinstallationen in Deutschland) alle
Hosting-Services unter Unix (Solaris) auf dem Virtual Machine Environment. Es liefert die beschriebene
Schnittstelle zwischen Kunde und Verizon Business, und die einzelnen Kunden / Anwendungen sind voneinander
abgegrenzt. Verizon Business bringt außerdem für viele Kundenanwendungen, die innerhalb dieser Umgebung
laufen, Erfahrung mit. Zu nennen sind hier HTTP-Server (Netscape, Lotus Notes) und Datenbanken (Oracle,
SyBase, Adabas, Notes). Zumindest gibt es keinen wesentlichen Grund, warum eine bestimmte Anwendung inhalb
des Virtual MachineE nicht laufen sollte.
Auf Shared Servern gibt es einige Beschränkungen. Zuerst dürfen alle Netzwerkanwendungen nur die IP-Adresse
des Kunden benutzen und sich nicht auf alle verfügbaren IP-Adressen binden. Bitte klären Sie mit dem Hersteller
ab, ob Ihre bevorzugten Anwendungen diese Funktion auch wirklich unterstützen. Verizon Business schränkt
außerdem den Einsatz von Datenbanken auf Shared Servern ein, damit sichergestellt ist, dass alle Kunden
weiterhin an der Leistung des Systems partizipieren. So sind zumindest kommerzielle Datenbanken wie Oracle und
Adabas hier nicht erlaubt.
Dokumentation
56
Dokumentation
3. Sicherheit
Dank der chroot(1)-Umgebung erhalten die Kunden höchstmögliche Sicherheit auf einer gemeinsam genutzen
Hardware. Die Beschränkungen des Betriebssystems verhindern, dass jemand aus seiner zugewiesenen
Verzeichnisstruktur ausbricht. So nehmen sich die Kunden gegenseitig nicht wahr. Dies stellt den Unterschied zu
anderen Lösungen für gemeinsame Nutzung dar, wo lediglich Beschränkungen auf Rechtebasis vorhanden sind.
Das Einrichten einer Virtual Machine für jede Anwendung kann auch vorteilhaft für Kunden mit dedizierten Servern
sein. Dadurch lassen sich die Inhalts-, Skript- und Sicherheitsumgebungen leicht unterscheiden. Und die Server
sind so vorbereitet, dass ein schneller und einfacher Wechsel zu einer anderen Hardware möglich ist (siehe
"Skalierbarkeit" weiter unten).
4. Leistung
Die Gesamtleistung jeder Virtual Machine ist vergleichbar mit der Leistung des ganzen Systems. Der
chroot(1)-Befehl wird während des Starts der Umgebung einmal ausgeführt. Alle nachfolgenden Prozesse
werden innerhalb dieser Umgebung direkt auf der CPU ausgeführt. So ist die Virtual Machine erfreulicherweise an
keine Maschinen- oder CPU-Emulation gekoppelt und sollte nicht mit Produkten wie VMware oder der virtuellen
Maschine von Java verwechselt werden.
Alle Virtual Machine-Ressourcen werden auf alle gleichzeitig laufenden Prozesse aufgeteilt. So werden sie auch
von gleichzeitig aktivierten Virtual Machines auf demselben Hardware-Rechner gemeinsam genutzt. Im
Allgemeinen ergibt sich dadurch kein Problem, da die Ressourcen (CPU) nur für eine kurze Zeitdauer für
bestimmte Anwendungen verwendet werden und sich unter diesen aufteilen lassen. Um ein Hängenbleiben oder
Abstürzen des Systems aufgrund von Fehlfunktionen der (Kunden-) Anwendungen zu vermeiden, können spezielle
Ressourcenbeschränkungen für CPU, Speicher, Festplattenplatz und anderes implementiert werden.
5. Skalierbarkeit
Die obigen Merkmale und Vorteile führen zu dem wichtigsten Argument bezüglich der Skalierbarkeit aller
Kundenumgebungen. Das Ausbessern, Aufrüsten oder selbst Austauschen der zugrundeliegenden Hardware- und
Betriebssysteme ist größtenteils von der Umgebung des Kunden unabhängig. Nur im seltenen Fall einer
Betriebssystemaufrüstung muss der Kunde eventuell auf die Kompatibilität zusätzlich installierten Software achten.
Ansonsten ergeben sich keinerlei Änderungen der Kundenumgebung.
Der Vorteil einer standardisierten Basisumgebung ist ein sehr schneller Upgrade-Prozess zu anderer Hardware.
Durchschnittlich ergibt sich dabei ein Ausfall von nur 5 bis 10 Minuten. Dies gilt auch für einen Wechsel von einem
Shared System zu einem dedizierten. Auf der anderen Seite ist es Verizon Business dadurch auch möglich, die
Hardware im Falle eines Versagens schnell auszutauschen. Dies ist natürlich außerordentlich wichtig, um die
erwartete Reparaturzeit bei solchen Ausfällen zu minimieren.
Dokumentation
57
Dokumentation
FAQ Verizon Shared Hosting Unix
Wir haben hier versucht, die häufigsten Fragen und Antworten zu unserem Produkt Verizon Shared Hosting Unix
zusammenzufassen.
1. Wie kann ich meine EMail-Aliase ändern?
Dies wird im Dokument E-Mail Server erläutert.
2. Welchen POP3 und SMTP Mailserver muss ich in meinem
E-Mail-Programm angeben?
Ihr Server ist bereits als POP3-Server und SMTP Relay konfiguriert. Die notwendigen Einstellung für Ihr
E-Mail-Programm werden im Dokument E-Mail Client Konfiguration beschrieben.
3. Bietet Verizon Business fertige CGI- oder PHP-Skripte an?
Da es genügend Sammlungen von Skripten im WWW gibt, bietet Verizon Business keine Skripte mehr an.
4. Kann ich eigene in Perl geschriebene CGI-Programme einsetzen?
Es können natürlich eigene CGI-Programme in mehreren Skriptsprachen (u.a. Perl und Python) verwendet werden.
Genauere Informationen finden Sie unter Common Gateway Interface.
5. Kann ich Java Servlets verwenden?
Über die Zusatzoption Tomcat können Java Webapplikationen und Servlets benutzt werden.
Dokumentation
58
Dokumentation
Bootprozess eines Virtual Machine Environments
Der Prozess der Inbetriebnahme einer Virtual Machine ähnelt dem Bootmechanismus auf Unix System V. Ein
spezieller init-Prozess steuert, welche Vorgänge beim Booten oder Wechseln von einem Runlevel zum anderen
auszuführen sind.
1. Zwei Steuermechanismen beim Booten
Derzeit werden auf Virtual-Machine-Installationen zwei verschiedene Strukturen für Runlevel-Verzeichnisse
eingesetzt. Bei der einen wird nur ein Verzeichnis /etc/rc.d/ für Startskripte verwendet. Bei der anderen gibt
es ein Verzeichnis /etc/init.d/ für Skripte und ein Verzeichnis für jeden Runlevel, das symbolische Links zu
den Skripten enthält.
1. 1. Verwendung eines einzelnen Verzeichnisses
Dies ist auf älteren Installationen zu finden und wird für einige neuere auch noch benutzt. Dem Kunden ist es nicht
möglich, irgendwelche Änderungen an den verwendeten Startskripten vorzunehmen. Selbst dann nicht, wenn die
zu startenden Prozesse keine speziellen Rechte erfordern. Modifikationen können auf Kundenanfrage von den
Verizon Business Webmastern durchgeführt werden.
1. 2. Verschiedene Runlevels
Beim zweiten Bootmechanismus, der auf einigen der neueren Installationen eingesetzt wird, sind verschiedene
Runlevel verfügbar. Speicherort und Zweck der verwendeten Dateien und Verzeichnisse werden im Rest dieses
Dokuments beschrieben. Hier kann dem Kunden die Genehmigung gegeben werden, Dateien hinzuzufügen oder
zu modifizieren. Beschränkungen sind implementiert, die im letzten Abschnitt behandelt werden.
2. Booting und Runlevels
init definiert einige Zustände (d.h. Runlevel), in denen sich ein System befinden oder in die es hineinversetzt
werden kann. Im Vergleich zu den System V-Standardprozeduren wurden an der Virtual Machine einige
Verbesserungen abgebracht. Beispielsweise ist jeder Benutzer dazu in der Lage, seine eigene Software mit Startund Stoppskripten auf dem System zu installieren. Weiterhin ist es möglich, Runlevel zu wechseln, um solche
Installationen ohne Unterstützung eines mit Rechten ausgestatteten Benutzers zu testen.
Weitere detailliertere Informationen können unter Verwendung von
man init
auf den Manual Pages zum init-Befehl nachgelesen werden. Dort sowie im Abschnitt zur Installation von
Software (weiter unten) wird mit nützlichen Tipps weitergeholfen. Außerdem wird ausführlich beschrieben, wie man
eigene Skripte installiert und ausführt.
Alle Benutzer mit Shell-Zugriff auf die Virtual Machine können den bereitgestellten Befehl init(8) ausführen.
Gewöhnlich sollte das System in Runlevel 3 betrieben werden, was auch der Standard ist.
Die folgenden Runlevel sind auf einer Virtual Machine definiert. Sie entsprechen den Runleveln, die normalerweise
für echte Systemumgebungen wie Solaris oder Linux definiert sind.
Dokumentation
59
Dokumentation
Alle Prozesse anhalten. Dieser Runlevel kann nur vom Root-Benutzer initiiert werden, da er sogar
0 Anmelde-Daemons wie xinetd und sshd stoppt. Er wird dazu benutzt, eine Virtual Machine geordnet über den
Administrator herunterzufahren.
1
Virtual Machine in Administratormodus versetzen. Nur die Anmelde-Daemons xinetd und sshd arbeiten in
diesem Runlevel.
2
Virtual Machine in Basismodus versetzen. Daemons, die zur Standardinstallation gehören, werden gestartet.
Dies schließt die Anmelde-Daemons cron und sendmail ein. Der Webserver gehört hier nicht dazu.
3
Virtual Machine in erweiterten Modus versetzen. Zusätzlich zu Runlevel 2 werden hier der Webserver,
Datenbanksysteme und benutzerdefinierte Prozesse gestartet.
6
Alle laufenden Prozesse anhalten und in den Zustand booten, der durch den Eintrag initdefault in
/etc/inittab definiert ist. Wie oben schon erwähnt, ist Runlevel 3 die Standardeinstellung.
Table 1: Definition der Runlevel
Alle Skripte werden im Verzeichnis /etc/init.d abgelegt. Um diese in einem bestimmten Runlevel <n> auszuführen,
muss ein Link zum jeweiligen Skript im entsprechenden Runlevel-Verzeichnis /etc/init.d/rc<n>.d platziert
werden.
3. Installation von Software
Nach der Installation neuer Anwendungen oder dem Ändern vorhandener sollten die Startdateien geprüft und
gegebenenfalls an den neuen Status angepasst werden. Das Skript muss die Anwendung starten und stoppen,
wenn es mit den Argumenten start und stop aufgerufen wird.
Der Speicherort für das Skript ist das Verzeichnis /etc/init.d/. Im Verzeichnis /etc/init.d/rc3.d/ sind
zwei symbolische Links zu diesem Skript erforderlich. Heißt das Skript MyDaemon, dann lauten die Dateinamen für
die symbolischen Links /etc/init.d/rc2.d/SxxMyDaemon und /etc/init.d/rc2.d/KyyMyDaemon. xx
und yy sind Zahlen von 01 bis 99. Wenn das System in Runlevel 3 versetzt wird, werden die Skripte, die mit einem
großgeschriebenen S beginnen, ausgewählt. Beginnend bei der niedrigsten Nummer erfolgt die Ausführung der
einzelnen Skripte. Wenn das System zu einem anderen Runlevel wechselt, werden die Skripte, die mit einem
großgeschriebenen K beginnen, ausgewählt. Dabei wird das Skript mit der größten Zahl zuerst ausgeführt, gefolgt
von den anderen in absteigender Reihenfolge.
HINWEIS: Nach jeder Konfigurationsänderung an der Umgebung bzw. Software-Installation sollten die neuen
Einstellungen durch Ausführen eines
init 6
getestet werden. Dies emuliert die Vorgehensweise eines frischen Reboots der kompletten Virtual Machine,
allerdings mit viel höherer Geschwindigkeit. Nach diesem Schritt sollte noch geprüft werden, ob alle Prozesse und
Anwendung wie erwartet funktionieren.
4. Zugriff auf Verzeichnisse und Besitzer von Daemons
Auf einem dedizierten System sind die Verzeichnisse /etc/init.d/ und /etc/init.d/rc3.d/ für den
Kunden schreibbar. Es ist möglich, Skripte und symbolische Links hier abzulegen, vorhandene Skripte und
symbolische Links, die anderen gehören, können jedoch nicht entfernt werden.
Dokumentation
60
Dokumentation
Wenn der Besitzer des Skripts nicht der root ist, wird der init-Prozess vor dem Starten des Skripts den Benutzerund Gruppennamen auf den Namen des Skriptbesitzers einstellen. Dadurch kann der administrative Benutzer des
Kunden keine Daemons einrichten, für die spezielle Rechte notwendig sind. Ein Beispiel für ein solches Recht ist
die Möglichkeit der Anbindung an einen mit Rechten ausgestatteten Port.
5. Weitere Informationen
Näheres zum Befehl init ist auf dem Server zu finden:
Manual Pages Für den Befehl init verfügbar auf der Virtual Machine über den Befehl:
man init
Dokumentation
61
Dokumentation
Anonymous FTP
Der anonyme FTP-Account ermöglicht jedem, einen beschränkten Satz von Dateien von Ihrer Virtual Machine
herunterzuladen. Es entspricht den Download-Möglichkeiten, die vom Web-Server bereitgestellt werden.
1. Allgemeine Beschreibung
Eine FTP-Verbindung zu einem Server erfordert einen Benutzernamen und ein Kennwort. In den meisten Fällen
dient das Kennwort zur Authentifizierung des Clients dem Server gegenüber. Anders verhält es sich mit zwei
speziellen Benutzernamen: ftp und anonymous.
Wenn ftp oder anonymous benutzt wird, kann auch die Angabe eines Kennwortes erforderlich sein. Allerdings wird
es in diesem Fall nicht zur Authentifizierung verwendet, sondern liefert nur Information über den Nutzer. Daher
steht der Inhalt, der über anonyme Verbindungen zugänglich ist, jedermann zur Verfügung.
2. Der Server
2. 1. Server-Installation
Auf der Virtual Machine muss ein Unix-Benutzer-ftp erstellt werden. Lediglich sein Home-Verzeichnis und dessen
Unterverzeichnisse sind über anonyme Anmeldungen zugänglich. Das Unterverzeichnis pub wird erstellt und sollte
als Download-Verzeichnis verwendet werden. Jede Datei, die für andere Benutzer lesbar ist (das
Unix-Dateizugriffsrecht "world readable"), kann von anonymen Benutzern übertragen werden.
Es ist weiterhin möglich, eingehende Übertragungen zu erlauben. Ist dies der Fall, kann nur ein spezielles
Verzeichnis namens incoming dafür verwendet werden. Der Eigentümer der übermittelten Dateien ist dann der
standardmäßige administrative Benutzer der Virtual Machine und die Dateien sind nur für diesen lesbar. Hierdurch
wird verhindert, dass anonyme Benutzer Dateien herunterladen, die von einem anonymen Benutzer hochgeladen
wurden.
Außerdem gibt es noch andere verfügbare Beschränkungen, die einen Missbrauch des anonymen Accounts
verhindern.
Die Verizon Business Webmaster aktivieren "anonymous FTP" auf Anfrage. Uploads sind nur erlaubt, wenn dies
explizit angefordert wurde.
2. 2. Server-Administration
Für die administrativen Aufgaben im Verzeichnisbaum, der anonymen FTP-Anmeldungen zugänglich ist, wird ein
TELNET- oder uneingeschränkter FTP-Account verwendet. Eine eingeschränkte FTP-Anmeldung kann dafür nicht
benutzt werden.
Der anonyme FTP-Benutzer kann auf sein Home-Verzeichnis und jedes Unterverzeichnis davon zugreifen. Dieses
Verzeichnis lautet /users/local/ftp/. Das Unterverzeichnis ./pub/ wird standardmäßig als
Download-Verzeichnis verwendet. Wenn das anonyme FTP so konfiguriert ist, dass sich Dateien hochladen
lassen, werden diese im Unterverzeichnis ./incoming/ abgelegt.
Die Datei mit dem Namen .message enthält eine Info-Nachricht, die an den Client versendet wird, wenn dieser
zum ersten Mal in dieses Verzeichnis wechselt. Die Datei ist nicht obligatorisch, kann einem Benutzer dieses
Services jedoch nützliche Informationen liefern.
Dokumentation
62
Dokumentation
3. Verbindungen seitens des Clients
Hier handelt es sich um eine standardmäßige FTP-Verbindung unter Verwendung des Anmeldenamens ftp oder
anonymous. In diesem Fall ist es dem Benutzer erlaubt, sich mit einem beliebigen Kennwort anzumelden
(normalerweise sollte eine E-Mail-Adresse des Benutzers als Kennwort dienen).
4. Weitere Informationen
Näheres zum anonymen FTP finden Sie auf der Webseite:
http://www.faqs.org/rfcs/rfc1635.html Anleitungen zur Verwendung von anonymous FTP.
Dokumentation
63
Dokumentation
Es stehen verschiedene Zugriffsmethoden zur Verfügung, um Web-Inhalte hochzuladen, zu ändern oder
administrative Aufgaben auszuführen.
1. Allgemeine Beschreibung
Es gibt verschiedene Tools zur Fernverwaltung, mit denen sich Web-Inhalte bereitstellen und aktualisieren lassen.
FTP und SSH sind standardmäßig installiert, jedoch sollte SSH aus Sicherheitsgründen vorgezogen werden.
Verizon Business liefert ein initialen Loginnamen und Kennwort für den Zugriff per FTP und SSH. Die
Kennwortpflege muss vom Kunden mit den entsprechenden UNIX-Befehlen durchgeführt werden.
Für einige Protokolle wird eine spezielle Client-Software benötigt. Einige Tools sind in verschiedenen
Betriebssystemen bereits integriert, andere müssen zusätzlich installiert werden.
2. Anmeldung (FTP, SSH)
In jeder Server-Installation ist ein Standard-Benutzer-Account enthalten. Die folgenden Zugriffsmethoden sind
möglich, wobei jede einzelne jeweils in einem separaten Dokument näher beschrieben wird:
2. 1. FTP
FTP (File Transfer Protocol) wird für den Dateitransfer zwischen Ihrem Computer und dem Server sowie für die
Ausführung eines beschränkten Befehlssatzes auf dem Server verwendet.
2. 2. SSH
SSH (Secure Shell) bietet verstärkte Authentifizierung und sichere verschlüsselte Kommunikation zwischen zwei
nicht vertrauenswürdigen Hosts über ein unsicheres Netzwerk. Es ist eine sichere Alternative zu FTP.
3. Zusätzliche Accounts
Es können zusätzliche Accounts installiert werden, um einzelnen Mitarbeitern oder Auftragnehmern den Zugriff auf
den Web-Server zu ermöglichen, entweder mit allen oder mit eingeschränkten Rechten. Die folgenden Arten von
Accounts sind verfügbar:
Uneingeschränkter Zugriff Dieses Account ermöglicht den Zugriff mit allen Rechten auf die Virtual Machine per
FTP und SSH.
FTP-Zugriff Hiermit ist nur der FTP-Zugriff auf den Server erlaubt. Alle Dateien sind zugänglich.
Beschränkter FTP-Zugriff Mit diesem FTP-Account ist es möglich, den Zugriff auf ein spezifiziertes Verzeichnis
und dessen Unterverzeichnisse zu beschränken.
Näheres zur Verwendung verschiedener Arten von administrativen Accounts finden Sie im Dokument "Zusätzliche
Accounts".
4. Anonymer FTP-Account
Der anonyme FTP-Account ermöglicht jedem, einen ganz bestimmten Satz von Dateien von Ihrer Virtual Machine
herunterzuladen. Es entspricht den Download-Möglichkeiten, die vom Web-Server bereitgestellt werden. Näheres
zu "anonymous FTP" als Methode zur Vergabe von eingeschränktem Zugriff an Benutzer finden Sie im Dokument
"Anonymous FTP".
Dokumentation
64
Dokumentation
Hinweise zur Konfiguration des Statistik-Tools Analog
Das Statistik-Tool webalizer wird genutzt um die Logfiles des Apache Webservers grafisch auszuwerten. Eine
Reihe von Konfigurationseinstellungen beeinflusst dabei wesentlich das Aussehen der erzeugten Statistiken, sowie
auch deren Art und Umfang. Im Vergleich zum Tool webalizer bietet Analog die Möglichkeit Statistiken nicht nur auf
HTML-Seiten sondern auch als ASCII-Dateien zur Verfügung zu stellen.
1. Einleitung
Das Statistik-Tool Analog wird verwendet um die Logfiles des Apache-Webservers zu analysieren und detailierte
Zugriffsstatistiken sowohl auf einer Webseite als auch in Form einer ASCII-Datei zu erstellen.
Bedingt durch das tägliche Rotieren der Logfiles können neben den Statistiken auf Wochen- oder Monatsbasis
auch tagesaktuelle Auswertungen vorgenommen werden. Die Steuerung der Auswertungsart wird im Dokument
Erzeugen von Statistiken näher erläutert.
Analog lässt sich durch eine Fülle von Optionen an die individuellen Bedürfnisse anpassen. Das Verzeichnis
/users/webs/customer.net/stat/analog/ascii enthält die erzeugten ASCII-Statistiken, im Verzeichnis
/users/webs/customer.net/stat/analog/html werden die Webseiten mit den Statistikinformationen
abgelegt.
Beide
Verzeichnisse
sind
ebenfalls
mittels
eines
Browsers
unter
der
URL
http://customer.net/analog/ascii/ bzw. http://customer.net/analog/html/ erreichbar.
Im Gegensatz zu webalizer werden die Analog-Statistiken nicht inkrementell, d.h. fortlaufend, erzeugt, sondern für
einen jeweils fest definierten Zeitraum.
2. Anwendung
Um die Erzeugung der Statistiken in jedem Fall zu gewährleisten wird von Verizon Business eine
Standardkonfiguration verwendet. Diese reicht im wesentlichen aus um die aussagekräftigsten statistischen
Reports die Analog anbietet in einer übersichtlichen Form zu erzeugen.
Die Grundkonfiguration findet sich in der Datei /usr/local/bin/analog/analog.cfg und kann nicht
verändert werden. Für die Erzeugung der ASCII-Statistiken wird die Standardkonfiguration aus der Datei
/etc/analog/ascii-admin.cfg geladen, für die Erzeugung der HTML-Satistiken wird die Konfigurationsdatei
/etc/analog/html-admin.cfg verwendet. Die in beiden Dateien vorgenommenen Einstellungen lassen sich
jedoch mittels einer zweiten Konfigurationsdatei teilweise überschreiben. Diese Konfigurationsdatei kann individuell
für jeden auf dem Server gehosteten webauftritt jeweils im Verzeichnis /users/webs/customer.net/conf/
unter dem Namen analog-ascii.conf bzw. analog-html.conf abgelegt werden, soweit für den
entsprechenden Webauftritt ein eigenes Logfile zur Verfügung steht. Der Name dieser Konfigurationsdateien kann
in der Konfiguration der Statistik in der Datei /users/webs/customer.net/conf/stats.cfg ebenfalls für
jeden Webauftritt individuell angepasst werden. Die Dateien werden nur genutzt wenn sie im angegebenen
Verzeichnis vorhanden sind, fehlen die Dateien wird die Statistik nur unter Verwendung der Standardkonfiguration
erzeugt.
Da die Statistikerzeugung mittels Analog im Gegensatz zu webalizer nict fortlaufend, sondern nach vorher fest
definierten Zeiträumen erfolgt, erfolgt die Ausgabe in jeweils einer Datei pro Auswertungszeitraum. Bei einer
täglichen Auswertung wird demzufolge jeden tag eine Datei mit den erzeugten Statistiken im entsprechenden
Ausgabeverzeichnis angelegt.
Um die Dateien richtig zuordnen zu können wird das folgende Namensschema verwendet:
Dokumentation
65
Dokumentation
Dateiname
Dateiinhalt
analog.[ascii|html].[YYYY]m[01..12]
Analog-ASCII/HTML-Statistiken für einen kompletten Monat
analog.[ascii|html].[YYYY]m[01..12]w[01..52] Analog-ASCII/HTML-Statistiken für eine komplette Woche
analog.[ascii|html].[YYYY]m[01..12]d[00..31] Analog-ASCII/HTML-Statistiken für einen Tag
Table 1: Namensschema für Dateien mit erzeugten Analog-Statistiken
3. Konfiguration
Analog bietet über 200 verschiedene Konfigurationseinstellungen, darunter eine Vielzahl von Reports, weshalb an
dieser Stelle nur auf einige grundsätzliche Einstellungen eingegangen werden kann.
Alle Angaben zum Logfile (Name, Verzeichnis etc.) werden beim Aufruf der Statistikerzeugung automatisch
erzeugt, ein Überschreiben dieser Angaben in der Konfigurationsdatei ist zwar möglich, bleibt jedoch ohne
Auswirkungen.
Ebenfalls nicht veränderbar ist der Name der Output-Datei entsprechend dem vorgstellen Schema sowie das
Verzeichnis in welchem die erzeugten Statistiken abgelegt werden.
Die im folgenden aufgeführten Einstellungen können sowohl für die Erzeugung von ASCII-Statistiken als auch für
die Erzeugung von HTML-Statistiken verwendet werden.
Name der Option
Standardwert Beschreibung
LOGFILE
stdin
Quelle von der das zu analysierende Logfile gelesen wird, die
Standard-Eingabe ist hier vordefiniert, Änderungen haben keinerlei
Auswirkungen
DIRSUFFIX
index.html
Datei die vom Webserver ausgeliefert wird, wenn eine Anfrage nach
/verzeichnisname/ gesendet wurde
TYPEOUTPUTALIAS diverse
Für verschiedene Dateitypen können, zur Erhöhung der Überischtlichkeit
und Verständlichkeit der erzeugten Statistiken, Aliases mit
beschreibendem Inhalt eingerichtet werden, z.B. TYPEOUTPUTALIAS
.html ".html [Hypertext Markup Language]"
Innherhalb aller Alias-Definitionen ist die Verwendung von regulären
Ausdrücken möglich.
PAGEINCLUDE
Neben den Standardtypen *.htm und *.html können weitere Seitentypen
in die Reports aufgenommen werden, z.B. PAGEINCLUDE *.shtml um
alle Server-parsed HTML-Seiten expizit einzubeziehen.
diverse
Table 2: Globale Konfigurationseinstellungen zur Erzeugung von Analog-Statistiken
Die folgende Übersicht über die von Analog zur Verfügung gestellten Reports bezieht sich nur auf Reports die
standardmässig mit der vorgegebenen Konfiguration eingeschaltet werden.
Dokumentation
66
Dokumentation
Name des
Reports
Standardwert Beschreibung
GENERAL
ON
Übersicht über die gesamte Anzahl der erfolgreich und nicht erfolgreich
bearbeiteten Anfragen während des Auswertungszeitraumes
MONTHLY
ON
Übersicht über alle Anfragen im laufenden Monat bis zum Zeitpunkt der
Auswertung, bzw. über den gesamtem Monat wenn ein Auswertungszeitraum
angegeben wurde der komplett in der Vergangenheit liegt
DAILYSUM
ON
Zusammenfassung der täglich während des Auswertungszeitraumes
bearbeiteten Anfragen
HOURLYSUM
ON
Zusammenfassung der stündlich während des Auswertungszeitraumes
bearbeiteten Anfragen
DOMAIN
ON
Übersicht über die anfragenden Domains
DOMAIN
ON
Übersicht der anfragenden Domains
DIRECTORY
ON
Übersicht über die verteilung der Anfragen auf Verzeichnisse
FILETYPE
ON
Übersicht der angeforderten Dateitypen
SIZE
ON
Übersicht der angeforderten Dokumente, geordnet nach Dateigrösse
SEARCHWORD
ON
Bei Verwendung einer Suchmaschine, Übersicht über die angefragten
Suchbegriffe
OSREP
ON
Übersicht der anfragenden Betriebssysteme
Table 3: Report-Einstellungen
Für jeden Aktivierten Report kann mittels der Spalteneinstellungen festgelgt werden welche Daten für einen Eintrag
angezeigt werden, z.B. eine Spalte für die Dateigrösse, eine Spalte für den Dateinamen, usw.
Alle zeitlich sortierten Reports können zudem auf- oder absteigend geordnet werden. Auch die Festlegung der
anzuzeigenden Zeilen in jedem Report kann mittels der ROW Einstellung pro Report festgelegt werden. Zur
Sortierung nicht zeitabhängiger Reports werden die Optionen REQUESTS(Anzahl der Requests für ein Element),
BYTES (Anzahl der zum Client ingesamt übertragenen Bytes) und ALPHABETICAL (alphabetische Reihenfolge)
angeboten.
Mittels einiger Zusatzoptionen kann die Form der ausgegebenen Statistikseiten individuell angepasst werden. Die
folgende Tabelle zeigt einige der wichtigsten Einstellungen.
Dokumentation
67
Dokumentation
Name der Option
Standardwert Beschreibung
LANGUAGE
GERMAN
Sprache in der Ausgabeseiten verfasst werden, möglich ist GERMAN oder
ENGLISH
HEADERFILE
none
Datei die vor den eigentlichen Statistik-Übersichten in die Ausgabe
eingefügt wird
FOOTERFILE
none
Datei die am Ende der Statistik-Übersichten in die Ausgabe eingefügt wird
HTMLPAGEWIDTH 65
Maximale Breite der HTML-Ausgabeseite in Zeichen
ASCIIPAGEWIDTH 75
Maximale Breite der ASCII-Ausgabeseite in Zeichen
Table 4: Konfigurationseinstellungen zur Anpassung der Output-Seiten
Nicht verwendet werden alle Einstellungen zu DNS-Anfragen während der Auswertung. Diese dienen
normalerweise dazu, die in den Logfiles enthaltenen IP-Adressen in die übersichtlicheren Hostnamen
umzuwandeln indem pro Adresse eine Anfrage an den Standardnameserver gesendet wird. Alle erhaltenen
Antworten werden in einem DNS-Cache zwischengespiechert um bei erneuten Anfragen zur gelichen IP-Adresse
nicht erneut eine Anfrage an den DNS-Server senden zu müssen. Da bei der Rotation der Logfiles bereits alle
enthaltenen IP-Adressen die über einen DNS-Eintrag verfügen in den korrespondierenden Namen aufgelöst
wurden, würde eine erneute Prüfung während der Erzeugung der Analog-Statistiken lediglich eine Verlangsamung
des Prozesses bewirken ohne jedoch weitere Resultate zu liefern.
Eine Optionen zum Erhalt von Debug-Informationen im Fehlerfall können ebenfalls im Konfigurationsfile
angegeben werden, sie werden von Verizon Business verwendet um per Mail über aufgetretene Fehler während
der Statistikauswertung informiert zu werden und eingreifen zu können.
Die Ausklammerung von Dateien, Referern sowie anderen Elementen aus den Reports ist mittels einiger
Konfigurationseinstellungen ebenfalls möglich.
Name der
Option
Standardwert
Beschreibung
FILEXCLUDE
kein
Standardwert
Angabe der von der Statistikerzeugung ausgeschlossenen Dateien, z.B.
FILEEXCLUDE /test/* um alle Dateien im Verzeichnis /test auszuschliessen.
Mehrere Angaben können, durch Komma getrennt, hintereinander erfolgen.
kein
Standardwert
Einbinden von Dateien unterhalb eines Verzeichnisses, welches durch
FILEXCLUDE ausgeschlossen wurd, z.B.
FILEINCLUDE /test/*.gif um alle GIF-Dateien im Verzeichnis /test in den
Reports zu berücksichtigen obwohl das Verzeichnis bereits mittels
FILEEXCLUDE ausgeschlossen wurde.
FILEINCLUDE
Table 5: Funktionen zum Anpassen des HTML-Outputs bei der Erzeugung von Webalizer-Statistiken
Analog zu den beiden erläuterten Angaben können Requests einzelner User mittels USERINCLUDE
oderUSEREXCLUDE ein- oder ausgeblendet werden, für den Report über alle an Clients gelieferten Status-Codes
können einige Codes mittels STATUSINCLUDE bzw. STATUSEXCLUDE ein- oder ausgeblendet werden und für
Referer existieren diesbezüglich die Optionen REFEXCLUDE, REFINCLUDE sowie die Option REFREPEXCLUDE
über die beispielsweise alle Anfragen die von der eigenen Domain ausgehen mittels REFREPEXCLUDE
http://www.customer.net/* ausgeblendet werden können.
Dokumentation
68
Dokumentation
4. Weitere Informationen
Ausführliche Informationen zur Analog-Konfiguration finden sich direkt auf der Analog-Homepage:
www.analog.cx Die Analog Homepage mit der kompletten Dokumentation.
Dokumentation
69
Dokumentation
E-Mail Server
Verizon Business stellt E-Mail-Dienste für die Domain des Kunden bereit.
1. Allgemeine Beschreibung
Für die Speicherung von E-Mails bietet Verizon Business eine bestimmte Anzahl von POP3-Mailboxen an.
Eingehende E-Mails, die z.B. an webmaster@customer.net adressiert sind, werden an eine vom Benutzer
definierte Adresse oder eine der zur Verfügung getellten Mailboxen weitergeleitet. Die Anzahl der POP3-Mailboxen
ist auf der Preisliste entsprechend der aktuellen Vertragsbedingungen angegeben.
2. Aliasing
Damit der E-Mail-Dienst verwendet werden kann, muss ein gültiger MX-Eintrag (Mail eXchanging) im DNS (Domain
Name Service) der Domain vorhanden sein. Außerdem ist es erforderlich, dass der Domainname in der Datei
/etc/mail/virtdomains festgehalten wird.
Wichtig: Alle Enträge müssen in virtdomains in separaten Zeilen vorliegen.
2. 1. Empfangen von E-Mails (lokales Aliasing)
E-Mails werden an eine lokale Mailbox des vorhandenen Benutzers weitergeleitet. Der Server muss dafür den
Benutzernamen kennen. An webmaster@customer.net gerichtete E-Mails werden automatisch in der ersten
Mailbox mit dem Benutzernamen www<number> (Webmaster-Mailbox) gespeichert. Diese E-Mails lassen sich
über POP3-Clients (z.B. Outlook) mit Benutzernamen und Passwort herunterladen.
Die Mailboxen befinden sich im Verzeichnis /var/mail/pop<number>. Mit dem Befehl
rm pop<number>
lassen sich alle E-Mails in der POP-Mailbox löschen.
2. 2. Weiterleiten von E-Mails (Aliasing)
Es besteht die Möglichkeit, eingehende E-Mails an eine externe, gültige E-Mail-Adresse weiterzuleiten. Hierfür
muss kein gültiger Benutzername auf dem Server konfiguriert werden. Der Eintrag der E-Mail-Adresse befindet
sich lediglich in einer Zuweisungstabelle.
2. 3. Senden von E-Mails
Es können Mails vom Server selbst (localhost) versendet werden. Um Mails von anderen Computern über den
Server zu versenden (relay), muss SMTP AUTH verwendet werden. Ohne wird die Mail mit "relaying denied"
abgewiesen.
3. Konfiguration
Die Zuweisung einzelner Adressen wird in der Datei /etc/mail/aliases oder /etc/mail/virtusers
konfiguriert. In diesen Dateien werden Alias-Namen der entsprechenden lokalen Mailbox (lokales Aliasing,
aliases-Datei) oder einer externen Adresse (Aliasing, virtusers-Datei) zugewiesen (die Dateien aliases und
virtusers lassen sich mit den Editoren vi oder jove modifizieren). Im vi-Dokument wird beschrieben, wie der editor vi
benutzt wird.
Dokumentation
70
Dokumentation
Alternativ dazu können die Dateien auch mit einem FTP-Client heruntergeladen und auf der lokalen Arbeitsstation
bearbeitet werden. Danach müssen die Dateien wieder zum Server hochgeladen werden. Die Dateien müssen
dann noch mit dem Befehl
mail-reconf
aktiviert werden.
Tipp: Weitere Informationen zum Dateitransfer finden Sie im Dokument "FTP (File Transfer Protocol)". Das
Dokument Unix commands gibt einen Überblick über die am häufigsten benötigten und verwendeten Befehle.
3. 1. Grundlegende Konfiguration
Die folgenden Beispiele verdeutlichen die verschiedenen Möglichkeiten:
Verbindungsaufbau mit TELNET oder SSH zu www.customer.net.
Anmeldung beim Server.
Wechseln in das richtige Verzeichnis nach erfolgter Anmeldung:
$ cd /etc/mail
$ vi aliases
Hinzufügen einer neuen Zeile für jeden einzelnen Alias.
Wichtig: For dem Alias kommt kein Leerzeichen! Bei der Zieladresse kann es sich um einen lokal konfigurierten
Benutzer (pop<number>) und / oder eine externe Adresse handeln:
alias:
destination address
Alle E-Mails für info@customer.net werden auf dem Server in der Mailbox mit dem Benutzernamen
pop<number>-01 gespeichert:
info:
pop<number>-01
E-Mails für peter@customer.net werden an peter@uumail.de weitergeleitet:
peter:
peter@uumail.de
E-Mails für Benutzer Dave gehen an seine Mailbox pop<number>-02 auf dem Server und werden an
dave@uumail.de weitergeleitet:
dave:
pop<number>-02, dave@uumail.de
Alle an @customer.net gerichtete E-Mails werden auf dem Server in der Mailbox pop<number>-01/02 gespeichert
und an peter@customer.net sowie dave@uumail.de weitergeleitet:
all:
pop<number>-01, pop<number>-02, ...,..., peter@uumail.de, dave@uumail.de
Wichtig: Sämtliche Einträge im oberen Teil der Datei aliases dürfen nicht modifiziert werden!
Alle E-Mails gehen zu lasten der Quota des Servers.
3. 2. Weiterführende Konfiguration
Wenn mehr als eine Domain auf den Server verweist, gelten alle Einträge in der Datei aliases für sämtliche
Domains. Soll der E-Mail-Empfang für die Domains anderweitig gehandhabt werden, muss die Datei virtusers
editiert werden. Diese Datei befindet sich ebenfalls im Verzeichnis /etc/mail/.
Dokumentation
71
Dokumentation
Die folgenden Beispiele verdeutlichen die verschiedenen Möglichkeiten in der Datei virtusers:
Alle E-Mails für info@customer.net werden wieder auf dem Server in der Mailbox mit dem Benutzernamen
pop<number>-01 gespeichert:
info@customer.net
pop<number>-01
E-Mails für info@<second-domain>.de werden an die Adresse peter@uumail.de weitergeleitet:
info@<second-domain>.de
peter@uumail.de
Das @<second-domain>.de ist ein spezieller Alias. Alle E-Mails ohne einen definierten E-Mail-Namen werden in
der Mailbox mit dem Benutzernamen pop<number>-99 (Platzhalter-Mailbox) gespeichert:
@<second-domain>.de
pop<number>-99
Wichtig: Nach dem Alias-Namen kommt kein Semikolon und die Wildcard-Mailbox muss der letzte Eintrag in der
Datei sein.
In virtusers kann für jeden Alias nur eine Weiterleitung an die externe Adresse konfiguriert werden.
Die Änderungen an der Datei werden nach Mitternacht automatisch aktiviert. Sollen die Änderungen sofort in Kraft
treten, muss dies mit dem Befehl
mail-reconf
geschehen.
4. Weiterleitung
Es besteht weiterhin die Möglichkeit, Webmaster-E-Mails an eine gültige, externe E-Mail-Adresse weiterzuleiten.
Hierfür wird eine .forward-Datei im Home-Verzeichnis /user/home/www<number> erstellt und modifiziert.
Diese Datei enthält eine oder mehrere Adressen. Bei der .forward-Datei handelt es sich um eine versteckte
Datei, die nur bei Eingabe des Befehls
ls -la
erscheint.
Dokumentation
72
Dokumentation
Der cron Daemon
Der cron Daemon ermöglicht Benutzern, Befehle einmalig oder regelmäßig an bestimmten Tagen und Zeiten
durchzuführen.
1. Allgemeine Beschreibung
Bei cron handelt es sich um eine Standardfunktion von Unix. Benutzer können damit Befehle, die wiederholt (z. B.
stündlich, täglich oder wöchentlich) auszuführen sind, in einem Satz von Dateien namens crontabs platzieren, die
sich dann mit dem Befehl
crontab
bearbeiten lassen. Um eine einmalige Aufgabe zu einer bestimmten Zeit abzuwickeln (sogenannte at-Jobs), steht
der Befehl
at
zur Verfügung. Der cron Daemon ist dafür verantwortlich, dass die Befehle zur richtigen Zeit ausgeführt werden
und der Benutzer per E-Mail die Ausgabe des Befehls zugeschickt bekommt.
2. Benutzung
Die Ausführung von Programmen über cron ermöglicht die Automatisierung routinemäßiger Aufgaben wie die
Komprimierung von Log-Dateien oder das Sichern von Datenbanken in ein Dump-File. Beispiele sind im Folgenden
aufgeführt.
3. Installation und Konfiguration
Der cron Daemon ist standardmäßig auf allen Servern installiert. Somit besteht jederzeit die Möglichkeit, die
Crontabs zu bearbeiten und at-Jobs abzusetzen.
Die Crontabs befinden sich in Textdateien im /var/spool/cron/crontabs/, während at-Jobs als Datei in
/var/spool/cron/atjobs/ zu finden sind. Diese Dateien sollten nie direkt bearbeitet werden, sondern
ausschließlich mit den Befehlen
crontab
bzw.
at
4. Verwendung
4. 1. Einsatz von crontab
Regelmäßig auszuführende Aufgaben sollten in die Benutzer-Crontab eingefügt werden. Die Befehle in dieser
Datei werden mit den Rechten und Privilegien des Benutzers ausgeführt, jedoch ohne dessen Standardumgebung
(definiert in .profile). Sie werden über sh und nicht über die Standard-Shell des Benutzers gestartet. Alle
Ausgaben (sowohl an STDOUT wie STDERR) werden an den Benutzer gemailt, sofern sie nicht vorher bereits
umgeleitet wurden.
Dokumentation
73
Dokumentation
Crontabs müssen mit dem Befehl crontab bearbeitet werden. Die Befehlszeile
crontab -e
ruft einen Editor für die Benutzer-Crontab auf (standardmäßig vi, was sich jedoch zu beispielsweise jove ändern
lässt, indem die Umgebungsvariable EDITOR in der shell bash gesetzt wird):
export EDITOR="jove"
Vorhandene Crontab-Einträge können mit folgendem Befehl aufgelistet werden:
crontab -l
Wichtig: Die Option -r für crontab entfernt alle Einträge aus der Crontab.
4. 1. 1. Format der crontab
Jeder Eintrag in einer Crontab-Datei besteht aus sechs Feldern in der folgenden Reihenfolge:
Minute(n) Stunde(n) Tag(e) Monat(e) Wochentag(e) Kommando(s)
Die Felder sind durch Leerzeichen oder Tabulatoren voneinander abgegrenzt. Die ersten fünf sind Listen von
ganzen Zahlen und das sechste ist der auszuführende Befehl. Die folgende Tabelle beschreibt die einzelnen
Felder näher:
Feld
Wert
Beschreibung
Minute
0-59
Die Angabe der Minute zu der der Befehl ausgeführt werden soll.
Stunde
0-23
Die Angabe der Stunde zu der der Befehl ausgeführt werden soll.
Tag
1-31
Der Tag im Monat für die Ausführung der Befehls.
Monat
1-12
Der Monat im Jahr für die Ausführung der Befehls
Wochentag 0-6
Der Wochentag für die Ausführung der Befehlsfolge. Sonntag = 0, Montag = 1,
Dienstag = 2 usw.
Die vollständige Folge von Befehlen, die auszuführen sind. Der Befehlsstring muss die
Kommando Spezifisch Syntax der Bourne Shell ( sh) befolgen. Befehle, auszuführende Programme (wie
Scripts) oder eine Kombination beider sind möglich.
Table 1: Crontab Einträge
Jedes der Muster der ersten fünf Felder kann sich entweder aus einem Sternchen (Platzhalter für alle möglichen
Werte) oder mehreren, durch Kommas getrennte Elementen zusammensetzen. Ein Element ist dabei entweder
eine einzelne Zahl oder ein Bereich, der durch zwei Zahlen, die durch ein Minuszeichen getrennt sind (z.B. 10-12),
angegeben wird. Kommentarzeilen müssen mit dem Zeichen # beginnen. Die Crontab darf keine leeren Zeilen
enthalten.
4. 1. 2. Beispiele
Damit das Programm myprog im Verzeichnis /mydir im Home-Verzeichnis des Benutzers werktags jeden
Morgen um 8.00 Uhr gestartet wird, muss der Crontab-Eintrag wie folgt aussehen:
Dokumentation
74
Dokumentation
0 8 * * 1-5 /mydir/myprogram
Falls das Programm myprog alle 10 Minuten ausgeführt werden soll, lautet der Crontab-Eintrag:
0,10,20,30,40,50 * * * * /mydir/myprogram
Für Datenbanken sollte regelmäßig ein Dump durchgeführt werden, so dass sie im Störungsfall leicht auf einen
definierten Zustand zurückzusetzen sind. Damit die MySQL-Datenbank mydb jeden Montag und am Ersten jeden
Monats in eine Datei im Verzeichnis dumps des Benutzer-Verzeichnisses www123 gespeichert wird, sind folgende
Einträge in der Crontab nötig:
# Datenbank-Dump jeden Montag und am Monatsersten
15 4 1 * 1 /users/local/mysql/bin/mysqldump mydb >/home/www123/dumps/dbdump.sql
4. 2. at-Jobs
Befehle, die nur einmalig zu einer bestimmten Zeit auszuführen sind, können mit dem Befehl at terminiert werden.
Die Ausführung der Befehle erfolgt in einer separaten Shell unter Verwendung der Umgebungsvariablen und dem
Arbeitsverzeichnis, das/die zum Zeitpunkt, an dem der Befehl at
aufgerufen wird, aktuell sind. Die Ausgabe der Befehle wird an den Benutzer gemailt. Wenn keine Ausgabe
erzeugt wurde, erfolgt dies nicht, es sei denn, die Option -m für den at Befehl wurde verwendet.
Der einfachste Aufruf von at spezifiziert nur eine optionale Zeitangabe für die Ausführung der Befehle:
at runtime
Das Format von runtime
wird weiter unten beschrieben. Nach Drücken von [Enter] erscheint das Prompt
at<
An der Eingabeaufforderung können ein oder mehrere Befehle eingegeben werden. Zum Beenden der Eingabe
wird ein [CTRL-D] (das standardmäßige <EOT>-Zeichen) am Anfang einer Zeile verwendet. Der Befehl at gibt
danach aus, welche Shell zur Ausführung der Befehle verwendet wird und welche Jobnummer vergeben wurde.
Diese Nummer wird benutzt, um auf bestimmte at-Jobs Bezug nehmen zu können.
Alle für einen Benutzer eingeplanten Jobs können mit folgendem Befehl aufgelistet werden:
at -l
Ein Job lässt sich wieder aus dem Zeitplan entfernen, indem
at mit der Option -r gefolgt von der Nummer des zu entfernenden Jobs verwendet wird.
4. 2. 1. Zeitformat
Das Format für die Zeitangabe setzt sich aus drei Teilen zusammen:
Zeit Die Zeit kann mit einer, zwei oder vier Ziffern spezifiziert werden. Bei ein- bzw. zweistelligen Zahlen wird
davon ausgegangen, dass es sich um Stunden handelt, vierstellige Zahlen werden als Stunden und Minuten
verstanden. Stunden und Minuten können wahlweise auch durch einen Doppelpunkt getrennt werden. Die Strings
now, noon und midnight stehen jeweils für die aktuelle Zeit, Mittag und Mitternacht.
Dokumentation
75
Dokumentation
Datum Optional kann ein Datum spezifiziert werden, entweder in Form eines Monatsnamens gefolgt von einer
Tageszahl oder in Form eines Wochentages. Zwei spezielle Tage,today und tomorrow, sind ebenfalls möglich.
Ist kein Datum angegeben, wird vom aktuellen Datum ausgegangen, sofern die spezifizierte Zeit größer als die
aktuelle Zeit ist. Ansonsten wird vom folgenden Tag ausgegangen.
Inkrement Beim optionalen Inkrement handelt es sich um eine Zahl, der ein Pluszeichen (+) vorausgeht und eines
der folgenden Wörter folgen:
minutes, hours, days, weeks, months oder years
Das Schlüsselwort next entspricht einer Inkrementzahl von + 1.
4. 2. 2. Beispiele
Damit das Programm myprog
im Verzeichnis mydir im aktuellen Verzeichnis in 20 Minuten vom aktuellen Zeitpunkt an gestartet wird, ist folgende
Befehlsfolge nötig:
at now + 20 minutes
at> mydir/myprogram
at> <EOT>
Um dasselbe Programm am nächsten Tag um 8.OO Uhr morgens zu starten, das Verzeichnis mydir zu packen
sowie eine Meldung bei Beendigung des at-Jobs zu bekommen, lautet die Befehlsfolge:
at -m 08:00 tomorrow
at> mydir/myprogram
at> gtar -czvf mydir.tgz mydir
at> <EOT>
5. Weitere Informationen
Weitere Informationen zum cron Daemon finden sich auf dem Server selber:
Manual Pages Für cron(1M),crontab(1) und at(1), verfügbar auf dem Server über den Befehl
man
Dokumentation
76
Dokumentation
Zusätzliche Accounts / Zusätzlicher Webmasterzugang
In jeder Host-Installation ist ein Standard-Account für administrative Aufgaben inbegriffen. Mit diesem Account sind
SSH- und FTP-Verbindungen mit dem Server möglich.
1. Allgemeine Beschreibung
Es stehen zwei Arten administrativer Accounts zur Verfügung.
1. 1. Alle Zugriffsmethoden
Möglich mit demselben Typ von Account wie der administrative Standard-Account, der während jeder
Server-Installation konfiguriert wird.
1. 2. Uneingeschränkter FTP-Account
Dieser Account ermöglicht FTP-Verbindungen mit dem Server. Der vollständige Verzeichnisbaum des Servers
kann vom Benutzer dieses FTP-Accounts eingesehen werden.
1. 3. Eingeschränkter FTP-Account
Der ftp-Daemon auf der Virtual Machine kann spezielle Vorkehrungen treffen, um die Zugriffsrechte des Clients zu
beschränken. Der Client ist dann nicht in der Lage, sein ihm zugewiesenes Home-Verzeichnis zu verlassen. Es
sind nur Dateien in diesem Verzeichnis und dessen Unterverzeichnissen zugänglich.
Der eingeschränkte FTP-Account ermöglicht einem Client, auf einen begrenzten Bereich der Virtual Machine
zuzugreifen. Eine Authentifizierung mittels Anmeldename und Kennwort ist erforderlich.
Die meisten eingeschränkten FTP-Accounts werden dazu benutzt, Mitarbeitern oder Auftragnehmern die
Möglichkeit zu schaffen, Inhalte für den Web-Server oder einen seiner virtuellen Hosts zu liefern, ohne vollen
Zugriff auf den Server zu geben. Wenn der eingeschränkte FTP-Account Zugriff auf das Verzeichnis cgi eines
Web-Servers hat, kann der Benutzer die Beschränkungen umgehen. In diesem Fall ist die Beschränkung auf ein
bestimmtes Verzeichnis zwar keine Sicherheitsmaßnahme mehr, der Zugriff ist jedoch einfacher und weniger
fehleranfällig.
2. Server-Konfiguration
Eingeschränkte FTP-Accounts erhalten die Unix User ID des administrativen Standardbenutzers. Auf dedizierten
Systemen sind andere IDs verfügbar und können für zusätzliche, uneingeschränkte Accounts verwendet werden.
3. Bestellung und Authentifizierung
Eine vorhandene Installation kann jederzeit um zusätzliche Accounts erweitert werden. Hierfür muss der
technische Ansprechpartner seitens des Kunden mit dem Anbieter des Hosting-Service Kontakt aufnehmen. Im
Allgemeinen geschieht dies per Fax oder E-Mail.
3. 1. Benötigte Angaben für das Bestellformular
Der Anmeldename sollte angegeben werden. Hierbei muss es sich um einen gültigen Unix-Anmeldenamen
handeln. Ein gültiger Name ist jeder String mit höchstens 8 Byte, der sich aus kleingeschriebenen,
alphanumerischen Zeichen zusammensetzt und mit einem Buchstaben beginnt. Die genaue Definition kann auf der
Handbuchseite zu useradd (1M) nachgelesen werden. Für den Account ist das Home-Verzeichnis erforderlich.
Dokumentation
77
Dokumentation
Wenn der Name eines virtuellen Hosts angegeben ist, wird das gemeinsame übergeordnete Verzeichnis der
Verzeichnisse data, cgi und log verwendet.
3. 2. Authentifizierung und Autorisierung
Die Anforderung eines zusätzlichen Accounts muss von einer Kontaktperson unterschrieben werden, die bereits in
Verbindung mit diesem speziellen Server bekannt ist. Jegliche Informationen zum Account werden ausschließlich
an die Adresse übertragen, die als Adresse des technischen Ansprechpartners vorliegt. Sollten diese
Informationen von Dritten benötigt werden, muss der Kunde sie weiterleiten.
4. Weitere Informationen
Zum FTP-Dienst sind weitere Informationen verfügbar. Die Kennwortpflege muss vom Kunden mit Hilfe des
Befehls passwd durchgeführt werden. Die Beschreibung anderer Befehle kann nützliches Hintergrundwissen
liefern.
Manual Pages Die Manual Page chroot(1M) beschreibt, wie der FTP-Daemon das Root-Verzeichnis wechselt,
wenn der Benutzer ein guest-Benutzer ist.
Manual Pages Die Manual Page useradd(1M) behandelt den Befehl, der zum Hinzufügen eines neuen Accounts
verwendet wird.
passwd-Befehl Der Befehl passwd(1) kommt bei der Kennwortpflege zum Einsatz.
Dokumentation
78
Dokumentation
File Transfer Protocol (FTP)
FTP-Clients ermöglichem dem Benutzer, Dateien zwischen Client und Server auszutauschen und einen
begrenzten Satz von Befehlen auf dem Server auszuführen.
1. Allgemeine Beschreibung
Das FTP-Protokoll spezifiziert, dass zwei TCP-Verbindungen zwischen Client und Server nötig sind. Die eine wird
für Befehle und die andere für den Datentransfer genutzt. Der Server und die meisten modernen Clients
unterstützen zwei unterschiedliche Modi. Verwendet werden sollte der passive Modus, der auch für die meisten
Clients der Standard ist. In diesem Fall werden beide Verbindungen vom FTP-Client initiiert. Dies ist wichtig, da
TCP-Verbindungen von entfernten Hosts zu einem lokalen Client-Rechner durch die meisten Firewall-Installationen
blockiert werden.
Ist eine FTP-Verbindung von einem Client zu einem Server einmal aufgebaut, wird der Benutzer auf der
Client-Seite aufgefordert, einen Anmeldenamen und ein Kennwort einzugeben. Das Kennwort wird für die
Authentifizierung verwendet, sofern es keine anonyme FTP-Verbindung ist. Benutzername, Kennwort, Befehle
oder übertragene Daten werden durch keinerlei Maßnahmen verschlüsselt oder gesichert. Eine sichere Alternative
für den Datentransfer ist scp (secure copy) über SSH.
Es stehen verschiedene Arten von Datentransfer zur Verfügung. In der Regel reicht es aus, wenn man über den
Binärmodus und den ASCII-Modus Bescheid weiß. Der ASCII-Modus wird verwendet, wenn eine Konvertierung der
übertragenen Daten nötig ist. Werden Konfigurationsdateien von DOS- oder Windows-Clients auf den Server
transferiert, so ist dies zur Ersetzung der Zeilenendekennung erforderlich. Für alle Binärdaten wie Bilder oder
komprimierte Archive muss der Binärmodus aktiviert werden. Die übertragenen Dateien könnten ansonsten
beschädigt werden.
2. Konfiguration des FTP-Servers
Der FTP-Server wird von Verizon Business konfiguriert. Eine weitere Konfiguration ist nicht nötig. Allerdings
besteht die Möglichkeit, den Zugriff über FTP auf Basis der Client-IP oder des Domainnamens zu beschränken. Es
ist weiterhin möglich, den FTP-Zugriff komplett zu deaktivieren. Modifikationen werden auf Anfrage von den
Verizon Business Webmastern vorgenommen.
3. Client-Installation
Einfache FTP-Clients sind in den Standardinstallationen der gängigen Betriebssysteme enthalten. Einige
FTP-Clients bieten eine grafische Benutzeroberfläche.
Auch die meisten Web-Browser stellen einige ftp-Funktionen zur Verfügung. Zumindest ist das Übertragen von
Dateien möglich. Das Erstellen von Unterverzeichnissen oder Einstellen von Dateimodi kann oft nicht erfolgen, was
jedoch für die Bearbeitung des Inhalts auf Webservern nötig ist. Solche Aufgaben lassen sich über einen
SSH-Shell-Zugriff auf den Webserver erledigen.
Freie FTP-Clients, die auf Windows-Systemen verwendet werden können, sind beispielsweise Filezilla oder
SmartFTP. Auf Unix- und Linux-Systemen lässt sich eine FTP-Sitzung über den Befehl ftp starten.
Dokumentation
79
Dokumentation
4. Weitere Informationen
Näheres zu FTP ist auf verschiedenen Webseiten und auf dem Server zu finden:
http://www.faqs.org/rfcs/rfc1579.html Firewall-Friendly FTP.
http://www.faqs.org/rfcs/rfc2577.html FTP-Sicherheitsüberlegungen.
Manual Pages Für ftp(1) verfügbar über den Befehl
man
auf Unix- und Linux-Systemen.
help command Verfügbar auf verschiedenen FTP-Clients.
Dokumentation
80
Dokumentation
MYSQL Datenbank
Dieses Dokument geht kurz auf die MySQL-Datenbank in der Verizon Business VM-Umgebung ein und soll
lediglich als Einstieg dienen. Die komplette Dokumentation zu MySQL kann über http://dev.mysql.com/doc/
eingesehen werden.
1. Allgemeine Beschreibung
Die MySQL-Datenbank ist eine vollständige relationale Datenbank, die mit Datenmengen von einem Gigabyte und
mehr arbeiten kann. MySQL ist ein echter Multi-User-SQL-Datenbank-Server mit Multi-Thread-Technologie. Bei
SQL (Structured Query Language) handelt es sich um die populärste und am meisten standardisierte
Datenbanksprache der Welt. MySQL ist eine Client/Server-Implementierung, die sich aus dem Server-Daemon
mysqld und vielen anderen Client-Programmen und Bibliotheken zusammensetzt.
2. Pfade und Dateien
Die MySQL-Datenbank ist im Verzeichnis /users/local/mysql installiert.
./bin enthält alle Programme, die zur Administration der Datenbank nötig sind.
./var die Datenbankdateien werden in diesem Verzeichnis gespeichert.
./include Header-Dateien für Kompilierungen von Clients.
./lib Bibliotheken für Kompilierungen von Clients.
./info Zusatzinformationen zu MySQL.
3. Sicherheit
Die Datenbank wird von Verizon Business betriebsfertig installiert und ohne Passwortschutz übergeben. Nach der
Installation von MySQL werden keine Kennwörter gesetzt. Jeder Benutzer, der sich über TELNET oder SSH
anmelden kann, ist auch in der Lage, auf die Datenbank zuzugreifen. Verizon Business konfiguriert drei Benutzer:
www000 Benutzer für den Webserver zum Zugriff auf die Datenbank.
root administrativer Account, wird für das Starten und Stoppen der Datenbank verwendet.
www123 derselbe wie der TELNET- oder FTP-Hauptbenutzer.
Aus Sicherheitsgründen sollte für die Benutzer
www000 und www123 ein Kennwort eingerichtet werden. Es ist auch möglich, dass Kennwort für den
root-Benutzer zu ändern, in diesem Fall kann die Datenbank jedoch vor einem Neustart des Systems nicht auf
saubere Art und Weise gestoppt werden. Mit dem Befehl
mysqladmin
(befindet sich in /users/local/mysql/bin/) lassen sich Kennwörter ändern:
mysqladmin -u www000 password NEWPASSWORD
Nach der Änderung muss der MySQL-Server die Zugriffstabellen neu laden. Der Befehl zum erneuten Laden der
Tabellen lautet:
mysqladmin reload
Dokumentation
81
Dokumentation
Die neuen Kennwörter sind nun aktiv.
In der MySQL-Installation von Verizon Business ist die Netzwerkanbindung der Datenbank aus Sicherheitsgründen
deaktiviert. Alle Transaktionen werden mit einem Unix-Socket im Dateisystem durchgeführt. Wenn eine
Netzwerkanbindung nötig ist, also Datenbank-Updates und Transaktionen über das Netz vorgenommen werden
wollen, so muss diese Option explizit freigeschaltet werden. Eine Zeile in der Datei
/users/local/mysql/var/my.cnf muss in einen Kommentar umgewandelt werden. Hierfür muss ein # vor
der Option skip-networking eingefügt werden:
skip-networking
ändern zu
#skip-networking
Nachdem dies geschehen ist, muss MySQL neu gestartet werden. Dies lässt sich durch ein Wechseln zu Runlevel
2 und anschließendes Zurückwechseln zu Runlevel 3 bewerkstelligen. Für diese Aufgabe muss der Befehl
init 2;
gefolgt vom Befehl
init 3;
ausgeführt werden.
4. Zugriff auf die Datenbank
Bei der Datenbankinstallation wird auch gleich die Unterstützung für die gängigsten Zugriffsarten auf die
Datenbank installiert. Die von Verizon Business bereitgestellte PHP-Version unterstützt die MySQL-Datenbank
bereits. Die Perl-Module DBI und DBD::Mysql sowie alle Bibliotheken zum Schreiben von C/C++-Programmen
werden zusammen mit der Datenbank installiert. Weiterhin besteht die Möglichkeit, ODBC und JDBC für die
installierte MySQL-Version einzurichten. Dies muss vom Benutzer selbst durchgeführt werden.
5. Support
Die Datenbankinstallation wird von Verizon Business vorgenommen. Zusätzlicher Support wird nicht garantiert.
Falls sich mit der Standardinstallation Probleme ergeben, wird Verizon Business ohne Erfolgsgarantie versuchen,
das Problem zu finden.
6. Weitere Informationen
Näheres zu MySQL ist auf der folgenden Webseite und auf dem Server zu finden:
http://www.mysql.com/ Homepage von MySQL, der populärsten Open-Source-SQL-Datenbank.
oder MySQL info file /users/local/mysql/info/mysql.info.
Dokumentation
82
Dokumentation
E-Mail Client Konfiguration
Konfiguration des E-Mail-Programms
1. Allgemeine Beschreibung
Um Mails über den Server zu verschicken (relayen) ist ein E-Mail-Programm notwendig, der SMTP
Authentifizierung und SSL beherscht.
2. Grundkonfiguration
Die Grundkonfiguration wird am Beispiel von MS Outlook XP gezeigt. Bei anderen Programmen ist die
Konfiguration nahezu identisch. Das Handbuch der Software sollte dazu die nötigen Angaben liefern.
Anmerkung: In manchen Fällen können Virenscanner (z.B. Norton Antivirus) Probleme (inbesondere in Verbindung
mit SSL) verursachen. Falls Probleme beim Versenden und/oder Empfangen von Mails auftreten sollten,
deaktivieren Sie versuchsweise alle Virenscanner und Personal Firewalls und wiederholen Sie den Vorgang. Ein
Update auf eine neuere Version der Software könnte das Problem auch lösen. Bitte wenden Sie sich dazu an den
Hersteller.
2. 1. Hinzufügen eines neuen Mail Kontos.
Öffnen Sie Outlook und wählen Sie Accounts im Tools Menu.
Add/Mail erzeugt ein neues Mail Konto.
Dokumentation
83
Dokumentation
POP3 als Type des E-Mail Account auswählen.
Next drücken um fortzufahren.
Dokumentation
84
Dokumentation
Eingabe der Grunddaten.
Dokumentation
85
Dokumentation
Das Passwort ist dem Datenblatt zu entnehmen!
Das E-Mail Address Feld benötigt eine reale E-Mail-Adresse.
Zum Beispiel:
www123@customer.net
www123@www.customer.net
webmaster@customer.net
Anmerkung: webmaster ist ein alias für den realen Benutzer (z.B. www123) und daher keine reale
Mail-Adresse.
Next drücken um fortzufahren.
Finish drücken um fortzufahren und den E-Mail-Account anzulegen.
Anmerkung:Der angelegte E-Mail-Account ist in der Lage Mails zu empfangen aber nicht in der Lage Mails zu
versenden.
2. 2. SMTP AUTH Konfiguration.
Wählen von Accounts im Tools Menu.
Dokumentation
86
Dokumentation
View or change existing e-mail accounts um ein E-Mail-Account zu verändern.
Next drücken um fortzufahren.
Den zuvor erstelleten E-Mail-Account auswählen und Change drücken.
Dokumentation
87
Dokumentation
Die Account Übersicht wird angezeigt.
More Settings ? drücken.
Dokumentation
88
Dokumentation
Die Internet e-mail Settings Dialog Box wird angezeigt.
Dokumentation
89
Dokumentation
Den Outgoing Server tab auswählen.
My outgoing server (SMTP) requires authentication markieren.
Log on using makieren und Username und Passwort eingeben.
Dokumentation
90
Dokumentation
Advanced tab wählen.
This server requires a secure connection (SSL) für mindestens SMTP selektieren.
Dokumentation
91
Dokumentation
Hint: SSL ist ein muss um E-Mails versenden zu können und eine Möglichkeit für POP3.
OK drücken um fortzufahren.
Die Einstellungen können mit Test Account Settings ? getestet werden.
Dokumentation
92
Dokumentation
3. Benutzen von SSL für ein and ausgehende Mails
3. 1. Self Signed SSL Zertificate
Das SSL Zertifikat, das defaultmäßig installiert wird, ist ein sogenanntes selbstsigniertes Zertifikat (Self Signed
Certificate). Ohne weitere Konfiguration erscheint bei jeder ersten Verbindung zum Server eine Warnung. Es
besteht die Möglichkeit das Zertifikat für die aktuelle Sitzung zu akzeptieren oder das Zertifikat zu importieren.
Dokumentation
93
Dokumentation
3. 2. Importieren des Self Signed SSL Zertifikats
Um die SSL Warnung für das Zertifikat generell zu verhindern, muß das Zertifikat in Outlook importiert werden. Der
Import kann leider nicht mit Outlook selbst erfolgen, jedoch mit dem Internet Explorer. Starten Sie den Internet
Explorer und verbinden Sie sich zu https://www.customer.net:995/.
Eine Warning, ähnlich der in Outlook erscheint. Anm.: Der Port 995 ist für SSL verschlüsseltes POP3.
View Certificate drücken.
Dokumentation
94
Dokumentation
Vergleichen Sie die Zertifikat Details und drücken Sie Install Certificate.
Dokumentation
95
Dokumentation
Der Certificate Import Wizard startet. Next um zu wählen wo das Zertifikat gespeichert werden soll.
Dokumentation
96
Dokumentation
Automatically ist der Default.
Dokumentation
97
Dokumentation
Finish drücken um den Import zu beenden.
Dokumentation
98
Dokumentation
Bestätigen Sie das Speichern mit Yes.
Sie können den Internet Explorer danach beenden.
Anmerkung: Wenn Sie den Internet Explorer nicht schließen, bekommen Sie die Fehlermeldung, daß die Seite
nicht angezeigt werden kann. Diese können Sie getrost ignorieren. Das Zertifikat ist nun installiert. Beim
Mailempfang und -versand werden nun keine Warnungen mehr erscheinen, es sei denn das Zertifikat paßt nicht
mehr zum Server oder ist abgelaufen.
Dokumentation
99
Dokumentation
Betriebssystemumgebung
Die Verizon Business Hosting-Services basieren auf dem Betriebssystem SUN Solaris. Dieses Dokument gibt
einen Überblick über die spezifische Betriebssystemumgebung. Desweiteren wird hier auf detaillierte,
betriebssystemrelevante Dokumentationen verwiesen.
1. Virtual Machine
Alle auf Unix basierende Hosting-Services (SUN Solaris) bauen auf dem Virtual Machine Environment (Virtual
MachineE) auf. Das Dokument zum Virtual Machine Environment konzentriert sich auf die betrieblichen
Anforderung des Kunden und enthält entsprechende detaillierte Beschreibungen. Darüber hinaus geben separate
Dokumente einige nützlich Tipps zu den im Folgenden aufgelisteten Systembefehlen:
1. 1. cron-Befehl
Mit den UNIX-Befehlen cron und at lassen sich Programme und Skripte automatisch ausführen. Wie diese
Befehle verwendet werden, ist in einem separaten Dokument beschrieben.
1. 2. init-Befehl
Ein spezieller init-Prozess steuert die auszuführenden Vorgänge beim Booten oder Wechseln von einem
Runlevel zum anderen. Im init-Dokument wird erklärt, wie der init-Befehl es Ihnen ermöglicht, Ihre eigenen
Services auf dem System zu installieren.
2. Quota
Auf gemeinsam genutzten Systemen wird die Festplattenbelegung durch den Quota-Mechanismus begrenzt. Das
Dokument "quota" beschreibt, wie man mit dem Befehl quota herausfindet, wieviel Platz auf der Festplatte
zugewiesen wurde.
3. Unix-Befehle
In dem Dokument "Unix-Befehle" sind die wichtigsten Unix-Befehle erklärt, insbesondere solche, die für die
Administration Ihrer Daten zum Einsatz kommen.
4. Unix-Setup
Im Dokument "Unix-Setup" wird erläutert, wo die Dateien gespeichert sind sowie die Dateisystemhierarchie, die für
Virtual Machines (Dedicated und Shared Unix) verwendet wird.
5. Namenskonventionen
Dateinamen dürfen länger als 8 + 3 Zeichen sein. Nicht-alphanumerische Zeichen sind möglich, allerdings müssen
Sie bei Verwendung spezieller Zeichen wie Umlaute und "ß" vorsichtig sein. Integrieren Sie keine Leerschritte im
Namen (obwohl dies akzeptabel ist, führt es oft zu Problemen). Außerdem sollte die Namensgebung einheitlich
sein (z.B. Dateinamenerweiterungen immer .html oder .HTML).
Darüber hinaus ist es wichtig, entweder nur groß- oder kleingeschriebene Buchstaben in Datei- oder Pfadnamen
sowie Befehlen oder Optionen zu verwenden. z.B. sind index.html, INDEX.HTML und iNdeX.hTmL verschiedene
Dateien,
Dokumentation
100
Dokumentation
ls -l
und
ls -L
sind unterschiedliche Optionen des Befehls ls.
Die Komponenten (Verzeichnisnamen) innerhalb einer Pfadangabe werden durch einen Schrägstrich (/)
voneinander getrennt.
Optionen eines Befehls werden gewöhnlich durch ein Minuszeichen -, z.B. -man eingeleitet.
Dokumentation
101
Dokumentation
Quota
Mit Quota lässt sich die Festplattenbelegung auf zwei Arten gezielt einschränken. Zum einen kann einem Benutzer
oder einer Benutzergruppe nur eine bestimmte Anzahl von Festplattenblöcken zugewiesen werden, zum anderen
kann die Anzahl der Dateien (I-Nodes) festgelegt werden, die ein Benutzer oder eine Benutzergruppe benutzen
darf.
1. Allgemeine Beschreibung
Hinter Quota steht die Idee, Benutzer dazu zu zwingen, unter ihrem Speicherbedarfslimit zu bleiben, so dass sie
nicht unbegrenzt Festplattenspeicher eines Systems belegen. Quota wird auf einer Pro-Benutzer-,
Pro-Dateisystem-Basis gehandhabt. Auf den Servern wird die Quota nur für Festplattenblöcke, und nicht für
Dateien festgelegt.
2. Benutzung
Der Befehl quota -v zeigt die Belegung und Einschränkungen an, die gerade aktuell sind:
Disk quotas for www123 (uid 10123):
File system usage quota limit timeleft
/
75613 204800 215000
files
0
quota
0
limit
0
timeleft
Erklärung der Spaltenüberschriften:
File system: Dateisystem, das das Quota enthält - normalerweise das Root-Verzeichnis (/).
Usage: aktuelle Belegung in Kilobyte.
Quota: aktuelle Quota in Kilobyte (Softlimit = Grenze die nicht überschritten werden sollte).
Limit: Hardlimit des Quotas in Kilobyte (Grenze, die nicht überschritten werden kann - normalerweise 5% mehr als
das Softlimit).
Timeleft: Zähler in Tagen, der darüber Aufschluss gibt, wie lange noch gespeichert werden kann (nur bei
überschrittenen Quotas). Wenn "timeleft" auf 0 Tage steht (wird mit EXPIRED angegeben), können auf dem
Dateisystem keine weiteren Dateien erstellt oder geändert werden.
Nur mit dem Befehl quota lässt sich feststellen, wie viel Festplattenspeicher pro Benutzer belegt wird. Der Befehl
df zeigt die gesamte Festplattenbelegung, die normalerweise vom Quota aufgrund der Dateien, die dem
Standardbenutzer nicht gehören, abweicht. Mit der Option -k wird die Größe in Einheiten von 1024 Byte angezeigt
(standardmäßig in 512-Byte-Einheiten):
Filesystem
www.customer.net
kbytes
8749829
used
7048671
avail
1613660
capacity
82%
Mounted on
/
3. Überschrittenes Quota
Bei einer Überschreitung des Quotas wird nach der Anmeldung eine Nachricht ausgegeben.
Beispiel:
Over disk quota on /, remove 2035K within 3 days
Mit dem Befehl quota -v ergibt sich dann etwa folgende Ausgabe:
Dokumentation
102
Dokumentation
Filesystem usage quota limit
/
214999 204800 215000
timeleft
6.3 Days
files
0
quota
0
limit
0
timeleft
Wenn die Quota überschritten wurde, ist es hilfreich zu wissen, welche Dateien oder Verzeichnisse den Überlauf
verursacht haben. In diesem Fall ist der du-Befehl sehr hilfreich. du zeigt die Belegung durch Verzeichnisse
rekursiv an. Mit der Option -k wird die Größe in Einheiten von 1024 Byte angezeigt (standardmäßig in
512-Byte-Einheiten):
du -k /users/www/data
10202
/users/www/data/site1
34953
/users/www/data/download
202
/users/www/data/personal
8001
/users/www/data/images
0
/users/www/data/priv
53358
/users/www/data
Die letzte Zeile zeigt die Gesamtsumme des Verzeichnisses mit all seinen Unterverzeichnissen an.
Es ist sehr wichtig, dass "timeleft" nicht auf Null geht und das die Quota unter dem Hardlimit bleibt. Wird dies nicht
erreicht, können keine Dateien mehr geschrieben werden. Dies kann den Webserver beeinträchtigen und es ist
ferner nicht mehr möglich, E-Mails zu empfangen.
Mit dem Befehl quota -v ergibt sich dann etwa folgende Ausgabe:
Filesystem usage quota limit
/
207809 204800 215000
timeleft
EXPIRED
files
0
quota
0
limit
0
timeleft
In einem solchen Fall sollten alle nicht verwendeten bzw. nicht mehr benötigten Dateien schnellstens entfernt
werden oder mehr Festplattenplatz bestellt werden. Alternativ besteht die Möglichkeit, große Dateien mit
compress oder gzip zu komprimieren. Wenn diese Maßnahmen nicht greifen, sollte mehr Festplattenspeicher
bestellt werden.
Hinweis: Bei einer Quotaüberschreitung wird eine automatisch generierte E-Mail an
webmaster@www.customer.net geschickt. Dies geschieht an allen Tagen, an denen das Quota überschritten wird.
4. Installation und Konfiguration
Das Quota auf einem Shared Unix ist standardmäßig auf 200 MB eingestellt. Es ist möglich, die Quota zu erhöhen,
indem mehr Speicherplatz in Schritten von 100 MB bestellt wird. Der Produktcode SH-U-HD sollte auf dem
Bestellformular angegeben werden. Die Installation wird von den Verizon Business Webmastern durchgeführt.
5. Weitere Informationen
Näheres zur Quota ist auf dem Server zu finden:
Manual Pages Informationen zu quota(1M),du(1M) und df(1M) erhält man über den Befehl
man
Dokumentation
103
Dokumentation
Rotation von Logfiles auf Shared/Dedicated UNIX
Zur platzsparenden Archivierung von Logfiles wird für die Produkte Shared und Dedicated UNIX ein spezieller
Rotationsmechanismus angeboten. Das folgende Dokument beschreibt zum einen die standardmäßige
Archivierung der Logfiles wie auch die Möglichkeiten zur automatischen Rotation eigener Logfiles mittels einfacher
Konfigurationserweiterungen.
1. Einleitung
Zur Verfolgung von Zugriffen oder zur späteren Auffindung aufgetretener Fehler werden von vielen Anwendungen
Logfiles geschrieben, die als einfache Textdateien auf der Festplatte abgelegt werden.
Um zu vermeiden, dass diese Dateien sämtlichen freien Speicherplatz belegen, findet eine regelmäßige Rotation
statt, d.h. ältere Logfiles werden verworfen und aktuelle Logfiles werden komprimiert auf der Festplatte abgelegt.
Die Anwendungen werden angewiesen, nach erfolgter Rotation ein neues Logfile zu beginnen.
Beim Apache Webserver bilden die Logfiles außerdem die Grundlage für die Erstellung von Zugriffsstatistiken, die
detailliert über die erfolgten Seitenabrufe Auskunft geben.
2. Anwendungsbeispiel
Es lassen sich zwei verschiedene Arten der Rotation von Logfiles unterscheiden.
2. 1. Tägliche Logfile-Rotation
Die erste Variante sieht vor, Logfiles täglich zu einem festen Zeitpunkt zu archivieren, um sie später für andere
Anwendungen verfügbar zu machen. Dazu zählt beispielsweise die Rotation der Webserver-Logfiles, aus denen
später die Zugriffsstatistiken erzeugt werden. Die Archivierung dieser Logfiles erfolgt täglich um 0.00 Uhr. Die Files
werden komprimiert und mit dem aktuellen Datum versehen um später wieder unterschieden werden zu können.
Da der Webserver beim Schreiben des Logfiles aus Gründen der Performance nur die IP-Adresse des
anfragenden Rechners einträgt, muss das File mittels eines speziellen Mechanismus nach diesen IP-Adressen
durchsucht werden, um diese in die Namen der Rechner umzuwandeln. Damit wird eine bessere Lesbarkeit der
späteren Zugriffsstatistik erreicht. Das Tool logresolve übernimmt diese Aufgabe, indem es entsprechende
Anfragen an Nameserver richtet und bereits erhaltene Antworten zur späteren Verwendung zwischenspeichert.
2. 2. Logfile-Rotation nach Größe
Bei der zweiten Art der Logfile-Rotation werden die Files in Abhängigkeit von Ihrer erreichten Größe archiviert. Die
je nach Konfiguration letzten drei oder mehr Logfiles werden dabei aufsteigend nummeriert. Das zuletzt rotierte
Logfile erhält demzufolge die Nummerierung ".0". Sind insgesamt mehr rotierte Files als die maximal erwünschte
Anzahl vorhanden, so wird beim nächsten Rotationsdurchlauf das jeweils älteste File gelöscht.
Diese Art der Rotation wird bei Logfiles angewendet, deren Inhalt nicht zur späteren automatisierten Verwendung,
beispielsweise für Statistiken, verwendet wird. Dazu zählen alle Logfiles der von Verizon Business standardmäßig
bereitgestellten Dienste, z.B. cron oder ftp, mit Ausnahme der bereits erwähnten Logfiles des Webservers.
3. Konfiguration
Um eine problemlose Rotation der Logfiles aller Standarddienste zu gewährleisten, wird grundsätzlich zuerst die
vorgegebene Konfigurationsdatei unter /etc/rotate/admin.cfg eingelesen. Die dort vorhandenen
Einstellungen können in dieser Datei nicht verändert werden. Für eigene Anpassungen und Ergänzungen steht die
Datei customer.cfg im gleichen Verzeichnis zur Verfügung. Ist sie nicht vorhanden, so kann das bereitgestellte
Template customer.temp als Vorlage verwendet werden. Nicht alle in admin.cfg gemachten Einstellungen lassen
sich durch die individuelle Konfigurationsdatei überschreiben. Welche Veränderungen vorgenommen werden
dürfen, wird in cust.allow festgelegt. Alle dort nicht aufgeführten Konfigurationspunkte werden in der Datei
Dokumentation
104
Dokumentation
customer.cfg nicht berücksichtigt.
Existiert keine individuelle Konfigurationsdatei customer.cfg im Verzeichnis /etc/rotate/, so werden für den
Rotationsprozess nur die Einstellungen aus der Datei admin.cfg genutzt. Die Datei ist aus einfachen Blöcken
aufgebaut, jeder Block beinhaltet alle notwendigen Angaben zur Rotation eines bestimmten Logfiles. Ein Block wird
jeweils eingeleitet von seinem Namen in eckigen Klammern, danach folgen die Konfigurationsangaben in der Form
Name = Wert. Allen voran steht der [default]-Block, in dem Einstellungen vorgenommen werden, die innerhalb
aller folgenden Blöcke gelten. Die Einstellungen des [default]-Blockes können im individuellen Konfigurationsfile
nicht verändert werden.
Konfigurationseinstellungen des Default-Blocks:
Option user mit dem Standardwert www000 : Eigentümer der rotierten Logfiles. In der customer.cfg nicht
überschreibbar.
Option group mit dem Standardwert www000 : Gruppenzugehörigkeit der rotierten Logfiles. In der
customer.cfg nicht überschreibbar.
Option unzip mit dem Standardwert gzip -dc : Befehl zum Entpacken komprimierter Files. In
der customer.cfg nicht überschreibbar.
Option zip mit dem Standardwert gzip : Befehl zum komprimieren von Files. Ist in der customer.cfg nicht
überschreibbar.
Option logresolve mit dem Standardwert /usr/local/bin/logresolve : Tool zum Auflösen der
IP-Adressen in Hostnamen im access-Logfile des Webservers. Ist in der customer.cfg nicht überschreibbar.
Option configuser mit dem Standardwert /etc/rotate/customer.cfg : Dateiname für individuelles
Konfigurationsfile. Ist in der customer.cfg nicht überschreibbar.
Option configoverwrite mit dem Standardwert /etc/rotate/cust.allow : Dateiname für File mit
Angaben, welche Einstellungen im individuellen Konfigurationsfile überschrieben werden dürfen. Ist in
der customer.cfg nicht überschreibbar.
Nach dem [default]-Block folgen sämtliche Blöcke für alle zu rotierenden Logfiles.
Dokumentation
105
Dokumentation
Notwendige
Konfigurationseinstellungen
Individuell überschreibbare
Konfigurations-einstellungen
access-Logfile des
Webservers
start, stop, restart, reconf,
rotatemethod, maxfilesize,
logfilename, user, group,
storefilename, pack, resolvenames,
createworkcopy
user, group, storefilename, pack
http-error
error-Logfile des
Webservers
start, stop, restart, reconf,
rotatemethod, maxfilesize,
logfilename, user, group,
storefilename, pack, resolvenames,
createworkcopy
user, group, storefilename, pack
cron
Logfiles des
cron-Daemons
start, stop, rotatemethod,
maxfilesize, logfilename, logdir,
storedir, user, group, pack
keine
mysql
Logfiles des
Mysql-Datenbankservers
start, stop, rotatemethod,
maxfilesize, logfilename, logdir,
storedir, user, group, pack
keine
real
Logfiles des Realservers
start, stop, rotatemethod,
maxfilesize, logfilename, logdir,
storedir, user, group, pack
keine
mail
sendmail-Logfile (siehe
nachfolgenden Text)
restart
keine
Blockname Zu rotierendes Logfile
http-access
Table 1: Standard-Konfigurationsblöcke für die Logfile-Rotation
Da das von Verizon Business bereitgestellte sendmail standardmäßig kein eigenes Logfile erzeugt, findet keine
Rotation statt. Stattdessen wird sendmail neu gestartet, um eventuelle Änderungen an konfigurierten
Mailadressen in den Dateien /etc/mail/aliases und /etc/mail/virtusers einzulesen und zu aktivieren.
Zusätzlich zu den aufgeführten Standardblöcken können im individuellen Konfigurationsfile weitere Blöcke mit den
Namen [rotate[n]] definiert werden, wobei n=1,..,100. Diese Blöcke dienen dazu, eigene Logfiles beispielsweise
von Diensten, die nicht durch Verizon Business zur Verfügung gestellt werden, in den Rotationsprozess
einzubinden.
Dazu können alle in der folgenden Übersicht aufgeführten Konfigurationseinstellungen mit ihren zugehörigen
möglichen Werten verwendet werden, die auch in den Standardblöcken Anwendung finden.
Für alle Einstellungen gilt, dass sie in Kleinbuchstaben vorgenommen werden müssen. Existieren innerhalb eines
Blockes zwei verschiedene Einstellungen für die gleiche Option, d.h. mit dem gleichen Namen (z.B. user=www000
und im gleichen Block user=www), so wird stets die zuletzt gemachte Einstellung verwendet (in diesem Fall
user=www).
Name der
Mögliche
Konfigurationseinstellung Werte
Dokumentation
Beschreibung
106
Dokumentation
user
alle im System
gültigen
Usernamen
group
alle im System
gültigen
Gruppenzugehörigkeit der rotierten Logfiles.
Gruppennamen
start
Befehlsname
incl.
Pfadangabe
Befehl zum Starten des Dienstes, für den der betreffende Block
gilt.
Nur sinnvoll in Verwendung mit der Option stop innerhalb des
gleichen Blockes.
stop
Befehlsname
incl.
Pfadangabe
Befehl zum Stoppen des Dienstes, für den der betreffende Block
gilt.
Wird die Option stop angegeben, so muss auch die Option start
angegeben werden, um einen Neustart des Dienstes zu
bewirken.
restart
Befehlsname
incl.
Pfadangabe
Befehl zum Restarten des Dienstes, für den der betreffende
Block gilt.
Ist die Option restart angegeben, so werden die Optionen start
und stop ignoriert.
reconf
Befehlsname
incl.
Pfadangabe
Befehl zum neu einlesen der Konfiguration des Dienstes, für den
der betreffende Block gilt.
Die Option reconf schließt die Angabe der Optionen start, stop
oder restart nicht aus.
rotatemethod
single: Es wird das File, versehen mit dem aktuellen Datum im
Filenamen, in dem mit der Option storedir angegebenen
Verzeichnis abgelegt.
multiple: Es werden die jeweils letzten drei Logfiles aufbewahrt,
single | multiple
wobei das älteste gelöscht wird, sobald ein neues Logfile rotiert
wird. Die Rotation wird erst durchgeführt, wenn das betreffende
Logfile die Größe erreicht hat, die mit der Option maxfilesize
angegeben wurde.
maxfilesize
Filegröße in
Byte
Bei Verwendung in Verbindung mit der Einstellung
rotatemethod=multiple wird das betreffende Logfile erst rotiert,
sobald es die angegebene Größe überschritten hat.
logfilename
Dateiname
(ohne
Pfadangabe)
Name des zu rotierenden Logfiles. Handelt es sich um einen
Filenamen, der ein Datum enthält, so kann dies mittels
Formatierungsoptionen für den Befehl gdate angegeben werden
(z.B. logfile%d), um den aktuellen Tag des Monats an den
Namen des Logfiles anzuhängen.
Verzeichnis,
beginnend mit /
Verzeichnis, in dem sich das mit der Option logfilename
angegebene Logfile befindet. Die Verzeichnisangabe muss
zwingend mit einem / beginnen.
Eine Ausnahme bildet die Rotation der Logfiles des Webservers,
diese befinden sich immer im Verzeichnis
/users/webs/[domainname]/log.
logdir
Dokumentation
Nutzer, dem die rotierten Logfiles gehören sollen. Der Nutzer
erhält Vollzugriff auf die Files.
107
Dokumentation
Dateiname
(ohne
Pfadangabe)
Filename, unter dem das rotierte Logfile abgelegt werden soll.
Wenn der Name das aktuelle Datum enthalten soll, so kann dies
durch Formatierungsoptionen für den Befehl gdate angegeben
werden. (Beispiel siehe Option logfilename).
storedir
Verzeichnis,
beginnend mit /
Verzeichnis, in welchem das rotierte Logfile abgelegt werden soll.
Eine Ausnahme bildet die Rotation der Logfiles des Webservers,
diese werden immer im Verzeichnis
/users/webs/[domainname]/log/old/[JAHR]m[MONAT]
abgelegt.
pack
on | off
Schaltet das Komprimieren des rotierten Logfiles mittels gzip ein
bzw. aus.
on | off
Schaltet die Auflösung von IP-Adressen innerhalb des Logfiles zu
Hostnamen ein bzw. aus. Die Verwendung der Option ist nur für
die Rotation des access-Logfiles des Webservers oder anderer
Logfiles mit gleichem Aufbau sinnvoll.
on | off
Erzeugt eine Arbeitskopie des zu rotierenden Logfiles im
Verzeichnis .work des mit der Option logdir angegebenen
Verzeichnisses.
Die Option wird verwendet, um eine schnellere Bearbeitung aller
Logfiles zu gewährleisten, bevor nachfolgende Aktionen wie
logresolve ausgeführt werden.
Die Arbeitskopien werden immer komprimiert abgelegt und beim
nächsten Rotationsdurchlauf überschrieben.
Sekunden
Wenn die Optionen stop und start angegeben wurden, so
bestimmt diese Option den Zeitraum zwischen dem Stoppen und
dem erneuten Starten des betreffenden Dienstes.
Die Option kann nur innerhalb der frei konfigurierbaren
[rotate[n]]-Blöcke verwendet werden und braucht nicht vorhanden
zu sein, wenn ein Stoppen und Starten des Dienstes unmittelbar
hintereinander erfolgen soll.
storefilename
resolvenames
createworkcopy
restartdelay
Table 2: Die Optionen innerhalb der Konfigurationsblöcke im Einzelnen
Als Kommentarzeichen innerhalb der Konfigurationsdateien wird das Doppelkreuz (#) verwendet. Alle Angaben,
die nach diesem Zeichen innerhalb der gleichen Zeile stehen, werden ignoriert.
Eine Überprüfung der Konfigurationsangaben in den Dateien erfolgt nur für alle Logfiles von den Diensten, die
seitens Verizon Business installiert wurden. Für die frei konfigurierbaren [rotate[n]]-Blöcke erfolgt eine derartige
Überprüfung nicht.
Die Rotation der Logfiles wird täglich um Mitternacht durchgeführt. Eine zusätzliche Durchführung im Tagesverlauf
ist gegenwärtig nicht möglich.
4. Weitere Informationen
Sowohl die Konfigurationsdatei admin.cfg als auch die Vorlage für die individuelle Konfigurationsdatei
cust_templ.cfg im Verzeichnis /etc/rotate enthalten Hinweise zur syntaktisch und semantisch richtigen
Konfiguration sowie einige Beispiele.
Dokumentation
108
Dokumentation
Setup
Dieses Dokument geht näher auf die Dateisystemhierarchie bei dedizierten und Shared Virtual Machines ein.
Speicherort und Zweck der Dateien und Verzeichnisse werden aufgeführt und der Inhalt einiger Systemdateien
wird erläutert.
1. Allgemeine Beschreibung
Die innere Struktur einer Virtual Machine ähnelt der auf Sun Solaris-Installationen verwendeten
Dateisystemstruktur. Einige Modifikationen mussten u. a. deshalb vorgenommen werden, um der besonderen
Situation auf gemeinsam genutzten Systemen gerecht zu werden und separate administrative Zugriffsmethoden für
Kunden und Hosting-Provider einzurichten.
Für den Kunden sind nur bestimmte Bereiche der Installation auf der physikalischen Maschine verfügbar.
Beispielsweise einige eingerichtete read-only-Dateisysteme (nur lesbar), die von verschiedenen Virtual Machines
gemeinsam genutzt werden. Darüber hinaus gibt es noch eine, für jede einzelne Virtual Machine individuelle
Verzeichnisstruktur.
Eine gut organisierte Verzeichnisstruktur ist Voraussetzung für ein leichtes Navigieren durch die Verzeichnisse und
deren Pflege.
2. Verzeichnisstruktur
Einige Bereiche der Verzeichnisstruktur sind für statische Daten gedacht, die nur während einer spezifischen
Aktualisierung oder Neukonfigurierung geändert werden. Beispiele sind die E-Mail-Konfiguration /etc/mail/ und
die Software-Installation unter dem Verzeichnis /usr/, das von der gesamten Hardware-Plattform genutzt wird.
Weitere Verzeichnisse werden für variable Daten verwendet und können für jeden Benutzer und jeden Prozess auf
der spezifischen Virtual Maschine schreibbar sein. Beispiele hierfür sind die E-Mail-Daten in /var/mail/ und die
im Verzeichnis /tmp/ abgelegten Dateien.
2. 1. Root-Verzeichnis
Auf dem Verzeichnis "/" baut die gesamte Verzeichnisstruktur der Unix-Systeme auf. Es beherbergt alle anderen
Dateien und Verzeichnisse.
Unterverzeichnisse:
/bin/ Notwendige ausführbare Binärdateien.
/dev/ Gerätedateien.
/etc/ Konfigurationsdaten und Initialisierungsskripts, die jeder Virtual Machine eigen sind.
/home/ Home-Verzeichnisse.
/lib/ Notwendige Bibliotheken.
/opt/ Zusätzliche Anwendungspakete.
/tmp/ Temporäre Daten.
/usr/ Eine sekundäre Hierarchie, die von allen Virtual Machines auf einem physikalischen System geteilt
wird.
/users/ Zusätzliche, kundenseitige Software-Installationen und Daten.
/var/ Variable Daten.
Dokumentation
109
Dokumentation
2. 2. Standard-Software
Die Verzeichnisse /usr/ und /usr/local/ enthalten Software- und Konfigurationsdaten, die für alle
Virtual-Machine-Installationen gelten. Keine dieser Daten dürfen und können vom Kunden geändert werden. Die
dort installierten Softwarepakete werden hier näher beschrieben.
2. 3. Web-Daten
In den Verzeichnissen /users/www/ und /users/webs/ befinden sich Daten, die vom Webserver genutzt
werden. Hierzu gehören Konfigurations-, Document-Root-, CGI-Skript- und Protokolldateien. Darüber hinaus sind
hier die Web-Statistiken abgelegt.
2. 4. Zusätzliche Software
Das Verzeichnis /users/local/ wird für kundenspezifische Software-Installationen verwendet. Ein Beispiel ist
das MySQL-Datenbanksystem. Wenn kundenseitig Software hinzukommt, sollte dieses Verzeichnis verwendet
werden. Es ersetzt das Verzeichnis /usr/local/, das vom Hosting-Provider gepflegt wird (siehe Abschnitt
Standard-Software).
2. 5. Home-Verzeichnisse
/home/ enthält das Home-Verzeichnis des administrativen Standardbenutzers einer Virtual Machine und kann
Home-Verzeichnisse weiterer Benutzer beherbergen.
2. 6. Temporäre Dateien
Die Verzeichnisse /tmp/ und /var/tmp/ sollten ausschließlich für temporäre Daten genutzt werden. Sämtliche
Daten können sitespezifisch gelöscht werden. Programme sollten nicht davon ausgehen, dass irgendwelche
Dateien oder Verzeichnisse in /tmp/ zwischen Aufrufen des Programms beibehalten werden.
3. System-Dateien
Zweck dieses Abschnitts ist es, einige Konfigurationsdateien anzusprechen, die für den normalen Benutzer von
besonderem Interesse sein könnten.
Mail-Konfiguration.
Apache-Konfiguration.
/etc/hosts beschreibt Hostname-zu-Adresse-Zuordnungen und enthält Name und IP-Adresse der Virtual
Machine.
/etc/resolv.conf spezifiziert die lokale Domain, einen Suchpfad für Name-Server-Anfragen sowie einige
Name-Server, die für Anfragen verwendet werden können.
Dokumentation
110
Dokumentation
Software
Jede Virtual Machine hat einen Satz von Standard-Softwarepaketen. Diese werden hier aufgelistet.
1. Allgemeine Beschreibung
Die Software, die alle Virtual Machines verwenden, befindet sich in den Dateisystemen /usr/ und /usr/local/,
welche mit Nur-Lese-Zugriff eingerichtet sind. Die Installation kann lokal durch Verizon Business erweitert werden.
Der Kunde kann weitere Software in /users/local installieren.Die Verzeichnisstruktur wird im Dokument VM
Setup detailliert beschrieben.
2. Liste einiger Softwarepakete
In diesem Dokument sind diejenigen Programme und Tools aufgeführt, die für die Administration, Erweiterung von
Webserver-Fähigkeiten und Erstellung zusätzlicher Softwarepakete gedacht sind. Die Software für den Webserver,
die E-Mail-Konfiguration und den Zugriff auf das System werden in separaten Dokumenten behandelt.
2. 1. Verfügbare Kommandozeilen Shells
bash GNU Bourne-Again Shell. Dies ist die Standard-Shell
sh,jsh Standard- und Job-Control-Shell sowie Befehlsinterpreter.
ksh KornShell.
csh Shell-Befehlsinterpreter mit C-ähnlicher Syntax.
2. 2. Perl
Perl ist in der Version 5.8.7 installiert. Verschiedene Zusatz-Perl-Module sind standardmäßig verfügbar. Mit CPAN
können weitere Perl-Module installiert werden. Die CPAN-Installationen sind voll konfiguriert. Die CPAN-Shell wird
mit dem Befehl
perl -MCPAN -e shell
gestartet.
Die Perl-Standardmodule befinden sich im Dateisystem /usr/local/. Zusätzliche Module sollten in
/users/local/site_perl/ installiert werden. Der standardmäßige Include-Pfad des installierten
Perl-Programms funktioniert für beide Verzeichnisstrukturen, der letzte Pfad wird jedoch bevorzugt benutzt.
2. 3. Java
Sun Java SDK ist in den Versionen 1.4, 1.5 und 1.6 verfügbar. Die Installationen befinden sich im Verzeichnis
/usr/local/. Die Standard-Version ist momentan 1.5
2. 4. Compiler
Die GNU Compiler Collection mit dem C und C++ Compiler gcc steht zur Verfügung. Sie ist derzeit in der Version
4.1.x installiert.
Dokumentation
111
Dokumentation
2. 5. Weitere Skriptsprachen
Python (aktuelle Version 2.5.x) aud Ruby (aktuelle Version 1.8.x)
2. 6. Programmiertools
Die GNU Utilities gmake, flex, bison, m4, autoconf, automake und libtool sind installiert. rcs,
cvs und subversion stehen als Versionskontrollsoftware zur Verfügung.
2. 7. Web-Dienstprogramme
wget wget ist ein Dienstprogramm für Netzwerk-Downloads.
curl cURL ist ein Kommandozeilenprogramm für das Herunterladen von Datein mit URL Syntax. Es
unterstützt u.a. FTP, FTPS, SCP, SFTP, HTTP, HTTPS und TFTP.
lynx Lynx ist ein universeller, informationsorientierter Text-Browser für das Web.
ssh,scp und sftp OpenSSH erlaubt das interaktive Logon auf entfernte Server durch das verschlüsselte
SSH Protokoll.
scp und sftp können zum Transfer von Dateien benutzt werden.
rsync rsync kann Verzeichnisse und Dateien von einem Server zum anderen kopieren. Der Datentransfer
wird dabei minimiert, optional können Kompression und Rekursion benutzt werden.
fetchmail fetchmail ist ein Multi-Protokoll E-Mail Tool, mit dem Mails heruntergeladen und weitergeleitet
werden können.
procmail procmail ist ein E-Mail Filter, also ein Programm um eingehende Mails zu bearbeiten. Es kann in
den E-Mail Konfiguration Dateien benutzt werden.
stunnel Stunnel erlaubt es, beliebige TCP Verbindungen durch Secure Sockets Layer (SSL) zu
verschlüsseln.
snmpget und snmpwalk Net-SNMP ermöglicht es, Systemdaten mit dem Simple Network Management
Protocol (SNMP) einzusammeln.
mrtg und rrdtool MRTG und RRDtool werden benutzt, um Systemdaten über längere Zeit zu sammeln,
speichern und graphisch darzustellen.
2. 8. Komprimieren, Konvertieren und Packen
Komprimieren:
compress, uncompress und zcat Standard SUN Tools um Dateien zu komprimieren bzw. expandieren.
gzip,gunzip und gzcat GNU Tools um Dateien im GZIP Format zu komprimieren bzw. expandieren.
bzip2,bunzip und bzcat Tools um Dateien im .bz2 Format zu komprimieren bzw. expandieren.
Packen:
tar Standard SUN Dienstprogramm für den Umgang mit Archivdateien.
gtar Die GNU-Version des Archiv-Dienstprogramms
tar bietet zusätzliche Funktionen wie Komprimierung.
zip und unzip Dienstprogramme für das beliebte pkZIP-Format.
unrar Packt Dateien im RAR Format aus.
Dateimodifikationen:
dos2unix Konvertiert Textdateien vom DOS- ins ISO-Format. Wenn für den Datentransfer FTP verwendet
wird, kann die Konvertierung während des Transfers erfolgen.
patch und gpatch Wenden Änderungen auf Dateien an.
Dokumentation
112
Dokumentation
diff und gdiff Zeigen zeilenweise Unterschiede zwischen nebeneinander dargestellten Textdateien an.
ggrep GNU grep Programm
gfind GNU find Programm
2. 9. Bearbeiten von Dateien
Interaktiver Text-Editor:
vi Auf ex basierender, bildschirmorientierter (visueller) Anzeige-Editor. Auch die erweiterte Version vim ist
installiert.
jove Ein interaktiver, bildschirmorientierter Text-Editor in der Art von Emacs.
xemacs Ein Fork des GNU Emacs Editor mit X-Windows Unterstützung.
Änderungen entsprechend eines Skripts anwenden:
sed Stream-Editor.
awk und nawk Musterverarbeitungssprache.
3. Software-Aktualisierungen
Pflege und Aktualisierung der installierten Softwarepakete wird vom Hosting-Provider übernommen. Die installierte
Version ist eventuell nicht die aktuellste.
Es ist zwar möglich, eine andere Version eines Standard-Softwarepakets in der lokalen Umgebung zu installieren,
es kann jedoch zu Problemen führen.
4. Weitere Informationen
Näheres zu installierten Softwarepaketen ist auf dem Server zu finden:
Manual Pages Die Manual Pages für die installierten Pakete sind über den Befehl
man
verfügbar.
Info Pages Für einige Programme (insbesondere aus dem GNU Projekt) sind weitere Informatioen über den
Befehl
info
verfügbar.
Programm Dokumentation Die Dateien README, Changelog und Copyright für viele Software Pakete sind in
/usr/local/doc/ installiert.
Dokumentation
113
Dokumentation
Secure Shell
Secure Shell (SSH) bietet verstärkte Authentifizierung und sichere verschlüsselte Kommunikation zwischen zwei
nicht vertrauenswürdigen Hosts über ein unsicheres Netzwerk.
1. Allgemeine Beschreibung
Zu den Fähigkeiten von SSH gehören Fernanmeldung, Kopieren von Dateien und Fernausführung von Befehlen.
SSH ist als Ersatz für die unsicheren Tools
telnet, rlogin, rsh und rcp
konzipiert worden. Zusätzlich bietet SSH sichere X Window System-Verbindungen und die geschützte
Weiterleitung beliebiger TCP-Verbindungen. Tools wie rsync können SSH als Transportmittel verwenden. Derzeit
existieren verschiedene Versionen von SSH: SSH1, SSH2 und SSH3. Sie unterscheiden sich in der Verwendung
unterschiedlicher Protokolle und Verschlüsselungsalgorithmen. SSH3 ist nur im kommerziellen SSH Produkt
erhältlich. SSH1 und SSH2 sind auf Verizon Business Servern benutzbar.
2. Benutzung
Eine Schwachstelle von Protokollen wie TELNET und FTP ist die Übertragung unverschlüsselter Kennwörter über
das Internet, was als unsicherer Kanal gesehen werden muss. SSH kann diese Tools mit einer sicheren Alternative
ersetzen, ohne an Funktionalität zu verlieren. Wenn der SSH-Client auf einem Computer installiert ist, kann man
sich bei dem Server anmelden, wie dies mit telnetgeschieht. Ist der Datentransfer zum Webserver bislang über
FTP erfolgt, lässt sich FTP durch scp ersetzen. Da die gesamte Kommunikation verschlüsselt wird, macht SSH die
Administration eines Webservers wesentlich sicherer.
3. Installation und Konfiguration
Verizon Business installiert und konfiguriert die nötigen Programme auf den Servern. Auf jedem Computer, der für
den Zugriff auf den Webserver mittels SSH verwendet wird, muss ein SSH-Client installiert werden.
3. 1. Server-Software
Auf der Virtual Machine muss SSH aktiviert und konfiguriert werden. Nachdem dies geschehen ist, wartet ein
spezieller Daemon (sshd) auf Verbindungen von Clients. Zusätzliche Anmeldungsinformationen sind nicht nötig.
Jeder Benutzer, der Verbindungen mit telnet aufbauen kann, darf dies auch mit Secure Shell tun.
Sollte SSH noch nicht installiert und konfiguriert sein, kann es auf Anfrage von den Verizon Business Webmastern
aktiviert werden. Bitte geben Sie dann den FQDN (Fully Qualified Domain Name = eindeutiger Domainname) des
Servers an, für den dies geschehen soll.
Der Rest dieses Abschnitts befasst sich mit dem Speicherort der von Verizon Business installierten SSH-Binärund Konfigurationsdateien. Für den normalen Benutzer sind diese Details irrelevant und nur zu Referenzzwecken
erklärt.
3. 1. 1. Speicherort des Programms
Die Client-Programme ssh, scp und ssh-keygen sind in /usr/local/bin abgelegt und können direkt von der
Befehlszeile aus gestartet werden.
Dokumentation
114
Dokumentation
3. 1. 2. Konfigurationsdateien
Der SSH-Daemon liest die Konfigurationsdatei /etc/sshd/sshd_config ein. Diese Datei wurde von Verizon
Business eingerichtet. Sie muss normalerweise nicht geändert werden. Die Verzeichnisse /etc/ssh_host_* und
/etc/ssh_host_*.pub enthalten die privaten und öffentlichen Teile der Host-Schlüssel. Diese Schlüssel
werden während der Installation generiert. Die privaten Teile sollte Dritten nicht zugänglich sein. Der öffentliche
Host-Schlüssel wird bei jedem Verbindungsaufbau an den Client geschickt.
Für jeden Benutzer kann ein Verzeichnis namens .ssh im benutzereigenen Home-Verzeichnis existieren. Dieses
Verzeichnis und alle darin enthaltenen Dateien sollten im Besitz des Benutzers sein und von niemanden außer ihm
selbst gelesen werden. Das Verzeichnis kann die Authentifizierungsschlüssel des Benutzers in den Dateien identity
und identity.pub enthalten. Es befindet sich dort auch eine Datei namens known_hosts, die die öffentlichen
Host-Schlüssel aller Server enthält, zu denen der Client je eine Verbindung hergestellt hat.
SSH-Konfigurationsoptionen lassen sich in der config-Datei spezifizieren. All diese Dateien werden ausschließlich
für Client-Verbindungen genutzt, die vom Webserver ausgehen.
3. 2. Client-Software
Entwickelt wurde SSH von SSH Communications Security. Die bekannteste freie Implementierung ist OpenSSH,
die auf fast jeder Unix-Plattform läuft, einschließlich der Cygwin Umgebung für Windows und die auch auf dem
Verizon Business Server verwendet wird. Weitere freie Windows-Clients sind PuTTY sowie WinSCP.
Spezifische Installationsanleitungen und Lizenzinformationen entnehmen Sie bitte der Dokumentation der
jeweiligen Software.
4. Verwendung
Die verschiedenen Client-Programme verwenden leicht unterschiedliche Methoden, um sich bei entfernten Servern
anzumelden oder Dateien auf diese zu kopieren. Der Einsatz von SSH wird mit dem OpenSSH-Client beispielhaft
erklärt.
4. 1. Anmelden bei entfernten Servern
SSH wird fast wie TELNET eingesetzt. Da eine sichere Authentifizierung integriert ist, muss nicht nur der
angesprochene Host angegeben werden, sondern auch der gewünschte Benutzername auf dem entfernten
System. Letzterer lässt sich mit der Option -l oder durch Verbinden des Benutzernamens mit dem Hostnamen
über ein ’@’ angeben. Um sich beim Host www.customer.net mit dem Benutzernamen www123 anzumelden, lautet
die vollständige Befehlszeile:
ssh www123@www.customer.net
Handelt es sich um die erste Verbindung zu diesem Host, ist der Host-Schlüssel dem Client nicht bekannt. Daher
möchte er den Fortbestand der Verbindung durch Eingabe von yesbestätigt haben. Der Host-Schlüssel wird dann
in der Datei known_hosts im Verzeichnis .ssh auf der Client-Maschine gespeichert. Bei folgenden Verbindungen
zum selben Host wird der Inhalt dieser Datei geprüft und keine Bestätigung mehr angefordert.
Wenn die Identität des Clients dem Host nicht bekannt ist (siehe RSA-Authentifizierung weiter unten), wird zur
Eingabe des Kennworts aufgefordert. Nach erfolgreicher Prüfung des Kennworts erscheint die
Shell-Eingabeaufforderung. Der vollständige Anmeldeprozess müsste wie folgt aussehen:
Dokumentation
115
Dokumentation
$ ssh www123@www.customer.net
The authenticity of host ’www.customer.net’ can’t be established.
RSA key fingerprint is 8c:fa:f9:21:e1:b5:2a:f8:0a:51:0b:14:7b:06:65:7f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ’www.customer.net,’172.16.1.4’ (RSA)
to the list of known hosts.
www123@www.customer.net’s password:
Last login: Wed Mar 28 10:26:31 2001 from 192.168.0.1
No mail.
www123@www.customer.net:www123<123>
4. 2. Kopieren von Dateien auf entfernte Server
Der Transfer von Dateien und Verzeichnissen zwischen Client und entfernten Servern erfolgt in beiden Richtungen
mit scp und funktioniert fast wie der normale Unix-Befehl cp. Um die Datei filename von der lokalen Maschine in
das Verzeichnis /home/www123/data auf den Host host.domain.net zu kopieren und dabei den entfernten
Benutzernamen www123 zu verwenden, würde die Befehlszeile wie folgt aussehen:
scp filename
www123@host.domain.net:/home/www123/data
Soll die Datei filename aus dem Verzeichnis /tmp des Hosts host.domain.net unter Verwendung des
entfernten Benutzernamens www123 in das aktuelle Verzeichnis auf der lokalen Maschine kopiert werden, kann
dies über folgenden Befehl geschehen:
scp www123@host.domain.net:/tmp/filename .
Um ganze Verzeichnisbäume rekursiv zu kopieren, steht die Option -r(für rekursiv) zur Verfügung. Mit der Option
-p lassen sich Änderungs- und Zugriffsuhrzeiten sowie Modi der Originaldateien beim Kopieren beibehalten.
5. Weitere Verwendung
SSH lässt sich so konfigurieren, dass Benutzer mit RSA-Schlüsseln authentifiziert, X11-Verbindungen
weitergeleitet, Daten während der Übertragung komprimiert und Zugriffe auf den Server auf Grundlage der
IP-Adresse des Clients beschränkt werden. Manche Funktionen sind eventuell nicht bei allen Clients implementiert
oder können andere Konfigurationsoptionen oder -dateinamen haben. OpenSSH wird wieder als Beispiel
verwendet. Einzelheiten entnehmen Sie bitte der Dokumentation des jeweils verwendeten Clients.
5. 1. Authentifizierung mit RSA-Schlüsseln
SSH kann Benutzer mittels ihrer RSA-Authentifizierungsschlüssel authentifizieren. Zunächst muss der Benutzer
einen RSA-Authentifizierungsschlüssel mit ssh-keygenauf der Client-Maschine generieren. Der resultierende
private und öffentliche Schlüssel muss im Verzeichnis .ssh auf der Client-Maschine abgelegt werden. Der
öffentliche Schlüssel sollte auf den entfernten Server übertragen und in die Datei .ssh/authorized_keys im
Home-Verzeichnis des entfernten Benutzers eingefügt werden (beispielsweise durch Verwendung von
cat id*.pub >> .ssh/authorized_keys
in der Befehlszeile). Danach kann sich der Benutzer anmelden, ohne dass er nach einem Kennwort gefragt wird.
5. 2. Weiterleiten von X11-Verbindungen
X Window System-Verbindungen können von SSH getunnelt werden. Alle X11-Daten werden dann von SSH
verschlüsselt. Wenn die Umgebungsvariable DISPLAY auf der Client-Maschine gesetzt ist (also X11 auf dem
Client läuft), wird die Verbindung zur X11-Anzeige automatisch so an die entfernte Seite weitergeleitet, dass alle
X11-Programme, die von der Shell aus gestartet wurden, durch den verschlüsselten, sicheren Tunnel gehen. Der
Dokumentation
116
Dokumentation
von SSH gesetzte DISPLAY-Wert zeigt auf die Server-Maschine, jedoch mit einer Displayzahl, die größer als Null
ist. SSH richtet auch automatisch Xauthority-Daten auf der Server-Maschine ein. Durch Hinzufügen der Option -X
zur Befehlszeile wird die X11-Weiterleitung für die jeweilige Verbindung aktiviert. Wahlweise kann die Option
ForwardX11 yes
in der SSH-Konfigurationsdatei .ssh/config im Home-Verzeichnis des Benutzers auf dem Client spezifiziert
werden. Dies sowie andere Optionen können für jeden Host anders konfiguriert werden.
5. 3. Komprimieren von Daten
Auf langsamen Verbindungen wie Modemleitungen ist es wünschenswert, den Datenumfang für den Transfer zu
minimieren. Einige SSH-Clients können alle übertragenen Daten mit demselben Algorithmus wie von gzip
komprimieren. Um die Komprimierung zu aktivieren, kann die Option -C zur Befehlszeile hinzugefügt oder die
Option
Compression yes
in die SSH-Konfigurationsdatei eingefügt werden, wie oben beschrieben.
Wenn man die Komprimierung auf schnellen Verbindungen einsetzt, wird damit keine schnellere Übertragung
erreicht, sondern lediglich ein beträchtlicher Rechnungsaufwand auf dem Server und Client betrieben.
5. 4. Zugriffssteuerung
Zugriffsbeschränkungen auf Basis von IP-Adressen des Client-Systems sind möglich und werden auf Anfrage von
den Verizon Business Webmastern aktiviert. Eine solche Zugriffsliste muss sorgfältig vorbereitet werden. Sie kann
nicht eingesetzt werden, wenn Verbindungen von Clients, die dynamisch zugewiesene Adressen verwenden (z.B.
Einwählverbindungen), herstellbar sein sollen.
6. Weitere Informationen
Näheres zu SSH-Protokollen, -Funktionen und -Software ist in gedruckter Form, auf dem Server oder dem
Client-System sowie auf verschiedenen Webseiten verfügbar:
http://www.ssh.com/ Homepage von SSH Communications Security, den Erfindern von SSH.
http://www.openssh.org/ Homepage des OpenSSH-Projekts.
Buch: Unix Secure SHELL Unix Secure SHELL - The hands-on guide to installation, configuration and file
protection techniques for Secure Shell
von Anne Carasik
1. Auflage August 1999
Osborne McGraw-Hill
ISBN 0-07-134933-2
englische Ausgabe
Buch: SSH, the Secure Shell SSH, the Secure Shell: The Definitive Guide
von Daniel J. Barrett, Richard Silverman
1. Auflage Februar 2001
O’Reilly & Associates
ISBN 0-596-00011-1
englische Ausgabe
Dokumentation
117
Dokumentation
Manual Pages für ssh(1), ssh-keygen(1) und sshd(8), verfügbar auf der Virtual Machine über den Befehl
man
Dokumentation
118
Dokumentation
Erzeugung von Webserver-Zugriffsstatistiken
Die grafische Auswertung der Logfiles des Apache-Webservers erfolgt standardmäßig durch die Tools webalizer
oder analog in Verbindung mit reportmagic.
Im folgenden wird neben Hinweisen zur Interpretation der Auswertungsergebnisse auf die allgemeine Konfiguration
der Statistikerzeugung eingegangen. Informationen zur Konfiguration der einzelnen Statistik-Tools finden sich auf
den Seiten zu Analog und Webalizer.
1. Einleitung
1. 1. Webserver-Logfiles
Der Apache Webserver schreibt in der durch Verizon Business eingerichteten Standardkonfiguration für die
primäre Domain eines Shared oder Dedicated Unix sowie für jeden konfigurierten Virtuellen Host ein eigenes
Logfile über die Zugriffe auf die jeweiligen Webseiten und CGI-Programme. In dieses Logfile wird für jeden
erfolgten Zugriff eine Vielzahl von Informationen eingetragen.
userco13.germany.uudial.com - - [08/Nov/2001:16:45:22 +0100]
"GET /start.html HTTP/1.1" 200 192 "http://www.verizonbusiness.com/"
"Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"
Diese Zeile zeigt einen typischen Eintrag in einem Logfile des Webservers. An erster Stelle wird festgehalten, von
welchem Rechner aus der Zugriff erfolgte (im Beispiel userco13.germany.uudial.com). Um die Performance des
Webservers nicht zu beeinträchtigen, wird zum Zeitpunkt des Zugriffs nur die IP-Adresse des anfragenden
Rechners an dieser Stelle eingetragen. Erst beim täglichen rotieren der Logfiles werden die IP-Adressen in die
zugeordneten Hostnamen umgewandelt.
Zwischen den Bindestrichen steht gegebenenfalls der Nutzername, der für den Zugriff verwendet wurde, soweit
das angeforderte Dokument duch die Eingabe von Nutzernamen und Passwort geschützt wurde. Im Beispiel ist
dies nicht der Fall, der Eintrag bleibt deshalb leer.
In eckigen Klammern folgt das sekundengenaue Datum des Zugriffs, dahinter findet sich, eingebunden in
Hochkommata, die Anfragemethode, der Name des angeforderten Dokumentes und das verwendete Protokoll und
dessen Version. Statische Dokumente wie HTML-Seiten oder Bilder werden normalerweise mit der GET-Methode
angefordert, für dynamische Elemente wie CGI- oder PHP-Skripte wird häufig die POST-Methode verwendet. Bei
Verwendung der POST-Methode erhält das aufgerufene Skript alle übergebenen Daten von der Standardeingabe.
Bei Verwendung der GET-Methode werden die Daten in der Umgebungsvariablen QUERY_STRING übergeben.
Außer den beiden genannten Methoden können HEAD-Zugriffe auftreten, wobei nur die Header-Informationen
eines Dokumentes, nicht jedoch sein Inhalt angefordert wird, sowie PUT-Zugriffe, womit ganze Dateien an den
Server übertragen werden können.
Der Name des angeforderten Dokumentes wird stets mit seinem absoluten Pfadnamen, der jedoch relativ zum
DocumentRoot des Servers ist, im Logfile eingetragen.
An nächster Stelle folgt der HTTP-Response-Code, den der Server an den anfragenden Rechner gesandt hat (im
Beispiel ist dies "200"), was auf eine erfolgreich bearbeitete Anfrage hinweist. Die am häufigsten auftretenden
Response-Codes sind neben 200 noch 404 (Dokument wurde nicht gefunden) und 403 (Zugriff wurde verweigert).
Nur wenn der Response-Code 200 zurückgegeben wurde, hat der anfragende Rechner das gewünschte
Dokument erhalten.
Dokumentation
119
Dokumentation
Nach dem Response-Codes wird die Menge der übertragenen Daten in Bytes angegeben, gefolgt vom
sogenannten Referer, der angibt, von welcher Webseite aus das Dokument angefordert wurde. Wird auf
Clientseite das gewünschte Dokument direkt in die Adresszeile eines Browsers eingegeben oder werden Tools wie
wget verwendet, so bleibt dieser Eintrag leer.
An letzter Stelle des Logfile-Eintrages werden Informationen zum Browser des anfragenden Computers vermerkt.
Da diese Information direkt vom Client an den Server gesandt wird, kann sie clientseitig beliebig geändert werden
und bietet somit keine Zuverlässigkeit hinsichtlich der Art der tatsächlich verwendeten Browser.
Die Reihenfolge der beschriebenen Informationen in einem Logfile-Eintrag lässt sich über die Konfiguration des
Webservers beliebig verändern. Das hier vorgestellte Format entspricht dem Common Logfile Format und damit
einem sehr weit verbreiteten Standard. Die Tools zur Analyse der Logfile-Einträge, die im folgenden beschrieben
werden, gehen stets davon aus, dass sich das zu analysierende Logfile in diesem Format befindet.
1. 2. Ableitung statistischer Informationen
Aus dem beschriebenen Logfile-Eintrag lassen sich bereits eine Menge statistischer Informationen gewinnen. So
kann zum Beispiel festgestellt werden, wieviele Zugriffe von einer bestimmten Domain ausgingen oder wieviele
Anfragen erfolgreich bzw. nicht erfolgreich bearbeitet wurden und welche Fehler bei einer Abweisung der Anfrage
aufgetreten sind.
Weitergehende Informationen ergeben sich jedoch erst, wenn eine abgeschlossene Menge von Logfile-Einträgen
betrachtet wird.
Dabei werden unter anderem Visits gezählt. Ein Visit entsteht, wenn in einer vorgegebenen, fest definierten
Zeitspanne wiederholt Anforderungen vom gleichen Rechner eintreffen. Es ist dann davon auszugehen, dass
dieser Benutzer sich einige Zeit auf den Webseiten aufgehalten hat.
Unter einer PageImpression, früher auch PageView genannt, versteht man den Aufruf einer Webseite, ohne das
dabei integrierte Multimedia-Elemente wie Bilder oder Videos mitgezählt werden. Da auf diese Art und Weise eine
genaue Zählung der tatsächlich aufgerufenen Webseiten erfolgt, verwendet die IVW dieses Prinzip zur Ermittlung
der Verbreitung werbeführender HTML-Seiten.
Jede Datei, die beim Zugriff eines Clients auf einen Server aufgerufen wird, bildet einen Hit. Ein Hit entspricht
damit genau einer Zeile des Logfiles. Wird eine normale Webseite aufgerufen, so zählt der Abruf der HTML-Seite
selbst als auch jedes hier verankerte Multimedia-Element (meist Bilder oder Grafiken) als jeweils ein Hit. Je mehr
Multimedia-Elemente auf einer Seite, desto mehr Hits werden protokolliert. Daher sind Hits kein taugliches
vergleichendes Maß für die Popularität von Webseiten.
Die Viewtime bezeichnet die zeitliche Dauer, mit der sich ein Nutzer mit einer Page oder einer Webseite
durchschnittlich beschäftigt, bis er die nächste Seite eines Angebots aufruft oder das Angebot verlässt.
Für das Zählen bewusster Zugriffe auf ein Werbeangebot (durch Klicken) ist die Klickrate, auch AdClickRate
genannt, von Bedeutung. Sie stellt die Anzahl der Zugriffe auf die eingebundene Werbung je hundert Zugriffe
(PageImpressions) auf die Seite dar, die die Werbung enthält. Die Zählung dieser Klicks erfolgt zumeist durch den
Einsatz spezieller Zählskripte, denen als Parameter die aufgerufene Seite übergeben wird. Ohne diese Skripte
lassen sich die Klicks aus dem Logfile des Webservers nur ermitteln, wenn die Werbung Bestandteil des gleichen
Webangebotes ist wie die Webseite, die den Link auf die Werbung enthält. Aus diesem Grund bieten die
verwendeten Tools webalizer und analog die Ermittlung der Klickrate nicht an.
Dokumentation
120
Dokumentation
2. Konfiguration
Die Erzeugung der Statistiken wird standardmäßig mittels webalizer und analog vorgenommen. Die Konfiguration
dazu findet sich in der Datei admin.cfg im Verzeichnis /etc/statistic. Um Einstellungen aus dieser Datei für
verschiedene Webauftritte individuell anzupassen, kann jeweils im Verzeichnis
/users/webs/customer.net/conf/ eine Datei namens stats.cfg angelegt werden, deren Syntax der in
der Datei admin.cfg verwendeten entspricht. Die genannten Konfigurationsdateien beziehen sich lediglich auf
den Ablauf der Erzeugung von Webserver-Statistiken sowie die Festlegung der zu verwendenden Statistik-Tools.
Die Konfiguration dieser Tools analog und webalizer erfolgt über gesonderte Konfigurationsdateien.
Ähnlich dem Rotationsmechanismus wird auch beim Erzeugen der Statistiken zunächst immer die vorgegebene
Konfigurationsdatei eingelesen. Ist keine Konfigurationsdatei des Kunden vorhanden, so wird nach den
vorgegebenen Standardwerten die Statistikerzeugung ausgeführt. Ist jedoch die Datei stats.cfg für eine Domain
vorhanden und enthält korrekte Konfigurationseinträge, so werden diese anstelle der Standardwerte genutzt.
Nachfolgend werden die Namen der Konfigurationseinstellungen, deren Standardbelegung und die möglichen
alternativen Werte beschrieben.
Konfigurationseinstellungen zur Erzeugung von Webserver-Statistiken:
Die Option webalizer mit dem Standardwert on: Schaltet die Erzeugung von Statistiken mittels webalizer ein.
Eine Unterteilung in tägliche, wöchentliche oder monatliche Statistiken erfolgt nicht. Überschreibbar in
stats.cfg, gültige Werte: on | off.
Die Option webalizer_ftp mit dem Standardwert on: Schaltet die Erzeugung von Statistiken für den FTP
Server mittels webalizer ein. Eine Unterteilung in tägliche, wöchentliche oder monatliche Statistiken erfolgt
nicht. Überschreibbar in stats.cfg, gültige Werte: on | off.
Die Option analog_ascii mit dem Standardwert on:
Die Option language mit dem Standardwert german: Sprache, in der Mails versandt werden. Sollten keine
Werte für webalizer_language oder analog_language angegeben sein, wird dort ebenfalls dieser Wert
benutzt. Überschreibbar in stats.cfg, gültige Werte: dutch |english | french | german | italian. Schaltet die
Erzeugung von Statistiken mittels analog im ASCII-Modus ein. Die Unterteilung in tägliche, wöchentliche und
monatliche Statistiken erfolgt über die Konfigurationspunkte analog_daily, analog_weekly und analog_monthly.
Überschreibbar in stats.cfg, gültige Werte: on | off.
Die Option mailto mit dem Standardwert webmaster: Nach der Erzeugung der Statistiken wird eine E-Mail an
diese Adresse versandt. Mittels dem Konfigurationspunkt mailint lässt sich bestimmen, in welchen Abständen
diese E-Mails versandt werden sollen. Ist die Erzeugung der Statistiken mittels analog_ascii eingeschaltet, so
enthält die E-Mail, neben den Links zu den Statistiken auch die komplette zuletzt erzeugte Statistik.
Überschreibbar in stats.cfg, gültige Werte: gültige E-Mail-Adresse.
Die Option mailint mit dem Standardwert weekly: Der Versand von Mails mit den erzeugten Statistiken bzw.
einem Hinweis auf die URL der Webalizer Statistik erfolgt nur für das hier angegebene Intervall. Mit dem Wert
none werden keine Mails versandt. Überschreibbar in stats.cfg, gültige Werte: none | daily | weekly |
monthly.
Die Option webalizer_cfg mit dem Standardwert webalizer.cfg: Webalizer-Konfigurationsdatei für jede
einzelne Domain. Standardmäßig wird für die Erzeugung der Statistiken mit webalizer die von Verizon
Business vordefinierte Konfiguration genutzt. Zusätzlich kann jedoch jeweils im Verzeichnis
/users/webs/customer.net/conf/ eine Konfigurationsdatei mit individuellen Einstellungen für die
jeweilige Domain unter dem hier angegebenen Namen abgelegt werden. Welche Optionen von webalizer
dabei beeinflusst werden können, wird im Dokument Konfiguration von Webalizer näher erläutert.
Dokumentation
121
Dokumentation
Überschreibbar in stats.cfg, gültige Werte: dateiname im Verzeichnis
/users/webs/customer.net/conf/.
Die Option webalizer_language mit dem Standardwert german: Sprache, in der die von webalizer erzeugten
Statistiken ausgegeben werden. Überschreibbar in stats.cfg, gültige Werte: dutch |english | french |
german | italian.
Die Option analog_ascii_cfg mit dem Standardwert analog-ascii.cfg: Analog-Konfigurationsdatei zur
Erzeugung von ASCII-Statistiken für jede einzelne Domain. Standardmäßig wird für die Erzeugung der
ASCII-Statistiken mit analog die von Verizon Business vordefinierte Konfiguration genutzt. Zusätzlich kann
jedoch jeweils im Verzeichnis /users/webs/customer.net/conf/ eine Konfigurationsdatei mit
individuellen Einstellungen für die jeweilige Domain unter dem hier angegebenen Namen abgelegt werden.
Welche Optionen von analog dabei beeinflusst werden können, wird im Dokument Konfiguration von Analog
näher erläutert. Überschreibbar in
stats.cfg, gültige Werte: dateiname im Verzeichnis
/users/webs/customer.net/conf/.
Die Option analog_html_cfg mit dem Standardwert analog-html.cfg: Analog-Konfigurationsdatei zur
Erzeugung von HTML-Statistiken für jede einzelne Domain. Standardmäßig wird für die Erzeugung der
HTML-Statistiken mit analog die von Verizon Business vordefinierte Konfiguration genutzt. Zusätzlich kann
jedoch jeweils im Verzeichnis /users/webs/customer.net/conf/ eine Konfigurationsdatei mit
individuellen Einstellungen für die jeweilige Domain unter dem hier angegebenen Namen abgelegt werden.
Welche Optionen von analog dabei beeinflusst werden können, wird im Dokument Konfiguration von Analog
näher erläutert. Überschreibbar in
stats.cfg, gültige Werte: dateiname im Verzeichnis
/users/webs/customer.net/conf/.
Die Option analog_language mit dem Standardwert german: Sprache, in der die von analog erzeugten
Statistiken ausgegeben werden. Überschreibbar in stats.cfg, gültige Werte: dutch |english | french | german |
italian.
Die Option analog_daily mit dem Standardwert on: Schaltet die Erzeugung täglicher analog-Statistiken in
ASCII und HTML an bzw. aus. Überschreibbar in stats.cfg, gültige Werte: on | off.
Die Option analog_weekly mit dem Standardwert on: Schaltet die Erzeugung wöchentlicher
analog-Statistiken in ASCII und HTML an bzw. aus. Überschreibbar in stats.cfg, gültige Werte: on | off.
Die Option analog_monthly mit dem Standardwert on: Schaltet die Erzeugung monatlicher analog-Statistiken
in ASCII und HTML an bzw. aus. Überschreibbar in stats.cfg, gültige Werte: on | off.
Als Kommentarzeichen innerhalb der Konfigurationsdateien wird das Doppelkreuz (#) verwendet. Alle Angaben,
die nach diesem Zeichen innerhalb der gleichen Zeile stehen, werden ignoriert.
Die Reihenfolge der Konfigurationsangaben ist beliebig. Wird ein Konfigurationspunkt mehrfach aufgeführt, so wird
der in der Datei am weitesten unten stehende Eintrag genutzt.
Die Erzeugung der Statistiken erfolgt jeweils nach Rotieren der Logfiles um Mitternacht.
3. Weitere Informationen
Sowohl die Konfigurationsdatei admin.cfg als auch die Vorlage für die individuelle Konfigurationsdatei
stats_templ.cfg im Verzeichnis /etc/statistic enthalten Hinweise zur syntaktisch und semantisch
richtigen Konfiguration sowie einige Beispiele.
Dokumentation
122
Dokumentation
Weitere Informationen sind auf verschiedenen Webseiten verfügbar:
http://www.webalizer.org Die offizielle Homepage der webalizer-Software mit einer ausführlichen Dokumentation.
http://www.analog.cx Die offizielle Homepage der analog-Software.
Webalizer-Konfiguration Beschreibung der Konfiguration der Webalizer-Statistiken für alle Shared und Dedicated
UNIX Produkte.
Analog-Konfiguration Beschreibung der Konfiguration der Analog-Statistiken für alle Shared und Dedicated UNIX
Produkte.
Dokumentation
123
Dokumentation
TELNET
Mit Hilfe des TELNET-Protokolls kann ein Client terminalorientierte Prozesse auf einem entfernten Server steuern.
Dies ermöglicht den uneingeschränkten Zugriff auf Programme, die zur Administration des Servers verwendet
werden.
Aus sicherheitstechnischen Gründen bieten wir einen Zugang über TELNET nicht mehr an. Bitte
verwenden Sie für den Zugang zur Shell Ihres Servers das Protokoll SSH.
Dokumentation
124
Dokumentation
Unix-Befehle
Dieses Dokument gibt einen Überblick über die am häufigsten benötigten und verwendeten Unix-Befehle.
1. Allgemeine Beschreibung
Das Dokument ist eine Zusammenstellung verschiedener Ausschnitte aus Handbuchseiten. Wenn Sie weitere oder
detailliertere Informationen wünschen, können Sie über den Befehl
man
das Referenzhandbuch anzeigen. Befehlsbeschreibungen lassen sich über
man COMMAND
einsehen. Der Befehl
man ls
zeigt beispielsweise die Seite im Referenzhandbuch an, die den Befehl
ls
erklärt.
2. Beschreibung von Unix-Befehlen
2. 1. ls-Befehl
Führt die Dateien eines Verzeichnisses auf.
Optionen:
-l long output format (with permissions, time).
-a list all files include hidden files (begins with a dot).
-t sort by time stamp (latest file first).
-d if the argument of the command is a directory, list only its name and not the content. Normally used with -l
option to see the status of the directory.
-r reverse the sort order to get reverse alphabetic time order. Combined with -t the oldest file will listed at first.
Alle Optionen lassen sich kombinieren, zum Beispiel:
ls -ltr s*
list all files and directories starting with s, long output, time sort, reverse sort order (here the newest file is listed at
last).
2. 2. cd-Befehl
Wechselt das Verzeichnis.
Beispiele:
Dokumentation
125
Dokumentation
cd /bin
change to absolute path /bin.
cd images
change to the directory images from that directory where you are (relative).
cd
change to the home directory.
2. 3. pwd-Befehl
Gibt das Arbeitsverzeichnis aus.
pwd
print the name of the current directory as an absolute path.
2. 4. chmod-Befehl
Ändert den Rechtemodus einer Datei.
Optionen:
-f force, chmod will not complain if it fails to change the mode of a file.
-R recursive changing of files when a directory is given as an argument.
Beispiele:
chmod o+w index.html
add write permissions for others.
chmod g-r index.html
take away read permissions for the group.
2. 5. ps-Befehl
Zeigt den Prozessstatus an.
Optionen:
-a lists information of all processes most frequently requested.
-e every running process is listed.
-f full listing is generated.
Beispiele:
ps -ef
generate a full list of every process.
Dokumentation
126
Dokumentation
2. 6. dos2unix-Befehl
Konvertiert in DOS editierte Dateien zu Unix-Dateien.
Beispiele:
dos2unix <InputFile> <OutputFile>
convert to OutputFile.
dos2unix <InputFile> <InputFile>
convert to the same Filename.
unix2dos: wie dos2unix nur in die andere Richtung.
2. 7. cat-Befehl
Verknüpft Dateien und zeigt sie über den Standardausgabekanal an.
Beispiele:
cat index.html
print index.html to the standard output.
cat head.html tail.html > site.html
writes the content of both files to file site.html.
2. 8. head-Befehl
Gibt den ersten Teil (head) von Dateien aus.
Optionen:
-n N the number N of lines e.g. -n 30 first 30 lines.
Beispiele:
head index.html
print the first 10 (default) lines of index.html.
head -n 20 index.html
print the first 20 lines of index.html.
2. 9. tail-Befehl
Gibt den letzten Teil (tail) von Dateien aus.
Optionen:
-n N the number N of lines e.g. -n 30 first 30 lines.
Dokumentation
127
Dokumentation
Beispiele:
tail index.html
print the last 10 (default) lines of index.html.
tail -n 30 index.html
print the last 30 lines of index.html.
2. 10. more-Befehl
Blättert durch eine Textdatei.
Beispiel:
more index.html
browse through index.html.
Keys:
SPACE or CRTL-F one page forward
CRTL-B one page back
RETURN one line forward
q quit
2. 11. diff-Befehl
Zeigt Unterschiede zwischen Dateien an.
Beispiel:
diff <FILE1> <FILE2>
show the difference between the files.
2. 12. man-Befehl
Zeigt Manual Pages an.
Beispiel:
man <COMMAND>
manual page for COMMAND.
man ls
manual for ls command.
2. 13. mkdir-Befehl
Erstellt ein Verzeichnis.
Dokumentation
128
Dokumentation
Beispiele:
mkdir <DIRNAME>
create a directory in the current directory.
mkdir images1
create a directory named images1 in the current directory.
2. 14. rmdir-Befehl
Entfernt ein Verzeichnis.
Beispiele:
rmdir images1
remove the directory images1.
Erinnerung:
rmdir
entfernt nur leere Verzeichnisse!
2. 15. rm-Befehl
Entfernt Dateien oder Verzeichnisse.
Optionen:
-r delete recursive.
-f force deleting.
-i interactive (prompt for confirmation of file(s)).
Beispiele:
rm <FILE>
removes the file <FILE>.
rm -rf /data
removes all file and directories beyond /data/test and the directory /data itself without confirmation.
rm -i *
removes all files in the directory with confirmation for each file and directory.
2. 16. cp-Befehl
Kopiert Dateien.
Optionen:
Dokumentation
129
Dokumentation
-R recursive.
-i interactive. cp will prompt for confirmation before overwrite an existing target.
Beispiele:
cp <SOURCE> <TARGET>
copies the file from source to the destination.
cp index.html /tmp/index.html
copies index.html to the temp directory.
cp /tmp/list index.html
copies the file list to the current directory and name it index.html.
cp -R /data1 .
copies recursive from /data1 to current dir.
2. 17. mv-Befehl
Verschiebt Dateien.
Optionen:
-i interactive. mv will prompt for confirmation before overwrite an existing target.
Beispiele:
mv <SOURCE> <DESTINATION>
move the SOURCE to name or location DESTINATION.
mv welcome.html index.html
rename welcome.html to index.html.
mv index.html /tmp
move index.html to /tmp.
2. 18. ln-Befehl
Erstellt Links zu Dateien.
Optionen:
-s create a symbolic link.
Beispiele:
ln -s <SOURCE>
Dokumentation
<DESTINATION>
130
Dokumentation
create a link from <SOURCE> to <DESTINATION>.
ln -s index.html welcome.html
create the symbolic link welcome.html that points to index.html.
2. 19. tar-Befehl
Erstellt Bandarchive und / oder extrahiert Dateien.
Optionen:
-c create.
-v verbose. Gives output and messages.
-f filename.
-x extract or restore.
-t table of content. Returns the files stored in an archive.
-p permissions. Restore the original mode by ignoring the present umask.
Beispiele:
tar -cvf content.tar
data create an archive named content.tar of the directory data.
tar -tvf test.tar
table of content from the archive test.tar.
tar -xvpf content.tar
restore the archive content.tar to the current directory.
Erinnerung: Wenn ein Dateiname angegeben ist, muss f die letzte Option sein.
2. 20. grep-Befehl
Gibt Zeilen aus, die mit einem Suchmuster übereinstimmen.
Optionen:
-i ignore case.
-r recursive. Read all files under each directory.
-v reverse match. Select all none matching lines.
Beispiele:
grep <PATTERN> <FILE>
list all lines in FILE in which the PATTERN match.
grep http *.html
lists all lines with http in all files with html extension.
Dokumentation
131
Dokumentation
grep -i HREF index.html
list all lines with href in upper or lower cases.
2. 21. find-Befehl
Sucht Dateien.
Optionen:
-name pattern true if patter matches the current file name.
-mtime n true if the file’s data was modified n days ago.
-ctime n true if the file’s status was changed n days ago.
-atime n true if file was accessed n days ago.
-prune do not examin directories or files the pattern just match.
Beispiele:
find PATH EXPRESSION
list all files in the PATH and down which matches the EXPRESSION.
find . -name "*.php"
list all file with the extension php in the current directory and down.
find . -name images -prune
print all files of the current directory and below, but skipping the content of the directory images.
2. 22. du-Befehl
Zeigt belegten Festplattenplatz an.
Optionen:
-k write file size in units of 1024 bytes (default 512 bytes).
-s reports only the total sum.
Beispiele:
du
shows the file size of every file beginning from the current directory and the summary of all at the end.
du -k
write the file size in units of 1024 byte.
du -sk
shows only the summary in kbyte.
du -s /tmp
Dokumentation
132
Dokumentation
summary disk usage in the tmp directory.
2. 23. df-Befehl
Zeigt freien Festplattenplatz an.
Optionen:
-k print allocation in kbytes.
Beispiele:
df
shows the statistic of the disk/filesystem.
df -k
disk statistics in kbytes.
df -k .
disk statistics in kbytes of the current filesystem.
2. 24. quota-Befehl
Zeigt Quota des Dateisystems an.
Optionen:
-v display user’s quota on all mounted file systems where quotas exist.
Beispiele:
quota -v <USERID>
hows the quota of the user.
quota -v www123
shows quota from user www123.
2. 25. gzip-Befehl
Komprimiert und dekomprimiert Dateien.
Optionen:
-d decompress.
-v verbose. Print summary and messages.
-t test. Checks the integrity of the compressed file.
-1 fast compression but less compression.
-9 slow but best compression (default 6).
Dokumentation
133
Dokumentation
Beispiele:
gzip <FILE>
compress the <FILE> to FILE.gz.
gzip -d <FILE>.gz
uncompress FILE.gz to FILE.
gzip -9 mailinglist
highest compression on the file mailinglist.
2. 26. (un)compress-Befehl
Komprimiert und dekomprimiert Dateien (ähnlich wie gzip).
Optionen:
-v verbose output.
Beispiele:
compress <FILE>
compress the <FILE> to FILE.Z.
uncompress -v <FILE>.Z
uncompress FILE.Z to FILE.
2. 27. passwd-Befehl
Ändert das Kennwort für die Anmeldung.
Beispiele:
password
change the login password of the user.
password pop123-01
changing the password of the POP-user pop123-01.
3. Weitere Informationen
Näheres zu Unix-Befehlen ist auf dem Server zu finden:
Manual Pages Für Unix-Befehle verfügbar auf der Virtual Machine über den Befehl
man
Dokumentation
134
Dokumentation
Vi Editor
Der vi ist ein textbasierter Editor und im Geegensatz zu anderen Editoren auf allen Unix-Systemen verfügbar.
1. Allgemeine Beschreibung
Der Name vi kommt von visual und gibt an, dass Änderungen, die mit dem Editor in einer Datei gemacht werden,
sofort sichtbar werden.
Die Befehle und Funktionen, die im vi verfügbar sind, werden in Kategorien zusammengefasst, so dass es
einfacher ist, einen speziellen Befehl zu finden.
An dieser Stelle wird weder auf technische Einzelheiten noch auf eine komplette Dokumentation eingegangen,
denn es gibt sehr ausführliche Informationen über den vi, die im nächsten Abschnitt zusammengestellt sind.
2. Weitere Informationen
Näheres zum Editor vi ist auf verschiedenen Webseiten und in gedruckter Form erhältlich:
Vi editor Wie man den vi Editor verwendet. In englischer Sprache.
Der Editor vi Eine Einführung über den Editor vi.
Vi for smarties Eine vi Anleitung in acht Lektionen und in zwei Quizzes. In englische Sprache.
Buch: Learning the vi Editor
von Linda Lamb & Arnold Robbins
6. Auflage November 1998
O’Reilly & Associates, Inc.
ISBN 1-56592-426-6
englische Ausgabe
Buch: vi Editor
vi Editor kurz & gut
von Arnold Robbins
übersetzt von Imke Schenk
2. Auflage April 2000
O’Reilly & Associates, Inc.
ISBN 1-89721-213-7
Dokumentation
135
Dokumentation
Webalizer Konfiguration
Das Statistik-Tool webalizer wird genutzt, um die Logfiles des Apache Webservers grafisch auszuwerten. Eine
Reihe von Konfigurationseinstellungen beeinflusst dabei wesentlich das Aussehen der erzeugten Statistiken, sowie
auch deren Art und Umfang.
1. Einleitung
Mittels webalizer werden die Logfiles des Apache-Webservers so ausgewertet, dass auf einer übersichtlich
gegliederten Webseite statistische Informationen zu den Zugriffen auf den Webserver in einer grafisch
ansprechenden Form sichtbar werden.
Die Erzeugung dieser Statistiken erfolgt jeweils nach dem Rotieren der Logfiles um Mitternacht. Um die Ausgabe
von webalizer individuell gestalten zu können, bietet das Programm eine Vielzahl von Optionen an, die über eine
entsprechende Konfigurationsdatei zur Verfügung gestellt werden können.
Die fertigen Statistiken werden jeweils im Verzeichnis /users/webs/customer.net/stat/webalizer
abgelegt und sind mittels eines Webbrowsers unter der URL http://www.customer.net/webalizer/ abrufbar.
Webalizer-Statistiken werden inkrementell erzeugt, d.h. die Statistiken werden täglich aktualisiert. Eine getrennte
Auswertung nach Tagen, Wochen, Monaten oder frei definierten Zeiträumen, wie sie beispielsweise bei Analog
möglich ist, bietet webalizer nicht an.
2. Anwendung
Um die Erzeugung der Statistiken in jedem Fall zu gewährleisten, wird von Verizon Business eine
Standardkonfiguration verwendet. Diese reicht im wesentlichen aus, um alle statistischen Reports, die webalizer
anbietet, in einer übersichtlichen Form zu erzeugen.
Die Standardkonfiguration findet sich in der Datei /usr/local/bin/webalizer/webalizer.conf und kann
nicht verändert werden.
Die darin vorgenommenen Einstellungen lassen sich jedoch mittels einer zweiten Konfigurationsdatei teilweise
überschreiben. Diese Konfigurationsdatei kann individuell für jeden auf dem Server gehosteten Webauftritt jeweils
im Verzeichnis
/users/webs/customer.net/conf/ angelegt werden, soweit für den entsprechenden Webauftritt ein eigenes
Logfile zur Verfügung steht. Der Name der Datei kann in der Konfiguration der Statistik in der Datei
/users/webs/customer.net/conf/stats.cfg ebenfalls für jeden Webauftritt individuell festgelegt werden.
Standardmäßig wird der Name webalizer.conf verwendet. Die Datei wird nur genutzt, wenn sie im
angegebenen Verzeichnis vorhanden ist. Fehlt die Datei, wird die Statistik nur unter Verwendung der
Standardkonfiguration erzeugt.
3. Konfiguration
Webalizer bietet eine Vielzahl von Konfigurationseinstellungen, weshalb an dieser Stelle nur auf einige
grundsätzliche Einstellungen eingegangen werden kann.
Dokumentation
136
Dokumentation
Name der
Option
Standardwert Beschreibung
ReportTitle
Statistiken für
Überschrift für die HTML-Seiten mit den Webserver-Statistiken. Hinter der
Überschrift wird automatisch der Domainname plaziert.
HistoryName
webalizer.hist
History-File für die Speicherung der Daten der letzten 12 Monate. Dieses File
befindet sich im gleichen Verzeichnis wie die erzeugten Statistiken und wird
bei jedem webalizer-Lauf aktualisiert.
Incremental
yes
Erzeugung der inkrementellen Statistik ein bzw. ausschalten.
GMTTime
no
Anstelle der lokalen Zeit kann für alle Timestamps GMT verwendet werden.
VisitTimeout
3000 (30
min.)
Einstellung zum Visit-Timeout (siehe auch Begriffsklärungen).
GraphLegend
yes
Schaltet die graphische Legende für die erzeugten Statistiken ein bzw. aus.
DailyGraph |
HourlyGraph
yes
Schaltet die Erzeugung eines Graphs zur täglichen bzw. stündlichen Nutzung
ein bzw. aus.
Table 1: Globale Konfigurationseinstellungen zur Erzeugung von Webalizer-Statistiken
Mittels den Top-Table Einstellungen lässt sich einstellen, wie viele Top-Plazierungen für verschiedene
Logfile-Einträge in die Statistik integriert werden sollen. Dazu zählen unter anderem die am häufigsten
verwendeten Browser, die Länder der anfragenden Clients oder die am häufigsten angefragten Seiten.
Um eine Top-Liste von der Erzeugung auszuschließen, muss die Anzahl der Listeneinträge auf Null (0) gesetzt
werden.
Neben den hier aufgeführten Konfigurationseinstellungen lassen sich Top-Listen für verwendete Usernamen und
Suchbegriffe definieren, soweit der Webserver eine Authentifizierung unterstützt bzw. eine Suchmaschine installiert
wurde.
Name der
Option
Standardwert Beschreibung
TopAgents
15
Anzahl der Einträge in der Liste der am häufigsten anfragenden Webbrowser.
TopCountries
30
Anzahl der Einträge in der Liste der Länder, aus denen die meisten Anfragen
stammen.
TopReferrers
30
Anzahl der Einträge in der Liste der Top-Referrer Seiten.
TopSites
30
Anzahl der Einträge in der Liste der am häufigsten abgerufenen Webseiten.
TopEntry
10
Anzahl der Einträge in der Liste der Seiten, an denen ein Client den
Webauftritt zum ersten Mal betreten hat.
Table 2: Top-Table Konfigurationseinstellungen zur Erzeugung von Webalizer-Statistiken
Durch die folgenden Konfigurationseinstellungen lassen sich verschiedene Browser, Referrer, Webseiten, URLs
und Usernamen von der Erzeugung der Statistik ausschließen.
Alle Einträge dürfen jeweils 80 Zeichen lang sein, jede Option darf beliebig oft innerhalb eines Konfigurationsfiles
vorkommen. Alle Konfigurationseinstellungen zum Verbergen von Einträgen wirken sich nur auf die erzeugte
Statistik aus, wenn die entsprechende Top-Liste in die Statistik eingebunden ist.
Dokumentation
137
Dokumentation
Name der
Option
Standardwert
Beschreibung
HideAgent
kein Standardwert
Verbergen von Browsern und anderen Agents, z.B. Suchrobotern.
HideReferrer
kein Standardwert
Verbergen von Referrern, sinnvoll, um Referrer innerhalb der
eigenen Webseiten auszuklammern.
HideSite
kein Standardwert
Verbergen von Webseiten, die dadurch nicht in den Top-Seiten
auftauchen.
HideURL
*.gif | .GIF | .jpg | .JPG |
.png | .PNG | .ra
Verbergen von URLs, meist verwendet um Nicht-HTML-Dateien
aus der Top-Liste der URLs auszuklammern.
HideUser
kein Standardwert
Verbergen von Usern, nur sinnvoll, wenn mit
Nutzerauthentifizierung gearbeitet wird.
Table 3: Konfigurationseinstellungen zum Verbergen von Einträgen bei der Erzeugung von Webalizer-Statistiken
Die Gruppierungsfunktionen erlauben das Zusammenfassen von mehreren Objekten, die dadurch nur genau
einmal als Gruppe in der Statistik auftauchen.
Gruppierungen können auf der Basis von Webseiten, Referrern, URLs, Usernamen oder Browsern vorgenommen
werden. Um beispielsweise alle Seiten eines Verzeichnisses zu einer Gruppe zusammenzufassen und diese
Gruppe in die Top-Liste der Webseiten zu integrieren, reicht es aus zu schreiben GroupSite /help/*, womit alle
Seiten aus dem Verzeichnis /help/ zu einer Gruppe zusammengefasst werden. Damit neben der erzeugten
Gruppe die Seiten nicht zusätzlich auch noch einzeln in der Liste der Top-Webseiten auftauchen, muss die Option
HideSite /help/* mit dem selben Wert, in diesem Fall /help/* ebenfalls im Konfigurationsfile enthalten sein.
Name der
Option
Standardwert
Beschreibung
GroupAgent
kein
Standardwert
Zusammenfassen einer Gruppe von Browsern.
GroupUser
kein
Standardwert
Zusammenfassen einer Gruppe von Usern, nur sinnvoll, wenn mit
Nutzerauthentifizierung gearbeitet wird.
GroupSite
kein
Standardwert
Zusammenfassen einer Gruppe von Webseiten.
GroupURL
kein
Standardwert
Zusammenfassen einer Gruppe von URLs.
GroupDomains
kein
Standardwert
Zusammenfassen einer Gruppe von Domains.
GroupReferrer
kein
Standardwert
Zusammenfassen einer Gruppe von Referrern.
Table 4: Gruppierungsfunktionen bei der Erzeugung von Webalizer-Statistiken
Um einzelne Einträge aus dem Logfile des Webservers komplett aus den Statistiken auszuschliessen gibt es eine
Reihe von Ignore Kommandos. Sollen Einträge wiederum explizit in die Auswertung aufgenommen werden, so
existieren dafür die Include Kommandos.
Beide lassen sich auf URLs, Referrer, Webseiten, User und Browser anwenden, was damit den gleichen Optionen
Dokumentation
138
Dokumentation
wie bei der Gruppierung und dem Ausschluss einzelner Einträge aus den Top-Listen entspricht. Ebenfalls diesen
beiden Konfigurationsmöglichkeiten entspricht die Syntax der Ignore und Include Anweisungen.
Zur Anpassung der erzeugten HTML-Seiten existieren ebenfalls zahlreiche Konfigurationseinstellungen.
Name der
Option
Standardwert
Beschreibung
HTMLPre
kein
Standardwert
HTML-Code zum Einfügen am Anfang der Ausgabeseite.
HTMLHead
kein
Standardwert
HTML-Code zum Einfügen in den HEAD-Block der Ausgabeseite.
HTMLBody
kein
Standardwert
HTML-Code zum Einfügen zwischen dem HEAD-Block und dem BODY-Tag.
Wenn diese Option verwendet wird, so muss der erste Eintrag ein BODY-Tag
enthalten.
HTMLPost
kein
Standardwert
HTML-Code zum Einfügen unmittelbar nach der Überschrift.
HTMLTrail
kein
Standardwert
HTML-Code zum Einfügen am rechten unteren Ende der Ausgabeseite. Der
Text wird innerhalb einer Tabelle eingefügt und ist rechtsbündig ausgerichtet.
HTMLEnd
kein
Standardwert
HTML-Code zum Einfügen am Ende der Ausgabeseite. Wenn diese Option
benutzt wird, müssen die abschließenden BODY- und HTML-Tags den
Abschluss der Angabe bilden.
Table 5: Funktionen zum Anpassen des HTML-Outputs bei der Erzeugung von Webalizer-Statistiken
4. Weitere Informationen
Ausführliche Informationen zur Webalizer-Konfiguration finden sich direkt auf der Webalizer-Homepage:
www.webalizer.org Die Webalizer Homepage mit der kompletten Dokumentation.
Dokumentation
139
Dokumentation
Dedicated Server Windows
Dieses Dokument bietet einen Überblick über die Produktmerkmale sowie über technische Details der
Webhosting-Plattform "Dedicated Server", basierend auf Microsoft Windows Server Versionen.
1. Systemübersicht
1. 1. Betriebssystem
Als Betriebssystem werden ausschließlich Microsoft Windows Server Versionen in English in einer angepassten
Installation verwendet. Weiterhin werden das aktuelle Service Pack sowie alle relevanten Patches aufgespielt. Die
Pflege und Aktualisierung der Betriebssystemdateien, des IIS sowie des Internet Explorers wird von den Verizon
Business Webmastern übernommen.
1. 2. Webserver
Als Webserver kommt der Internet Information Server (IIS) von Microsoft zum Einsatz, der vollständig konfiguriert
sowie vorbereitet für die Daten der Kunden-Domain zur Verfügung gestellt wird. Diese Installation wird ebenfalls
vom Hosting-Team betreut und gewartet.
Folgende Skriptsprachen bzw. Servererweiterungen sind im IIS vorkonfiguriert:
Active Server Pages (ASP, .asp, .asa),
Perl-Skripte (.pl, .plx),
Server Side Includes (SSI, .shtml).
.NET Framework.
Weiterhin können auf Anfrage die SharePoint Services installiert werden.
1. 3. Weitere Dienste
Die folgenden installierten Dienste werden im Abschnitt 2 genauer beschrieben:
Microsoft Remote Desktop für Desktop-Zugriff,
Microsoft FTP Server zur Dateiübertragung,
Microsoft SMTP Server zum Versenden von E-Mails (Empfangen auf Anfrage),
Microsoft POP3 Server zum Abholen von lokal zugestellten E-Mails (auf Anfrage, nicht bei Windows 2000).
1. 4. Zusätzliche Software
Als Skript- bzw. Programmiersprachen stehen im gesamten System zur Verfügung:
Windows Script Host 5.6,
Perl 5,
Java 2,
Microsoft XML Core Services.
WinZip steht als Shareware zur Verfügung. Details zur angebotenen Statistik-Software befinden sich in einem
separaten Dokument.
Dokumentation
140
Dokumentation
2. Systemzugang
Im System werden zwei Benutzerkonten für den Kunden-Zugang angelegt. Ein Konto wird für interaktive
Verbindungen mit dem Remote Desktop Client benutzt (Power User), das andere Konto kann für
Datei-Übertragungen per FTP genutzt werden (FTP User). Diesen Benutzerkonten sind keine privilegierten
Systemrechte zugeordnet. Auf Anfrage stellen wir ein Formular zur Verfügung, mit dem Sie Administrationsrechte
erhalten können. Bitte beachten Sie hierbei, dass die Verantwortung für den Betrieb des Servers mit der
Unterzeichnung auf den Kunden übertragen wird und zusätzliche Kosten entstehen können.
2. 1. Remote Desktop
Durch Benutzung des Remote Desktop Client (ehemals: Terminal Services Client) kann eine interaktive und
verschlüsselte Verbindung zum Server hergestellt werden, in der der vollständige Desktop übertragen wird. Der
Server ist so konfiguriert, dass
1. nur Verbindungen mit 128-Bit-Verschlüsselung akzeptiert werden,
2. nur zwei Verbindungen zur gleichen Zeit bestehen können,
3. eine inaktive Verbindung nach 30 Minuten beendet wird.
Die Desktops werden virtualisiert verwaltet, d.h. der eigentliche Konsolen-Desktop bleibt davon unberührt. Über die
Kommandozeilenoption
/console bzw. /admin
des Remote Desktop Client kann auch der Konsolen-Desktop erreicht werden.
Die benötigte Client-Software (Remote Desktop Connection Software) ist frei erhältlich bei Microsoft.
2. 2. File Transfer Protocol (FTP)
Die Übertragung von Webseiten, Skripten oder Dateien kann mittels FTP erfolgen. Nach erfolgreichem Anmelden
am FTP-Server können diese Dateien in das Verzeichnis d:\webs\ bzw. darunter (aber nicht oberhalb davon)
abgelegt werden. Weitere, umfangreichere Dateioperationen auf dem Server können in einer interaktiven
Desktop-Verbindung vorgenommen werden.
Hinweis: Es wird empfohlen, FTP-Verbindungen im sogenannten Passive-Modus zu betreiben. Im Active-Modus
sind bei klientseitiger Firewall zusätzliche Konfigurationen notwendig (s. auch Zugriffsbeschränkungen).
Hinweis: Um Dateien verschlüsselt zu übertragen nutzen Sie bitte die "Client Drive Mapping" Möglichkeiten des
RDP Clienten.
3. Laufwerke und Verzeichnisse
3. 1. Server mit Betriebssystemen bis einschl. Windows Server 2003
3. 1. 1. Laufwerksverteilung
Die Festplatten am internen RAID-System sind zu einem logischen Laufwerk zusammengefasst. Dieses logische
Laufwerk wird aus Betriebssystemsicht als eine große Festplatte eingebunden und in die Laufwerke C: und D:
unterteilt.
Bei Premium-Maschinen erfolgt eine abweichende Unterteilung: das logische Laufwerk des internen
RAID-Systems wird in die Laufwerke C: und E: unterteilt und das (größere) logische Laufwerk des zweiten,
externen RAID-Systems als Laufwerk D: eingebunden.
Dokumentation
141
Dokumentation
Auf dem Laufwerk C: (Bezeichnung: SYSTEM) befinden sich die Betriebssystemdateien sowie
Verwaltungsprogramme. Die Größe beträgt ca. 2-10 GByte und soll nur von den Verizon Business Webmastern
benutzt werden.
Auf dem Laufwerk D: (Bezeichnung: DATA) befinden sich o.g. zusätzliche Software, die Benutzerprofile,
IIS-Programmdateien, das systemweite TEMP-Verzeichnis sowie das Verzeichnis webs, in dem alle Kundendateien
abgelegt werden. Die Größe beginnt bei ca. 7 GByte und endet bei ca. 240 GByte, abhängig vom gewählten
Maschinentyp.
Auf dem Laufwerk E: (Bezeichnung: LOG) werden bei Premium-Maschinen dediziert Log- sowie
Auslagerungsdateien gespeichert. Es hat eine Größe von ca. 20 GByte.
3. 1. 2. Verzeichnisstruktur
Auf dem Laufwerk D: [DATA] befinden sich die Verzeichnisse:
iis
Programmdateien des IIS sowie des Mailservers.
programs Zusätzliche Software (auch für Installationen vom Kunden zu benutzen).
temp
Systemweites Verzeichnis für temporäre Dateien (%TEMP%).
users
Die Benutzerprofile.
webs
Je Kunden-Domain ein ebenso genanntes Unterverzeichnis (z. B. customer.net) mit weiteren
Unterverzeichnissen (s. Webserver).
Zusätzliche Software sollte grundsätzlich auf dem Laufwerk D: aufgespielt werden.
3. 2. Server mit Betriebssystemen ab Windows Server 2008
3. 2. 1. Laufwerksverteilung
Der erste RAID Verbund wird mit einem logischen Laufwerk eingerichtet. Dieses Laufwerk wird in die Partitionen C:
und D: aufgeteilt. Das D: Laufwerk ist lediglich einige MB gross und dient ausschliesslich der Abwärtskompatibilität
einiger Kunden- bzw. Verwaltungsscripte. Es ist nicht geeignet dort Daten abzulegen. Jeder weitere RAID Verbund
wird danach alphabetisch benannt.
4. Konfiguration des Webservers
Für eine Kunden-Domain werden ein virtuelles Web, ein FTP-Zugang sowie ein Eintrag im Statistik-Web angelegt
und vollständig konfiguriert. Pro virtuellem Web wird unterhalb von d:\webs ein Verzeichnis mit dem Namen der
Kunden-Domain angelegt, welches wie folgt strukturiert ist:
cgi?bin Zur Ablage von CGI-Skripten (z. B. Perl-Skripte).
data
Das Document Root der Website.
etc
Weitere Konfigurationsdateien (z. B. für die Statistik).
log
Im Unterverzeichnis w3svc<Nr.> befindet sich das tagesaktuelle Logfile vom Webserver. Im
Verzeichnis old werden ältere Logfiles automatisch ZIP-komprimiert abgelegt. <Nr.> wird IIS-intern
verwaltet und hat für das erste Kunden-Web den Wert 4.
stats
Verzeichnis für die Statistiken (Details s. gesondertes Dokument).
Dokumentation
142
Dokumentation
Für die Beispieldomain "customer.net" ergibt sich die folgende Verzeichnisstruktur:
\webs\customer.net
Hauptverzeichnis für alle Dateien für diese Domain.
\webs\customer.net\data
Document Root; Start der Website.
\webs\customer.net\log\w3svc4
Tagesaktuelles Logfile (Namensschema ex<yy><mm><dd>.log, Jahr (yy),
Monat (mm) und Tag (dd) jeweils zweistellig.
\webs\customer.net\log\old
ZIP-komprimierte Logfiles bis zum aktuellen Tag (exklusiv).
\webs\customer.net\stats
Webserver-Statistiken.
Anmerkung: Bin einschl. Windows Server 2003 ist das \webs Verzeichnis in d:\webs. Ab Windows Server 2008
befindet sich dieses in c:\webs.
5. FTP- und Mail-Server
5. 1. FTP-Server
Mit dem initial erstellten FTP-Benutzerkonto können FTP-Verbindungen zu dem Verzeichnis d:\webs und zu allen
darunterliegenden Verzeichnissen hergestellt werden. Es können weitere, eingeschränktere "FTP-Only"-Zugänge
beauftragt werden, mit denen nur der Zugang zu genau einem Kunden-Web möglich ist (bspw.
d:\webs\customer.net und darunter).
Hinweis: Der FTP-Befehl
cd /
wechselt auf Serverseite nicht in das physische Wurzelverzeichnis. In das FTP-Startverzeichnis gelangt man
jederzeit durch Eingabe von
cd ~
5. 2. Mail-Server (SMTP)
Auf dem System läuft ein einfacher SMTP-Server, der im Auslieferungszustand zum Versenden von E-Mails von
der Maschine aus verwendet werden kann. Der Server nimmt Verbindungen nur von localhost [127.0.0.1] sowie
seiner eigenen IP entgegen.
Typische Anwendungsfälle für die Benutzung dieses Servers sind das Versenden von Informationen per E-Mail,
die über die Website angefordert wurden oder Newsletter-Dienste. Von außen ist der Server nicht erreichbar (s.
auch Sicherheit).
Auf Anfrage kann dieser Server auch konfiguriert werden, Mails für bestimmte Domains entgegenzunehmen
("MX-Host"). Weiterhin kann dieser Server auch zur Entgegennahme und Zustellung von Mails an beliebige
Adressen konfiguriert werden (SSL-verschlüsseltes SMTP mit Anmeldung, "SMTP-AUTH").
5. 3. Mail-Server (POP3)
Wenn der SMTP-Server Mails für bestimme Domains entgegennimmt, können diese auf Anfrage mit dem
POP3-Server zur Abholung per SSL-verschlüsseltem POP3 ("POP3S") bereitgestellt werden. Ebenso möglich ist
die Erstellung von Empfängergruppen, Aliasen sowie Weiterleitungen an andere Mailadressen (lokal, extern).
Dokumentation
143
Dokumentation
5. 4. Mail-Server (HMailer)
Auf Wunsch kann auch der freie Mail-Server HMailserver installiert werden. Dieser bietet ein wesentlich erweitertes
Leistungsspektrum gegenüber den vom IIS bereitgestellten Services.
6. Monitoring
Die Erreichbarkeit des Systems wird rund um die Uhr (24×7) überwacht. Zur Überprüfung der Netzwerkanbindung
werden ICMP-Echo-Request-Pakete gesendet ("ping"). Der Webserver-Prozess (IIS) kann mit frei konfigurierbaren
HTTP-Anfragen überprüft werden (z. B. "HEAD / HTTP/1.0" oder auch "GET
/ein-verzeichnis/eine-skript-datei.pl?mit_parametern=1"). Im Fehlerfall werden unsere Mitarbeiter pro-aktiv aktiviert.
7. Sicherheit
7. 1. Benutzerkonten
Die Benutzer-Paßwörter müssen aus Sicherheitsgründen von Zeit zu Zeit geändert werden.
Achtung: Für das Hauptbenutzerkonto (Power User) ist dies darüber hinaus bereits bei der ersten Anmeldung
erforderlich.
Das System akzeptiert nur kryptografisch starke Paßwörter, die Groß- und Kleinbuchstaben, Ziffern sowie
Sonderzeichen (! § $ %) enthalten.
7. 2. Datei-Backup
Auf dem System ist ein Backup-Klient installiert. Nähere Erläuterungen und Hinweise dazu sind in einem separaten
Dokument zu finden.
7. 3. Zugriffsbeschränkungen
Die IP-Konnektivität der Maschine ist aus Sicherheitsgründen durch Access Control Lists (ACL) auf den Routern
eingeschränkt (vgl. Paket-Filter). Zur Maschine hin sind Verbindungen zu den folgenden TCP-Ports erlaubt:
Port
Description
21
FTP-Kommandokanal. Wenn sich der FTP-Klient hinter einer Firewall befindet und Verbindungen im
sogenannten Active Modus aufbaut, so muss diese Firewall eingehende Verbindungen von der IP des
Dedicated Servers Quellport 20/TCP zu dem Klient erlauben (vom Server aufgebauter FTP-Datenkanal).
Bei passiven Verbindungen wird der Datenkanal ebenfalls vom FTP-Klient aufgebaut.
25
SMTP, Standard-Port für SMTP-Server (auf Anfrage).
80
HTTP, Standard-Port für Webserver.
443
HTTPS, Secure HTTP. Standard-Port für SSL-Verbindungen.
995
POP3S, Standard-Port für SSL-verschlüsseltes POP3 (auf Anfrage).
3389
Remote Desktop.
55555
Port der zusätzlichen Website (Statistik-Web) für den direkten Online-Zugriff auf die Statistik, Anmeldung
mit Hauptbenutzerkonto (z. B. http://172.16.1.4:55555).
Dokumentation
144
Dokumentation
Weiterhin sind Antwortpakete für Verbindungen erlaubt, die von der Maschine aus aufgebaut wurden ("TCP
established"). Für Verbindungen von der Maschine aus gibt es keine Einschränkungen.
Die Konnektivität kann auf Nachfrage noch weiter eingeschränkt werden, eine Erweiterung kann jedoch nur im
begrenzten Maße und in begründeten Fällen erfolgen.
Dokumentation
145
Dokumentation
Windows Support-Zeiträume
Die auf den Verizon Business Dedicated Server Systemen installierten Windows Server-Produkte werden gemäß
der Lifecycle-Matrix für Windows Server-Produkte unterstützt. Neue Produkte werden kurz nach derer allgemeinen
Verfügbarkeit unterstützt.
1. Windows 2000 Server
Dieses System wird bis Juni 2010 für bestehende Installationen mit Service Pack 4 unterstützt. Dieses System
steht für Neuinstallationen nicht mehr zur Verfügung.
2. Windows Server 2003
Dieses System wird bis August 2015 für Neu- und Bestandsinstallationen unterstützt. Dir RTM-Version wird seit
2007 und die Version mit Service Pack 1 seit April 2009 nicht mehr unterstützt. Z. Zt. wird ausschließlich Service
Pack 2 unterstützt.
3. Windows Server 2008
Dieses System wird aktiv unterstützt mit Service Pack Version 1 und 2. Das Ende dieser Unterstützung ist z.Zt.
noch nicht bekannt.
4. SQL Server 2000
Dieser Server wird mit installiertem Service Pack 4 bis April 2013 unterstützt.
5. SQL Server 2005
Dieser Server wird mit installiertem Service Pack 3 bis 2015 unterstützt.
6. Andere Server-Systeme
Für Informationen über Server-Systeme, die hier nicht auf aufgeführt sind, fragen Sie bitte die Verizon Business
Webmaster.
Dokumentation
146
Dokumentation
Statistik der Webserver-Logdateien
Die Statistiken eines Webservers dienen dazu, Aufschluss über die Benutzeraktivitäten auf der Website zu
erhalten. Über die hier gewonnenen Erkenntnisse ist es möglich, die weitere Planung des Webauftritts gezielt nach
dem Benutzerverhalten zu gestalten.
1. Allgemeine Beschreibung
Die Statistiken werden via Script automatisch jede Nacht ab 01:00 Uhr erstellt. Das Script erkennt, welche
IIS-Webs konfiguriert sind und erstellt je nach gewünschtem Statistiktyp die Statistik für das entsprechende
IIS-Web. Die Konfiguration der Statistik kann für jedes Web individuell eingerichtet werden.
In jedem IIS Web existiert neben dem Verzeichnis data ein Verzeichnis stats. In diesem ist die Statistik für das
jeweilige Web gespeichert.
2. Statistiken abrufen
Geben Sie in Ihrem Browser die folgende URL ein:
http://<IP Ihres Servers>:55555
Es erscheint eine Anmeldemaske. Geben Sie dort die Ihnen bekannten Benutzerdaten für den TSC (Terminal
Services Client) ein. Sie sehen eine Seite, die alle Statistiken auflistet, bei denen Sie eine entsprechende
Berechtigung besitzen, diese einzusehen.
Die Berechtigungen für die jeweiligen Benutzer können vom Hauptbenutzer des Servers bei den Verizon Business
Webmastern angefordert werden. Der Hauptbenutzer hat Zugriff auf alle Statistiken des jew. Servers.
3. Statistiken anpassen
3. 1. Statistiktyp einstellen
Zur Zeit werden von Verizon Business die folgenden Statistiktypen zum Einsatz angeboten:
analog-ascii
Die Ausgabe erfolgt rein als Text. So sind alle Informationen schnell zur Hand.
analog-graphic
Die Ausgabe erfolgt mit grafischen Mitteln, so dass ein schnelles erfassen der Zahlen möglich
ist.
webalizer
Webalizer ist ein weiteres grafisches Auswertungssystem, welches von einigen Kunden
gegebüber analog-graphic bevorzugt wird.
none
Erzeugt keinen Output, bzw. es werden keine Statistiken erstellt.
Der Statistiktyp wird in der Datei statsconfig.txt konfiguriert, welche im Stamm Verzeichnis aller Webs gespeichert
ist (d:\webs oder c:\webs vgl. hier). Diese Datei regelt die generellen Statistik Einstellungen für alle auf diesem
Server konfigurierten Webs. Um ein einzelnes Web anders zu konfigurieren kopieren Sie einfach diese Datei in das
\webs\<web>\etc Verzeichnis. Damit wird die dort abgelegte Datei für die Statistikgenerierung herangezogen und
nicht die generelle Konfigurationsdatei in \webs.
Dokumentation
147
Dokumentation
3. 2. Zustellung per eMail
Um die Statistiken auch per eMail zu erhalten muss lediglich der Parameter mailto in der statsconfig.txt Datei
gefüllt werden. Bei mehreren Empfängern werden die Adressen als Komma getrennte Liste erwartet.
Selbstverständlich kann auch diese Liste pro Web individuell gehalten werden, in dem die statsconfig.txt wieder in
den jew. <web>\etc Verzeichnissen gespeichert wird.
3. 3. Statistik-Konfiguration
3. 3. 1. Analog
Im Stammverzeichnis aller Webs (d:\webs bzw. c:\webs) gibt es die Datei analogcust.cfg. Analog zur o.a.
"statsconfig.txt" ist diese Datei für die Analog Ausgabe aller Webs verantwortlich. Auch hier kann man durch eine
Kopie in das "etc" Verzeichnis der einzelnen Webs die Ausgabe für einzelne Webs anpassen.
Die genaue Erklärung der einzelnen Parameter ist in der Analog Dokumentation zu finden.
3. 3. 2. Webalizer
Im Stammverzeichnis aller Webs (d:\webs bzw. c:\webs) gibt es die Datei webalizercust.cfg. Auch diese kann per
Web individualisert werden, in dem man die Datei in das "etc" Verzeichnis des jew. Webs kopiert und anpasst.
Auf der Website von Webalizer sind die Möglichkeiten der Konfiguration erklärt.
Dokumentation
148