- 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 & Peter Laurie 2. Auflage Februar 1999 O’Reilly & 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 & 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 & Peter Laurie 2. Auflage Februar 1999 O’Reilly & 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 & 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 & Peter Laurie 2. Auflage Februar 1999 O’Reilly & 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 & 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 & 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