Ubuntu 10.04.1 LTS Webserver Handbuch erstellt von Klaus Hofmann Stand 14.12.2010 Ubuntu_10.04.1_LTS_Webserver_101214.odt Seite 1 von 12
Ubuntu 10.04.1 LTS Grundinstallation Inhaltsverzeichnis Ubuntu 10.04.1 LTS Grundinstallation... 2 Voraussetzungen:... 2 Grundinstallation... 4 Schematischer Netzplan... 4 Erste Schritte... 5 Festplattenpartitionierung... 5 Vollständige Festplattenpartitionierung...5 Teilweise verwendete Festplatte für den Webserver...6 Fortsetzen der Installation nach der Partitionierung...7 Nach dem ersten Neustart... 7 Benutzer root einrichten... 7 Allgemeine Unix-Befehle... 7 Netzwerkkarten Einstellungen... 8 Grundbedienung Editor vi... 8 Ubuntu-Server manuell updaten / upgraden...8 Verschiedene Programme / Module nachinstallieren...8 Verschiedene Programme / Module entfernen...9 Samba optional installieren (Einbinden Freigegebener Verzeichnisse, z.b. USB-Stick an Fritz!Box)...9 Samba Konfigurationsdatei smb.conf bearbeiten...9 Softlink für Benutzer auf www-verzeichnis einrichten...9 Verzeichnis(se) für Website(s) unter /var/www anlegen...10 vsftpd konfigurieren... 10 Webalizer einrichten... 10 Passwortabfrage für Webalizer-Anzeige...13 Nach einer Datei im Linux-System suchen...13 Schöne Sachen, welche man für den Webserver nicht braucht...14 USB-Stick an Fritz!Box einbinden (mounten, Voraussetzung Samba-Client)...14 Skrip- (Batch-) Datei erstellen... 14 Batchdatei Zeitgesteuert, alle 30 Minuten sichern...14 Voraussetzungen: CD oder USB-Stick (soweit das Mainboard diese Funktion unterstützt) mit heruntergeladenem Ubuntu- Serverimage in 32-Bit oder 64-Bit Version. Funktionsfähige Internetverbindung über einen Router DynDNS Kennung, Domain oder von anderem Anbieter IP-Adresse, Netzmaske, Standardgateway Ubuntu_10.04.1_LTS_Webserver_101214.odt Seite 2 von 12
Grundinstallation Um nach meiner Anleitung den Webserver aufsetzten zu können, sollte dieser während der Grundinstallation noch nicht am Netzwerk angeschlossen sein. Dadurch wird verhindert, dass sich der Server per DHCP eine IP Adresse zieht. So bekommt man automatisch die Abfragen für IP-Adresse, Netzmaske und Standardgateway angeboten. Schematischer Netzplan Dieser Plan soll einen möglichen Aufbau eines Netzwerkes mit Webserver darstellen. In diesem Beispiel sind zwei Router mit NAT (Network Address Translation) im Einsatz, da bei den billigen Routern für den Hausgebrauch die DMZ (Demilitarisierte Zone) nicht sicher getrennt vom internen Netz ist. Bei zwei billigen Routern für ca. 50 ist man demnach auf der physikalisch sicheren Seite. Ubuntu_10.04.1_LTS_Webserver_101214.odt Seite 3 von 12
Erste Schritte Zu Beginn wird der Server nicht mit dem Netzwerk verbunden, außer man hat keinen DHCP-Server laufen, sodaß die Netzwerkeinstellungen manuell vorgenommen werden müssen. Nach dem Starten von der Installations-CD sind der Reihe nach folgende Abfragen und Einstellungen zu treffen. 1. Auswahl Land: Deutsch 2. Tastaturmodell: nein 3. Herkunft der Tastatur: Deutschland 4. Tastenbelegung: Deutschland Jetzt beginnt die Hardwareerkennung. Anschließend, da kein DHCP-Server bzw. der Netzwerkanschluß nicht angeschlossen ist, erscheint die Meldung automatische Netzwerkkonfiguration schlug fehl. Dies mit weiter bestätigen. Im nächsten Schritt wird unter Netzwerkeinrichten der Punkt Netzwerk manuell einrichten mit Angabe der IP- Adresse, der Netzmaske und des Standardgateways aufgerufen. 5. Folgende Netzwerkeinstellungen können jetzt vorgenommen werden. statische IP Adresse (z.b. 192.168.10.1) passende Subnetzmaske (z.b. 255.255.255.0) passendes Gateway (z.b. 192.168.10.254) passenden DNS-Server (z.b. 62.91.2.20) 6. Rechnername: ubuntu-1004 7. Domainname: meine-site.dyndns.org (die DynDNS-Domain) 8. Nun erscheint die Abfrage, ob die Zeitzone mit Berlin korrekt ist ja Festplattenpartitionierung Nächster Schritt ist die Partitionierung der Festplatte. Wird eine Partitionierung mit LVM durchgeführt, kann mit weiteren Festplatten die logische Festplatte erweitert werden. Das Risiko eines Datenverlustes erhöht sich jedoch hierbei. Ein weiterer Nachteil liegt darin, dass nur von Linux aus darauf zugegriffen werden kann. Der Vorteil liegt einzig in der Möglichkeit, durch weitere Festplatten die Speicherkapazität unter dem gleichen Mountpoint zu erweitern. Vollständige Festplattenpartitionierung Wir partitionieren herkömlich, Geführt verwende vollständige Festplatte. Hierbei schlägt Ubuntu eine Aufteilung in eine / (root)-partition mit ext4 Dateisystem und eine Swap-Partition vor. Diese Einstellungen werden übernommen und Ubuntu bietet als Auswahl die Festplatte(n), auf welchem Installiert werden soll, an. In meinem Fall, eine alte 40GB Festplatte, erscheint: 1. Festplatte auswählen: SCSI3 (0,0,0) sda 40.1 GB 2. Änderungen auf die Festplatten schreiben: ja (ext. 4 & SWAP-Partition wird erzeugt) Ubuntu_10.04.1_LTS_Webserver_101214.odt Seite 4 von 12
Teilweise verwendete Festplatte für den Webserver Wir partitionieren manuell um nicht die komplette Festplatte verwenden zu müssen. Hierbei nehmen wir eine Aufteilung in eine / (root)-partition mit ext4 Dateisystem und eine Swap-Partition vor. Diese Einstellungen werden übernommen und Ubuntu bietet als Auswahl die Festplatte(n), auf welchem Installiert werden soll, an. In meinem Fall, eine neue 250GB Festplatte, erscheint: SCSI 1 (0,0,0) sda 4 1. Typ der neuen Partition: primär 2. Jetzt die Partitionsgröße angeben: 40 GB 3. Neue Partition an Anfang oder Ende des verfügbaren Speichers Anfang 4. Partitionseinstellungen (Zusammenfassung) 5. Benutzen als Ext4 journaling file system ja 6. Einsprungpunkt (mount point): / 7. Mount-Optionen: defaults 8. Name: keiner 9. Reservierte Blöcke: 5% 10. Typische Nutzung: standard 11. Boot-Flag: aus Anschließend das Anlegen der Partition beenden. Jetzt ist die erste primäre Partition mit 40 GB angelegt. Im zweiten Schritt wird noch eine SWAP-Partition (Auslagerungsdatei) angelegt. 1. Jetzt auswählen: pri/log 210,1 GB Freier Speicher 2. Eine neue Partition erstellen 4,0 GB 3. Typ der neuen Partition: logisch 4. Position der neuen Partition: Anfang 5. Benutzen als: Auslagerungsspeicher (SWAP) Anlegen der Partition beenden Ubuntu_10.04.1_LTS_Webserver_101214.odt Seite 5 von 12
Fortsetzen der Installation nach der Partitionierung 1. Benutzer & Passwörter einrichten (Vollständiger Name aus Groß- und Kleinbuchstaben) 2. Konto-Benutzernamen (Erstbenutzer hat SuperUser-Rechte): benutzer (nur Kleinbuchstaben erlaubt!) 3. 2x Passwort bestätigen: 4. Persönlichen Ordner verschlüsseln?: nein 5. HTTP-Proxy für Internetverbindung nötig?: nein (hier leer lassen!) 6. Regelmäßiges Einspielen von Aktualisierungen Sicherheitsaktualisierungen automatisch installieren 7. Software auswählen und installieren: Lamp Server LinuxApacheMySQLPHP-Server Open SSH verschlüsselter Telnet mit Putty weiter 8. 2x Passwort für MySQL-root eingeben:!ganz-gehaim! 9. Grub-Bootloader in den Master Boot Record? ja 10. Anschließend die Installations-CD aus dem Laufwerk entfernen und den Server neu starten. Da unser Ubuntu Linux das einzige Betriebssystem auf dem Rechner ist, so kann der Grub-Bootloader in den Master Boot Record geschrieben werden. Nach dem ersten Neustart Bei der Installation haben wir einen Benutzer (benutzer) mit Passwort angelegt. Dieser Benutzer kann mit dem Befehl sudo sich zum SuperUser mit root-rechten machen. Das gelingt jedoch nur mit dem ersten, bei der Installation angegebenen Benutzer. Weitere, später hinzugefügte Benutzer, bekommen keine root-rechte, selbst wenn diese den Befehl sudo mit Ihrem jeweiligem Kennwort verwenden. Wenn Sicherheit im Vordergrund steht, dann sollte kein root-benutzer eingerichtet werden. Möchte man jedoch umfangreich Änderungen in den verschiedenen Konfigurationsdateien vornehmen, so ist es einfacher mit root zu arbeiten, als vor jedem Befehl sudo voran zu stellen. Benutzer root einrichten User benutzer (Kleinschreibung beachten!) gibt folgende Befehl ein: sudo passwd root Wird nach dem Unix-Passwort gefragt, so muss nun das Passwort 2x für den Root-Benutzer eingegeben werden! Allgemeine Unix-Befehle 1. root-kennwort vergeben sudo passwd root 2. Neuen Benutzer anlegen sudo adduser [benutzer] 3. Benutzer löschen sudo deluser [benutzer] 4. Passwort [für benutzer] sudo passwd [benutzer] 5. Server herunterfahren. (als root oder mit sudo vorneweg) sudo init 0 6. Server neu starten. (als root oder mit sudo vorneweg) sudo init 6 Ubuntu_10.04.1_LTS_Webserver_101214.odt Seite 6 von 12
7. Verzeichniss/Ordner kopieren mit allen enthaltenen Dateien cp -r directory1 directory2 directory1 ist der aktuelle komplette Pfad incl. dem zu kopierendem Directory. directory2 ist der komplette Pfad wo alles hin soll. Netzwerkkarten Einstellungen Netzwerkkarte statisch einstellen. Mit ifconfig kann die bisherige Netzwerkkonfiguration angesehen werden. Hier kann auch erkannt werden, wie die einzustellende Schnittstelle benannt ist, z.b. eth0, eth1 oder eth2. Danach mit dem vi die Datei interfaces mit vi /etc/network/interfaces bearbeiten. Netzwerkinterface stoppen und starten mit ifdown eth 0; ifstart eth 0; ifup eth 0 Handbuch für interfaces man interfaces Grundbedienung Editor vi Konfigurationsdateien können z.b. mit dem vi-editor bearbeitet werden. Es gibt bei Linux noch eine ganze Reihe anderer Editoren, jedoch ist der Befehlssatz unterschiedlich. Es können neue Einträge hinzufügt werden, wenn der Cursor in der gewünschten Zeile ist und die Taste i (für insert, einfügen) gedrückt hat. Einen alter Eintrag kann gelöscht werden, indem man den Cursor unterhalb des zu löschenden Eintrags platziert und anschließend die Taste x drückt.ist die Eingabe in dieser Zeile erledigt und man möchte mit den Pfeiltasten den Cursor auf eine andere Position als in der gleichen Zeile bringen, so ist vorher die ESC-Taste zu drücken. Allgemein gilt; Die Eingabe wird mit ESC verlassen und mit :wq gespeichert. Soll der Editor vi ohne Speicherung verlassen werden, so ist :q! einzugeben. Mit dd kann die aktuelle Zeile gelöscht werden. Mit Ndd können die nächsten N Zeilen gelöscht werden. Ubuntu-Server manuell updaten / upgraden alle verfügbaren Updates installieren apt-get update alle verfügbaren Upgrades installieren apt-get upgrade Installationspakete suchen, z.b. Network apt-cache search Network installiert das angegebene Paket apt-get install Paket entfernt das angegebene Paket apt-get remove Paket Verschiedene Programme / Module nachinstallieren Nachinstallation des Apache 2 Webservers apt-get install apache2 Neustart des Apache2 Webservers /etc/init.d/apache2 restart Dokumentenverzeichnis des Apache2 Webservers /var/www (ab hier eigene Verzeichnisse) PHP5 installieren apt-get install php5 NTP-Zeitserverunterstützung apt-get install ntp DynDNS-Unterstützung nachinstallieren apt-get install ddclient FTP-Server installieren apt-get install vsftpd Ubuntu_10.04.1_LTS_Webserver_101214.odt Seite 7 von 12
PHP MyAdmin installieren apt-get install phpmyadmin (Konfigurieren von phpmyadmin: Auswählen für Webserver apache2) Unzip installieren apt-get-install unzip open ssh nachinstallieren apt-get install openssh-server Webalizer nachinstallieren apt-get install webalizer Verschiedene Programme / Module entfernen Dies wird mit dem Befehl eingeleitet. apt-get remove /paket Samba optional installieren (Einbinden Freigegebener Verzeichnisse, z.b. USB-Stick an Fritz!Box) Samba nachinstallieren apt-get install samba smbclient SMB-Filesystem nachinstallieren (für Windowsfreigabe) apt-get install smbfs Die smb.conf sichern! cp /etc/samba/smb.conf /etc/samba/smb.conf.original Konfigurieren der Samba Konfigurationsdatei sudo vi /etc/samba/smb.conf Handbuch aufrufen über man smb.conf Samba neu starten /etc/init.d/samba restart Samba Passwort für Netzzugriff vergeben mit smbpasswd smbpasswd benutzer Samba Benutzer sperren smbpasswd -d benutzer Samba Benutzer wieder freischalten smbpasswd -e benutzer Samba Konfigurationsdatei smb.conf bearbeiten Folgende Änderungen sollten mit Hilfe des Editors vi an der smb.conf vorgenommen werden. workgroup = eigene_arbeitsgruppe security = user encrypt Passords = true unix password sync = yes pam password change = yes Weitere Änderungen bzw. Einstellungen habe ich nicht vorgenommen. Softlink für Benutzer auf www-verzeichnis einrichten Um per FTP, z.b. mit FileZilla, Daten in das Webverzeichnis direkt schreiben zu können, muss ein Symbolischer- (Soft-)link erstellt werden. sudo ln, -s /var/www /home/benutzer Um vollen Zugriff darauf zu bekommen, müssen noch folgende Befehle angewandt werden: sudo chmod -R 0775 /var sudo chgrp -R www-data /var/www Ubuntu_10.04.1_LTS_Webserver_101214.odt Seite 8 von 12
Verzeichnis(se) für Website(s) unter /var/www anlegen In das Verzeichnis des Apache Webservers wechseln Verzeichnis(se) für die Website-Dateien erstellen cd /var/www sudo mkdir meine-site Jetzt nocheinmal folgende Befehle eingeben, um vollen Zugriff zu bekommen: sudo chmod -R 0775 /var sudo chgrp -R www-data /var/www Somit sind die Verzeichnisse angelegt und können nun mit Dateien gefüllt werden. Dies kann beispielsweise mit Filezilla erfolgen. vsftpd konfigurieren Es muss die Konfigurationsdatei unter /etc/vsftpd.conf angepasst werden. In der Basiskonfiguration dürfen sich lokale Benutzer per ftp anmelden. Es ist in dieser Version der anonyme Zugang gesperrt. Ein allgemeines FTP-Verzeichniss muss extra erstellt werden mkdir /home/ftp vsftpd.conf bearbeiten mit sudo vi /etc/vsftpd.conf Allgemeines Schreibrecht zulassen mit write_enable=yes Anonymes Schreiben sperren anon_enable=no Anonymen Benutzern Verzeichnis erstellen lassen anon_mkdir_write_enable=yes Lokale Benutzer zulassen (auskommentieren) local_enable=yes Lokale Benutzer auf ihr /home-verzeichnis beschränken chroot_local_user=yes Anschließend muß der ftp Dienst neu gestartet werden. Webalizer einrichten /etc/init.d/vsftpd restartcd In der Apache Grundkonfiguration müssen die Schlüsselwörter mit AllowOverride None auf AllowOverwrite All gesetzt werden. Zuerst wird die Konfigurationsdatei default im Verzeichnis /etc/apache2/sites-available/ gesichert mit default default.original anschließend mit dem vi-editor bearbeiten. cp vi /etc/apache2/sites-available/default Alle Einträge (4 Stück) AllowOverride None auf AllowOverride All ändern. Die Datei sollte so aussehen. Ubuntu_10.04.1_LTS_Webserver_101214.odt Seite 9 von 12
Ubuntu_10.04.1_LTS_Webserver_101214.odt Seite 10 von 12
Es muss die Webalizer-Konfiguration angepasst werden, da das flasche Verzeichnis ausgelesen wird. Die Änderungen werden mit dem Editor vi durchgeführt vi /etc/webalizer.conf Der Pfad der Log-Datei muss angepasst werden zu: /var/log/apache2/access.log Ein erster Test kann gestartet werden mit: webalizer Der Webalizer soll jedoch nicht nur auf manuellem Befehl hin, sondern Zeitgesteuert gestartet werden. Hierzu muss ein Cronjob eingerichtet werden. crontab -e Wird man nach einem Editor gefragt, kann man ruhig den vorgeschlagenen Editor auswählen. Es wird für den Benutzer root eine neue Crontab-Tabelle eingerichtet. Nun folgende Zeiile in die Crontab-Tabelle einfügen: 0 * * * * webalizer Speichern der Änderung mit STRG + O, beenden mit STRG + X Passwortabfrage für Webalizer-Anzeige Mit dem Hilfsprogramm htpasswd wird eine.htusers-datei mit verschlüsseltem Passwort erstellt. Hierzu ist es sinnvoll in das gewünschte Verzeichnis zu wechseln. In diesem Fall liegt die.htusers in /etc/apache2/ In das Verzeichnis wechseln /etc/apache2/ Passwort mit folgendem Befehl für den Benutzer benutzer erzeugen.htpasswd -c.htusers benutzer Jetzt wird in das webalizer-verzeichnis gewechselt mit /var/www/webalizer und anschließend mit dem Editor vi eine neue.htaccess-datei erzeugt vi.htaccess Folgende Einträge sind in die.htaccess ein zu tragen: AuthType Basic AuthName Webalizer fuer ubuntu-1004 AuthUserFile /etc/apache2/.htusers Require user benutzer Anschließend den Apache-Webserver oder den gesamten Server neu starten. Nach einer Datei im Linux-System suchen Wenn der Speicherplatz einer Datei unbekannt ist, kann man mit dem find-befehl nach dieser Datei suchen: find / -name.htusers In diesem Beispiel wird der Speicherort der Datei.htusers ab dem root-verzeichnis gesucht. Ubuntu_10.04.1_LTS_Webserver_101214.odt Seite 11 von 12
Schöne Sachen, welche man für den Webserver nicht braucht USB-Stick an Fritz!Box einbinden (mounten, Voraussetzung Samba-Client) Ein vorhandener USB-Stick kann an der Fritz!Box per FTP oder SMB als Datenablage freigegeben werden. Hierzu ist die Anleitung der Fritz!Box zu beachten. Um den freigegebenen Speicherplatz auf dem Server verwenden zu können, muss dieser eingebunden (gemountet) werden. Dies wird per Editor in der fstab Datei vorgenommen. Zunächst sollte man jedoch ermitteln, wie sich der USB-Stick an der Fritz!Box meldet, denn davon hängt der Freigabename und die Pfadangabe ab. In meinem Fall zeigte sich der Stick im Browser als DTEliteHS2-0-0-1. Das mounten des USB-Sicks erfolgt mit folgendem Eintrag in der fstab: vi /etc/fstab Als untersten Eintrag wird eingefügt: //192.168.65.1/DTEliteHS2-0-0-1/ /media/stick_on_fritz cifs gues,uid=1000,iocharset=utf8,codepage=unicode 0 0 Wichtig ist, dass eine leere Zeile am Ende der Datei vorhanden ist! Nach einem Neustart ist unter /media/stick_on_fritz der freigegebene Speicherplatz verfügbar. (Wichtig, in diesem Fall keine Kennwortabfrage auf der Fritz!Box einstellen!) Kontrolle, ob das Laufwerk richtig gemountet wurde mit: Skrip- (Batch-) Datei erstellen mount Wie unter Windows kann man unter Linux auch Batchdateien erstellen. Diese benötigen jedoch keine spzielle Dateiendung wie *.bat. Es kann jeder Name außer Skript verwendet werden. Die Skriptdatei wird z.b. mit dem Editor vi geschrieben. Kommentare werden in einer Skripdatei mit dem Nummern-Zeichen # eingeleitet. Als erster Befehl in einem Skript muss das Shebang Zeichen #! stehen. Am Ende muss wie bei der fstab-datei eine Leerzeile stehen. Folgende Befehle sind in die Skriptdatei einzugeben. Eigene Skriptdateien können unter dem Pfad /usr/local/bin abgelegt werden. Inhalt der Skriptdatei: Zum Schluss muss die Skriptdatei noch ausführbar gemacht werden mit chmod u+x./skript_kalender_sichern_101120.sh Das Skript wird vom root-verzeichnis gestartet mit: skript_kalender_sichern_101120 Batchdatei Zeitgesteuert, alle 30 Minuten sichern Als root im root-verzeichnis eingeben: crontab -e Am Ende folgenden Eintrag hinzufügen: */30 0-23 * * * /usr/local/bin/skript_kalender_sichern_101120 Ubuntu_10.04.1_LTS_Webserver_101214.odt Seite 12 von 12