Sie sind auf Seite 1von 41

Inhaltsverzeichnis

Inhaltsverzeichnis

1 Einleitung 4
1.1 Warnung vorweg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Konventionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5 Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6 Lizenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.7 Changelog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 Installation 8
2.1 Vorbereitungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Bootreihenfolge ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3 Grundeinrichtung 19
3.1 Grundbefehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Netzwerk einrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3 Update des Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4 Fernwartung - SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Einfacher Login mit Keys . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5 Die richtige Zeit vom Zeitserver . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.6 Benutzerverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.7 Die Datei /etc/hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4 Dienste 25
4.1 Fileserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.1 Samba - Dateifreigabe im Windows-Netz . . . . . . . . . . . . . . . . . . 25
Samba - Benutzerverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . 25
Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2
Inhaltsverzeichnis

4.1.2 NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.1.3 FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.1.4 WebDAV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2 LAMP - Linux Apache MySQL PHP . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2.1 Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
SSL-Verschlüsselung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2.2 PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2.3 MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3 DNS- und DHCP-Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.4 Openfire - Jabber-Instant-Messaging-Server . . . . . . . . . . . . . . . . . . . . . 38

3
1 Einleitung

1 Einleitung

Server sind aus der heutigen IT-Landschaft kaum noch wegzudenken. Fast jede Firma, die für ihr
Tagesgeschäft Computer benutzt, besitzt einen oder gar mehrere Server. Die Vorteile liegen auf der
Hand: Alle Daten sind zentral verfügbar und liegen nicht mehr verstreut im Netzwerk herum. Das
erleichtert auch die Verwaltung und Sicherung der Datenbestände. Diese Vorteile erkennen auch
immer mehr Kleinunternehmer und neuerdings auch die Heimanwender, deren Computerlandschaft
im Eigenheim, teilweise schon der von kleinen Betrieben, oder Büros gleicht. Nun kann oder will
sich aber nicht gleich jeder einen High-End-Stromverbraucher, wie man sie Reihenweise von der
Stange kaufen kann, in den Keller stellen und die Bereitschaft, für Redmonder Serverprodukte und
zugehörige Clientlizenzen, einen Haufen Geld zu investieren, sinkt auch von Tag zu Tag. Alterna-
tiven gibt es mehr als genug, und auf eine davon konzentriert sich dieser Guide: Den Linux-Server.
Als Distribution wird die Ubuntu Server Edition in der aktuellen LTS (Long-Term-Support) Version
8.04 verwendet.

1.1 Warnung vorweg

Bevor es losgeht noch eine Warnung: Ein Server ist kein Spielzeug, gerade dann nicht, wenn er
seine Dienste direkt am Internet verrichtet. Ein schlecht konfigurierter oder nicht regelmäßig mit
Updates versorgter Rechner, kann schnell zum Eigentor werden, wenn jemand anderes die Kontrolle
darüber erlangt. Bevor man einen Server von außen zugänglich macht, sollte man sich intensiv mit
dem System beschäftigen, viel Lesen und wissen was zu tun ist, sollte trotz aller Vorsicht mal
etwas passieren. Weiterhin sollte euer Gehirn immer im Hintergrund mitlaufen, denn niemand ist
Fehlerlos, so auch ich.

4
1 Einleitung

1.2 Voraussetzungen

Im Prinzip sind die Voraussetzungen für einen Server auf dem Linux läuft nicht sehr hoch, zu-
mindest im Vergleich zu Redmonder Qualitätsprodukten. Natürlich hängt das Ganze auch mit der
Beschaffenheit des Netzwerkes zusammen, in dem der Server seine Dienste anbieten soll.
Natürlich steht es jedem frei seine Hardware so zusammenzustellen wie es ihm beliebt, deshalb hier
nur ein paar kleine Anhaltspunkte:

RAM Prozessor Festplatte


Minimal 128MB 200Mhz 1GB
Empfohlen 256MB 500Mhz >10GB

Tabelle 1.1: Voraussetzungen Ubuntu Server Edition

Des weiteren benötigen wir Monitor und Tastatur (nur zur Installation) sowie ein CD-Laufwerk
(bei Installation von CD). Mindestens eine Netzwerkkarte sollte ebenfalls verbaut sein, denn sonst
macht so ein Server bekanntlich wenig Sinn.

Es sollte dabei jedem klar sein, das diese Empfehlung für den Heimgebrauch oder für Büros /
Betriebe mit höchstens 5 Mitarbeitern gilt. Und das auch nur wenn nicht „Dauerbetrieb“ auf dem
Server herrscht. Noch einmal sei gesagt, dass die optimale Konfiguration des Serversystems von
den jeweiligen Anforderungen des Netzes abhängt.

1.3 Features

Aufgaben, die der Server nachher im Netz übernehmen wird:

• Fileserver für verschiedenste Clients (SMB, (FTP <- not yet))


• Print-Server (mit Unterstützung für Druck in PDF-Dateien <- not yet)
• Webserver
• Mailserver (not yet)

Es wird keine grafische Oberfläche auf dem Server laufen (also kein Gnome/KDE/XFCE), er wird
lediglich per Konsole im Textmodus administrierbar sein. Das spart erstens enorm Ressourcen und

5
1 Einleitung

zweitens geht das meiste auf der Konsole wesentlich schneller als man es über eine GUI könnte,
vorrausgesetzt man weiß wie.

1.4 Konventionen

In diesem Dokument wird relativ häufig auf der Kommandozeile des Linux-Systems gearbeitet. Die
einzugebenden Textzeilen sind durch eine graue Box gekennzeichnet:
sudo apt-get update
Falls ein Befehl zu lang ist für eine Zeile wird dieser in der nächsten Zeile fortgeführt. Gekenn-
zeichnet wird das durch einen Pfeil:
sudo openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem ⇒
-keyout /etc/apache2/ssl/apache.pem
Des öfteren werden dem Leser Internet-Adressen der Form http://url.zeroathome.de/xyz begegnen.
Dies ist leider nötig, da manche URLs einfach zu lang sind um sie in einem PDF auf einer Zeile
auszugeben. Ich versichere hiermit, dass sich hinter diesen Kurz-URLs keinerlei von mir bereitge-
stellter Schadcode befindet. Es handelt sich lediglich um Seiten, die zur weiteren Erklärung der in
den Tutorials verwendeten Begrifflichkeiten oder Tools dienen.

1.5 Disclaimer

Wie oben bereits erwähnt ist ein Server kein Spielzeug. Durch unsachgemäße Handhabung kann
unter Umständen enormer Schaden entstehen. Für etwaige entstehende Schäden, im Zusammen-
hang eines mit Hilfe dieses Tutorials entstandenen Servers, kann ich keine Haftung übernehmen.
Ich bitte dies zu beachten.

1.6 Lizenz

Dieses Werk ist unter einem Creative Commons Namensnennung-Keine kommerzielle Nutzung-
Weitergabe unter gleichen Bedingungen 2.0 Deutschland Lizenzvertrag lizenziert. Um die Lizenz
anzusehen, gehen Sie bitte zu http://creativecommons.org/licenses/by-nc-sa/2.0/de/ oder schicken

6
1 Einleitung

Sie einen Brief an Creative Commons, 171 Second Street, Suite 300, San Francisco, California
94105, USA.

Informationen über weitere Erlaubnisse bitte per Mail (zero@zeroathome.de) oder Jabber (zeroa-
thome@jabber.ccc.de) erfragen.

1.7 Changelog

0.7beta new:
Key-based SSH-Login, NTP, DNS, DHCP, /etc/hosts, Disclaimer, Openfire Jabber-Server
added:
Konventionen: Kurz-URLS
0.6beta NFS, WebDAV hinzugefuegt
0.4beta Initial Internal Release

Tabelle 1.2: Changelog

7
2 Installation

2 Installation

2.1 Vorbereitungen

Zur Installation benutzen wir der Einfachheit halber die Installations-CD, deren Image es unter fol-
gender Adresse herunterzuladen gilt:
http://de.archive.ubuntu.com/ubuntu-releases/8.04/
Das heruntergeladene Server-Image (nicht Desktop!) wird dann mit einem geeigneten Brennpro-
gramm auf eine CD gebannt und dem zukünftigen Server zugeführt. Um den Server von CD starten
zu lassen ist es eventuell nötig die Bootreihenfolge umzustellen (siehe Kasten „Ändern der Boot-
reihenfolge“ Kapitel 2.2 )

2.2 Bootreihenfolge ändern

Damit der Rechner von der Installations-CD startet, muss kurz nach dem Anschalten des Rechners
ins BIOS (Basic Input Output System) gewechselt werden. Das geschieht bei den meisten Rech-
nern durch drücken der Entf, oder F2-Taste. Welche Taste gedrückt werden muss steht entweder im
ersten Monitorbild das der Rechner zeigt, oder auch im Handbuch des Mainboards. Im BIOS ange-
kommen, müssen die Einstellungen zum Starten des Rechners gesucht werden (Startup, Boot, o.ä).
Dort kann dann die Reihenfolge der Geräte bestimmt werden. Zuoberst sollte das CD-Laufwerk
stehen, danach die Festplatte. Nach der Installation kann diese Einstellung wieder Rückgängig ge-
macht werden, bzw. das sollte sie sogar, dazu mehr im Kapitel Sicherheit.

8
2 Installation

2.3 Installation

Nach dem Anschalten sollte sich der Bootscreen der CD zeigen (siehe Abb. 2.1) und zur Auswahl
einer Sprache auffordern. Hier bitte nach persönlichen Vorlieben auswählen. In diesem Guide wird
mit Deutsch als Auswahl weitergearbeitet. (Abb. 2.1)

Abbildung 2.1: Sprachauswahl

Anschließend wird die erste Option des Bootmenüs ausgewählt um die Installation zu starten. (Abb.
2.2)

Abbildung 2.2: Bootauswahl

Falls im Netzwerk bereits ein DHCP-Server läuft (z.B. ein Router oder ähnliches), sollte Abbildung
2.3 nicht erscheinen, dann kann sofort mit Abbildung 2.9 fortgefahren werden. Falls kein DHCP-

9
2 Installation

Server vorhanden ist, muss die IP-Adresse und andere Daten von Hand eingegeben werden (siehe
Abb. 2.4).

Abbildung 2.3: Wenn kein DHCP-Server vorhanden ist

Falls ein DHCP-Server im Netz steht, aber die Adressvergabe beim ersten Anlauf nicht funktioniert
hat, kann hier nochmals versucht werden eine Adresse zu bekommen, oder man wählt Netzwerk
manuell einrichten. (Abb. 2.4)

Abbildung 2.4: Manuelle Netzwerkkonfiguration

Die IP-Adresse sollte so gewählt werden, dass sie erstens zu eurem bereits vorhandenen Netzwerk
passt und das sie zweitens nicht die selbe ist, wie die eines bereits im Netzwerk vorhandenen Rech-
ners ist. Außerdem sollte die Adresse aus dem Bereich der privaten IP-Adressen stammen. (siehe
http://de.wikipedia.org/wiki/Private_IP-Adresse) (Abb. 2.5)

10
2 Installation

Abbildung 2.5: IP-Adresse

Die Netzmaske ist in der Regel 255.255.255.0. Für mehr Informationen siehe http://de.wikipedia.
org/wiki/Netzmaske . (Abb. 2.6)

Abbildung 2.6: Netmask

Die Adresse des Gateways entspricht in den meisten kleinen Netzwerken der Adresse des Routers.
Diese hat meist die Endzahl 1 oder auch 254. (Abb. 2.7)

Oft entspricht die Adresse des DNS-Servers der des Gateways aus dem vorhergehenden Schritt.
(Abb. 2.8)

Der Name des Servers ist frei wählbar, sollte aber auf jeden Fall eindeutig sein, also nicht mit
einem anderen Namen im Netz kollidieren. Eventuell sollte der Name die Funktion des Rechners
wiederspiegeln, das macht aber meist nur in größeren Netzen mit vielen Servern Sinn. (Abb. 2.9)

11
2 Installation

Abbildung 2.7: Gateway

Abbildung 2.8: DNS-Server

Der Domain-Name sollte, falls der Server keine feste IP im Internet besitzt, auf keinen Fall eine
Endung wie .de oder .com haben, da sonst die Gefahr besteht, mit bereits existenten Domains im
WWW zu kollidieren. Deshalb werden hier Endungen wie .home oder .lan empfohlen, da diese
nicht als Top-Level-Domains im WWW existieren. (Abb. 2.10)

An diesem Schritt kann es unter Umständen kompliziert werden. Hier möchte ich auf das Tutorial
von Ubuntuusers.de verweisen: http://url.zeroathome.de/partitionierung/ . (Abb. 2.11)

Nachdem die Partitionierung abgeschlossen ist müssen die Änderungen auf die Festplatte geschrie-
ben werden. Dazu muss hier Ja ausgewählt werden. (Abb. 2.12)

12
2 Installation

Abbildung 2.9: Name des Servers

Abbildung 2.10: Name der Domain

Abbildung 2.11: Art der Partitionierung

13
2 Installation

Abbildung 2.12: Änderungen an den Partitionen speichern

Danach startet die Installation der Dateien auf der Festplatte des Servers. (Abb. 2.13 und 2.14)

Abbildung 2.13: Installation des Grundsystems

Nun muss ein neuer Benutzer eingerichtet werden. Dieser ist dazu befugt Änderungen an der Konfi-
guration des Systems vorzunehmen. Zuerst muss der volle Name des Benutzers eingegeben werden.
(Abb. 2.15)

Im zweiten Schritt wird der Name festgelegt mit dem der Benutzer sich anmelden kann. Dieser ist
bis auf einige Ausnahmen frei wählbar (root oder admin sind zum Beispiel vom System bereits
reserviert. (Abb. 2.16)

Da der Benutzer einige Befugnisse auf dem System hat, sollte ein sicheres Passwort gewählt wer-
den. Real existierende Worte sollten vermieden werden. Ideal wäre eine Kombination von Groß-

14
2 Installation

Abbildung 2.14: Installation des Grundsystems

Abbildung 2.15: Name des Benutzers

Abbildung 2.16: Anmeldename

15
2 Installation

und Kleinbuchstaben, Zahlen und Sonderzeichen mit einer Mindestlänge von acht bis zehn Zei-
chen. (Abb. 2.17)

Abbildung 2.17: Passworteingabe

Falls im Netzwerk ein Proxy verwendet wird um die Internet-Verbindung bereitzustellen muss die-
ser hier eingetragen werden. (Abb. 2.18)

Abbildung 2.18: Proxy-Einstellungen angeben

Diesen Schritt werden wir überspringen und die einzelnen Komponenten später von Hand ein-
richten. Das hat zum einen einen größeren Lerneffekt, zum anderen verliert man bei manueller
Installation der Pakete nicht die Übersicht. (Abb. 2.19)

Zu guter Letzt muss noch die Zeitzone in der der Server sich befindet. In der Regel kann hier Ja
ausgewählt werden. Diese Einstellung lässt sich aber auch später noch ändern. (Abb. 2.20)

16
2 Installation

Abbildung 2.19: Software Auswahl

Abbildung 2.20: Zeitzone einstellen

Damit ist die erste Hürde der Installation genommen und der Server kann zum ersten Mal neu
gestartet werden. (Abb. 2.21)

17
2 Installation

Abbildung 2.21: Installation abgeschlossen

18
3 Grundeinrichtung

3 Grundeinrichtung

3.1 Grundbefehle

Wer noch nie Linux auf der Kommandozeile bedient hat, sollte sich zunächst einmal mit den Grund-
befehlen auseinandersetzen. Im ubuntuusers.de - Wiki findet sich eine kleine Übersicht, die man
sich zuerst einmal zu Gemüte führen sollte.

3.2 Netzwerk einrichten

Nach dem Einloggen ins System, mit dem während der Installation festgelegten Benutzernamen
und dem zugehörigen Passwort, wird zuerst überprüft ob das Netzwerk richtig eingerichtet ist. Der
Befehl ifconfig bringt eine Übersicht über die vorhandenen Netzwerkschnittstellen und die ihnen
zugewiesenen Adressen.

eth0 Link encap:Ethernet Hardware Adresse 00:00:00:00:00:00


inet Adresse:192.168.0.254 Bcast:192.168.0.255 Maske:255.255.255.0
inet6-Adresse: fe80::203:dff:fe04:9872/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:565 errors:0 dropped:0 overruns:0 frame:0
TX packets:408 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:671858 (656.1 KB) TX bytes:36963 (36.0 KB)
Interrupt:16 Basisadresse:0x2000

lo Link encap:Lokale Schleife


inet Adresse:127.0.0.1 Maske:255.0.0.0
inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
UP LOOPBACK RUNNING MTU:16436 Metrik:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0

19
3 Grundeinrichtung

Kollisionen:0 Sendewarteschlangenlänge:0
RX bytes:600 (600.0 B) TX bytes:600 (600.0 B)

eth0 bezeichnet hier die erste Netzwerkkarte. Hier besitzt die Schnittstelle die Adresse 192.168.0.254.
Falls diese geändert werden soll, ist folgendes Vorgehen nötig:

Zunächst brauchen wir einen Editor für die Kommandozeile. Wel-


chen man dafür nimmt und wie man ihn benutzt, klärt der Kasten Wahl eines Editors
„Wahl eines Editors“ (Seite 20). Es bietet sich an entweder Vim
oder nano zu verwenden. Nano
Um jetzt die Netzwerkkonfiguration zu ändern muss, mit einem die- ist für Anfänger sicherlich ein-
ser Editoren, die Datei (/etc/network/interfaces) bearbeitet wer- facher, Vim dafür der wesentlich
den. Im Ausgangszustand, also bei Vergabe der Adresse per DHCP mächtigere Editor. Um jetzt eine
sieht diese so aus: Konfigurationsdatei zu öffnen
reicht es den Namen des Editors
# The loopback network interface gefolgt von der zu editierenden
auto lo
Datei einzutippen und mit Enter zu
iface lo inet loopback
bestätigen.
# The primary network interface Also entweder
auto eth0
iface eth0 inet dhcp vim /etc/network/interfaces
für Vim,
Die Zeile auto eth0 sorgt dafür das die Schnittstelle automatisch oder nano /etc/network/interfaces
gestartet wird. Das dhcp in der letzten Zeile sorgt für den automa- für Nano.
tischen Empfang einer Netzwerkadresse von einem anderen Server
oder einem Router.
Um die Adresse statisch zu vergeben muss der Eintrag für eth0 so lauten:

auto eth0
iface eth0 inet static
address 192.168.0.254
netmask 255.255.255.0
gateway 192.168.0.1

Das dhcp wird schlicht durch ein static ersetzt und in den Zeilen darunter die Adresse zugeteilt
(address 192.168.0.254, die Netzmaske netmask 255.255.255.0 und das Gateway, also die Adresse
des Routers im Netzwerk gateway 192.168.0.1. Die Angaben sollten natürlich an den jeweiligen
Standort angepasst werden. Nachdem die Einträge gemacht sind, kann die Datei gespeichert und
geschlossen werden.
Um auf das Internet zuzugreifen fehlt noch der Eintrag für einen DNS-Server. Dieser wird in der

20
3 Grundeinrichtung

Datei /etc/resolv.conf eingetragen. Dazu reicht eine Zeile mit


nameserver 192.168.0.1
in der Regel ist das ebenfalls die Adresse des Routers die oben schon als gateway angegeben wurde.
Falls Änderungen gemacht wurden muss das Netzwerk noch einmal neu gestartet werden:
sudo /etc/init.d/networking restart
Zum Abschluss der Konfiguration noch ein kleiner Test, ob der Zugriff zum Internet funktioniert.
ping www.zeroathome.de
Die Ausgabe sollte in etwa so aussehen:

PING www.zeroathome.de (85.13.138.19) 56(84) bytes of data.


64 bytes from dd17316.kasserver.com (85.13.138.19): icmp_seq=1 ttl=56 time=382 ms
64 bytes from dd17316.kasserver.com (85.13.138.19): icmp_seq=2 ttl=56 time=263 ms
64 bytes from dd17316.kasserver.com (85.13.138.19): icmp_seq=3 ttl=56 time=433 ms

und kann nach einigen Paketen mit Strg-C abgebrochen werden.

3.3 Update des Systems

Nachdem die Verbindung ins Netz steht, bringen wir zunächst mal das System auf den neuesten
Stand. Dazu sind die folgenden beiden Befehle zuständig:

sudo apt-get update


sudo apt-get upgrade
sudo apt-get dist-upgrade

Der erste Befehl sorgt dafür das die aktuelle Paketdatenbank von den Ubuntu-Servern geladen wird.
Der zweite spielt die aktuellsten Versionen der installierten Pakete ins System ein. Der dritte sorgt
dafür das auch zurückgehaltene Pakete ins System gelangen, wie zum Beispiel Kernel-Updates (Die
zurückgehalten werden, da nach deren Installation ein Neustart fällig wird). Die beiden ersten Be-
fehle sollten regelmäßig genutzt werden, um das System immer auf dem aktuellen Stand zu halten
und somit eventuellen Sicherheitslücken einen Riegel vorzuschieben. Den letzten benutzt man wie
gesagt nur, wenn man sieht, dass Updates zurückgehalten wurden.

21
3 Grundeinrichtung

3.4 Fernwartung - SSH

Da ein Server in der Regel nicht über Monitor, Tastatur und Maus verfügt, sollte er zuerst eine Mög-
lichkeit zur Fernwartung bekommen. Die einfachste und gleichzeitig eine der sichersten Methoden
zur Fernwartung ist der SSH-Server. Durch die verschlüsselte SSH-Verbindung bleiben alle Einga-
ben, wie Passwörter und dergleichen von außen unsichtbar. Bei der Installation des Servers wird
außerdem ein einzigartiger Schlüssel erstellt, mit dem sich der Server beim Client authentifiziert.
So kann ausgeschlossen werden, dass jemand vorspielt unser Server zu sein und sich auf diesem
Weg unser Passwort und anschließend unseren Server an zueignen. Mehr zum SSH-Prinzip gibt es
hier: http://de.wikipedia.org/wiki/Ssh.

Um den Server zu installieren reicht ein

sudo apt-get install openssh-server

Die Installation dauert je nach System ein wenig, da die Schlüssel erstellt werden müssen. Anschlie-
ßend kann von einem anderen Rechner im Netzwerk per SSH-Client auf das System zugegriffen
werden. Unter Linux geht das auf der Konsole mit

ssh bentuzer@192.168.0.254 - wobei die Adresse mit der des Servers auszutauschen ist. Unter
Windows sei das Programm Putty zum herstellen einer SSH-Verbindung empfohlen .
Jetzt kann man den Server ohne Tastatur und Monitor in eine Ecke verbannen, denn ab sofort kann
er bequem vom Desktop-Rechner aus bedient werden.

Einfacher Login mit Keys

Normalerweise muss man jedes Mal wenn man per SSH auf den Server verbindet sein Passwort
eingeben. Schön und Gut, aber manchmal auch ein wenig nervig, gerade wenn man auf besonders
lange Passwörter steht. Zur Abhilfe gibt es die Möglichkeit des Schlüssel-basierten Einloggens.
Dazu wird auf dem Client-Rechner ein Schlüssel generiert und dem Server mitgeteilt, dass er den
Client mit diesem Schlüssel ohne Passwort-Eingabe passieren lässt.
Schlüssel erstellen:
ssh-keygen -t dsa

22
3 Grundeinrichtung

Dieser wird automatisch in der Datei /.ssh/id_dsa.pub abgelegt und mit


ssh-copy-id -i /.ssh/id_dsa.pub benutzer@server
auf den Server transferiert. Danach sollte man beim Verbinden nicht mehr nach dem Passwort ge-
fragt werden, sondern direkt zum Prompt gelangen.
Dabei sollte man sich allerdings im klaren sein, dass nun jeder der das Keyfile unter /.ssh besitzt
sich ohne Passwort auf dem Server einloggen kann.

3.5 Die richtige Zeit vom Zeitserver

Ein nicht zu unterschätzender Faktor auf einem Server ist die Zeit. Nicht die Zeit bis die Hardwa-
re veraltet ist, sondern die Systemzeit. Zum Beispiel beim Auswerten von Logfiles ist es hilfreich
wenn man weiß, dass die Uhr des Servers richtig geht. Um das zu gewährleisten lässt man ihn seine
Zeit mit einem der vielen Zeit-Server im Internet abgleichen.
Dazu installiert man zuerst ntp und konfiguriert diesen Dienst entsprechend:
sudo apt-get install ntp
Die Konfiguration findet sich in der Datei /etc/ntp.conf. Dort fügt man, der Ausfallsicherheit wegen,
in der Zeile server noch einen zweiten Time-Server hinzu, so dass die Zeile am Ende so aussieht:
server ntp.ubuntu.com de.pool.ntp.org
Der Server von dem ihr die Zeit letztendlich bezieht ist optional, de.pool.ntp.org ist hier als Beispiel
genannt, weitere Server finden sich unter http://www.pool.ntp.org/.
Nach der Konfigurationsänderung muss der Dienst noch einmal neu gestartet werden und gleicht
dann regelmäßig die Zeit mit den Servern im WWW ab.
sudo /etc/init.d/ntp restart

3.6 Benutzerverwaltung

Damit nicht jeder an die Daten auf dem Server herankommt, sollte man für die Personen, die Zu-
gang haben sollen, Benutzerkonten angelegt.
sudo adduser -s /dev/null benutzer
legt einen Benutzer an und verbietet diesem sich per SSH oder direkt am Rechner einzuloggen. Falls
der Benutzer Zugang zur Kommandozeile haben soll, einfach den Parameter -s /dev/null weglassen.

23
3 Grundeinrichtung

Es können einige Angaben zum Benutzer gemacht werden, auf jeden Fall sollte man aber ein si-
cheres Passwort vergeben, egal ob Shell-Zugang oder nicht. Anschließend wird der Benutzer der
Gruppe users hinzugefügt: sudo addgroup benutzer users
das erleichtert später die Freigabe von Verzeichnissen, die für alle Benutzer zugänglich sein sollen.

3.7 Die Datei /etc/hosts

In der Datei /etc/hosts können IP-Adressen Rechnernamen zugeordnet werden. Das ist in sofern
praktisch, das man sich nur einen Namen und keine acht- bis zwölf-stellige Nummer merken muss
(die zugegebenermaßen meist gleich beginnt). Dazu bearbeitet man diese Datei mit einem Textedi-
tor und fügt Zeilen im folgenden Format ein:

192.168.101.210 rechner1.home.lan rechner1


192.168.101.211 rechner2.home.lan rechner2

Also nach dem Schema <IP-Adresse> <Rechnername.Domain> <Rechnername>. Der Domain-


Name ist dabei der aus der Installation (siehe Abschnitt 2.10 auf Seite 13).
Nach dem Editieren kann mit dem Befehl host überprüft werden ob alles wunschgemäß funktio-
niert: host rechner1
sollte als Antwort rechner1 has address 192.168.101.210
Umgekehrt geht das natürlich auch: host 192.168.101.211
211.101.168.192.in-addr.arpa domain name pointer rechner2.

24
4 Dienste

4 Dienste

4.1 Fileserver

4.1.1 Samba - Dateifreigabe im Windows-Netz

Klingt erstmal wie ein äußerst spannender Thriller, ist aber in Wirklichkeit eine total harmlose Frei-
gabe von Verzeichnissen im Netzwerk. Und das so, dass auch Windows-Rechner darauf zugreifen
können.
Dafür wird der sogenannte Samba-Server installiert: sudo apt-get install samba

Samba - Benutzerverwaltung

Bevor sich ein Benutzer am Samba-Server anmelden kann muss er zuerst mit diesem bekannt ge-
macht werden. Dazu dient das folgende Kommando: sudo smbpasswd -a benutzer Anschließend
wird zur Passwortvergabe aufgefordert. Falls das Passwort des Benutzers im System irgendwann
einmal geändert werden sollte wird später in der Konfiguration des Servers vermerkt, dass die Pass-
wörter zwischen System und Samba ab geglichen werden. Der obige Schritt muss also nur einmal
erfolgen.

Konfiguration

Die Konfiguration von Samba geschieht vollständig in der Datei /etc/samba/smb.conf.Es besteht
bereits eine Beispiel-Datei, die wir aber hier nicht verwenden werden, sondern erst einmal aus dem
Weg schaffen:

25
4 Dienste

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak


Anschließend erstellt man die Datei mit einem Editor neu:
sudo nano /etc/samba/smb.conf
Die Datei ist der Übersichtlichkeit halber in Sektionen unterteilt, in der Regel gilt das eine Sektion
einer Freigabe entspricht und der Name der Sektion der Name der späteren Freigabe ist. Wenn also
die Sektion [freigabe] heißt (die eckigen Klammern umschließen den Sektionsnamen), dann würde
die Freigabe entsprechend ’freigabe’ heißen. Es gibt allerdings einige bereits festgelegte Sektions-
namen, die man nicht für seine eigenen Freigaben verwenden sollte. Dazu gehört unter anderen
auch die Sektion [global], die für die Allgemeinen Einstellungen des Server reserviert ist und mit
der die Konfigurationsdatei ’smb.conf’ in der Regel beginnt:

[global]
workgroup = ARBEITSGRUPPE
server string = Samba Server auf %h
wins support = yes
os level = 33
local master = yes
;wins server = w.x.y.z
unix password sync = yes
passwd program = /usr/bin/passwd %u

Für einfaches Filesharing ist das schon genug der Einstellung. Die Zeile ’wins support’ sollte falls
man einen Windows-Server im Netzwerk betreibt auf ’no’ gesetzt werden und die Zeilen ’os level
= 33’ und ’local master = yes’ gelöscht oder mit ’;’ auskommentiert werden. Dafür sollte die Zeile
’;wins server = w.x.y.z’ wiefolgt abgeändert werden:

wins server = IPdesWINDOWSservers

Wozu dient WINS? Ganz einfach dazu die IP-Adressen der im Netzwerk vorhandenen Rechner de-
ren NETBIOS-Namen, also den Hostnamen zuzuweisen und anderen Rechnern ein Verzeichnis zu
bieten, in der diese die Zuordnung (IP<>Hostname) nachschauen können.
Die letzten beiden Zeilen sorgen dafür, dass, wie eben angesprochen, die Benutzerpasswörter des
Systems mit denen des Samba-Servers ab geglichen werden.

Als nächstes richten wir eine einfache Freigabe ein, zu der jeder der eingerichteten Nutzer Zugriff
hat. Dazu legen wir eine neue Sektion an mit dem Namen ’public’. Zuerst erstellen wir allerdings
das Verzeichnis und setzen die Benutzerrechte so, das die Benutzer der Gruppe ’users’, darauf zu-
greifen können:

26
4 Dienste

sudo mkdir /srv/public


sudo chmod o-rwx /srv/public
sudo chgrp users /srv/public
sudo chmod g+sw /srv/public

Zeile 1 legt das Verzeichnis (das Überverzeichnis ’/srv’ ist für solche Serverdienste reserviert, also
nutzen wir das hier auch mal) an, Zeile zwei beschränkt die Lese- und Schreibrechte auf Besitzer
und Gruppe des Verzeichnisses, Zeile 3 ändert die Gruppe des Verzeichnisses auf ’users’ und Zeile
4 sorgt dafür das neu angelegte Verzeichnisse immer der Gruppe ’users’ gehören. (mehr zum The-
ma Rechte unter http://wiki.ubuntuusers.de/Rechte)

Dann wird die Freigabe in die smb.conf eingetragen:

[public]
comment = Freigabe fuer jedermann
path = /srv/public
writeable = yes
valid users = @users
force directory mode = 660
force create mode = 660

In der Zeile comment gibt man am besten eine Beschreibung des Verzeichnisses an (kann auch
weggelassen werden), in der Zeile path gibt man den Pfad zum eben angelegten Verzeichnis an.
’writeable’ sorgt dafür das das Schreiben in das Verzeichnis möglich ist. Die letzten drei Zeilen
sind für die Zugriffsrechte zuständig: ’valid users’ zeigt hier an das die Gruppe ’users’, deutlich
gemacht durch das @, Zugriff hat. Einzelne Benutzer werden ohne @ durch Komma getrennt ein-
getragen. Die anderen beiden Zeilen sorgen dafür, das neu angelegte Dateien und Verzeichnisse von
den Benutzern der Gruppe ’users’ Les- und Schreibbar sind.

Damit können wir unseren Server auch schon testen, ’smb.conf’ abspeichern und mit ’testparm -v’
prüfen ob die gemachten Konfigurationen Fehler enthalten. Das Konsolenprogramm gibt die kom-
plette Konfiguration aus und zeigt eventuelle Fehler an. Wenn die Einstellungen fehlerfrei sind,
wird der Server mit ’sudo /etc/init.d/samba restart’, neu gestartet. Danach sollte man testen ob die
Freigabe aus dem Netzwerk erreichbar ist. Dazu einfach mit einem geeigneten Client (Linux, Win-
dows, Mac) versuchen auf die Freigabe zuzugreifen. Dabei sollte der eingerichtete Benutzer und

27
4 Dienste

dessen Passwort abgefragt werden.

4.1.2 NFS

Das Gegenstück zu SMB in der UNIX-Welt ist NFS, und wer Linux- oder Mac-Clients im Netz hat
sollte auf jeden Fall NFS-Freigaben anbieten.
Installiert wird der NFS-Server mit dem Kommando:
sudo apt-get install nfs-common nfs-kernel-server portmap
Die Freigaben lassen sich in der Datei /etc/exports einrichten. Generell geschieht das durch Eintra-
gen einer Zeile nach dem Schema

<pfad> <computername> (<optionen>)

Also zum Beispiel:

/srv/public rechner1(ro,async) rechner2(rw,async) 192.168.101.44(rw,async)

Damit bekommt der Rechner mit dem Namen rechner1 Leserechte (ro) in unserem public-Verzeichnis,
rechner2 bekommt auch Schreibrechte (rw) und der Rechner mit der IP 192.168.101.44 ebenfalls.
Damit der Zugriff mit den Rechnernamen funktioniert müssen diese jeweils einer IP zugeordnet
werden, mehr dazu auf Seite 4.1.2. Um die Freigabe nicht nur auf einige Rechner zu beschränken,
kann diese auch für das gesamte Netz freigegeben werden (in diesem Fall Schreibzugriff):

/srv/public 192.168.101.0/255.255.255.0(rw,async)

Die verfügbaren Optionen, die der Freigabe zugeordnet werden können sind in Tabelle 4.1 aufge-
listet.

Damit das Exportieren auf Basis der Rechnernamen funktioniert, muss jedem Rechnernamen eine
IP-Adresse zugeordnet werden. Dies geschieht allgemein in der Datei /etc/hosts. Eine Zeile sollte
dabei so aussehen:

<ip> <rechnername> <rechnername.domain.tld>

also zum Beispiel

28
4 Dienste

Option Funktion
ro Nur Lesen
rw Lesen/Schreiben
async Asynchroner Datentransfer
insecure Ports oberhalb von 1024 benutzen. Muss bei MacOSX-
Clients zwingend gesetzt werden, da diese sich sonst nicht
mit der Freigabe verbinden kann.
no_root_squash Wenn ein Verzeichnis auf dem Server dem Benutzer root
gehört, wird dieses als Benutzer nobody eingebunden, man
hat also auf keinen Fall Schreibrechte. Um diese Sperre zu
umgehen muss diese Option gesetzt werden.
nohide Wenn unterhalb eines exportierten Verzeichnisses ei-
ne Partition eingebunden ist (z.B. Partition /dev/sdb1
unter /srv/public/music), dann muss dieses Verzeichnis
/srv/public/music zusätzlich zu /srv/public exportiert wer-
den. Normalerweise muss man dann auf dem Client bei-
de Exporte einbinden. nohide sorgt dafür, dass zwar immer
noch beide Verzeichnisse exportiert werden müssen, aber
nur das oberste Verzeichnis auf dem Client eingebunden
werden muss. Diese Funktion funktioniert nur bei Freiga-
ben für Einzelrechner, nicht für das komplette Netzwerk.

Tabelle 4.1: Optionen zum Exportieren eines Verzeichnisses per NFS

192.168.101.44 rechner4 rechner4.home.lan

wobei die letzte Angabe nicht unbedingt nötig ist, aber falls sie eingetragen wird dem Domain-
Namen aus der Installation des Servers (siehe Abschnitt 2.3 auf Seite 12) entsprechen sollte.
Nachdem hier neue Zuweisungen gemacht wurden muss die Änderung NFS bekannt gemacht wer-
den:
sudo exportfs -ra
Danach können die Freigaben von entfernten Rechnern angesprochen werden.

4.1.3 FTP

TODO

29
4 Dienste

4.1.4 WebDAV

WebDAV ist ein sehr nützlicher Standard zur Bereitstellung von Daten in Netzwerken, da er die
Standard HTTP-Ports verwendet und so meist auch funktioniert wenn der Client hinter einer Fire-
wall sitzt. Zudem müssen bei bereits aktivem Webserver keine weiteren Ports freigegeben werden
(für FTP oder SSH) um die Dateien auf dem Server zu bearbeiten. Mehr Informationen zu WebDAV
unter http://de.wikipedia.org/wiki/Webdav.

Da WebDAV eine Implementierung des HTTP Protokolls ist, benötigen wir einen Webserver wie
zum Beispiel den Apache (Einrichtung siehe Abschnitt 4.2 auf Seite 31). Ist dieser installiert muss
nur das Modul für WebDAV geladen werden und anschließend Apache neu gestartet werden:
sudo a2enmod dav
sudo a2enmod dav_fs

Um die Einrichtung der Benutzer zu vereinfachen wird hier das Modul auth_pam verwendet. Da-
mit können alle Benutzer, die über adduser (siehe Abschnitt 3.6 auf Seite 23) eingerichtet werden
Zugriff per WebDAV bekommen. sudo apt-get install libapache2-mod-auth-pam
sudo a2enmod auth_pam
Um auf unser public-Verzeichnis zugreifen zu muss zunächst der Benutzer der den Apache-Server
lädt in die Gruppe users aufgenommen werden:
sudo adduser www-data users
Zusätzlich muss der Benutzer Mitglied der Gruppe shadow sein um auf die System-Benutzer-
Datenbank zugreifen zu können:
sudo adduser www-data shadow

Um schlussendlich Zugang zu den Daten zu erhalten muss die Datei /etc/apache2/sites-available/default


bearbeitet werden. Am Ende der Datei, aber vor der Zeile </Virtualhost> wird folgender Abschnitt
eingefügt:

Alias /public "/srv/public/"


<Directory "/srv/public/">
DAV on
Options +Indexes
AuthType Basic
AuthName "WebDAV Verzeichnis"

30
4 Dienste

AuthPAM_Enabled On
AuthPAM_FallThrough Off
AuthBasicAuthoritative Off
AuthUserFile /dev/null
Require valid-user
</Directory>

Nach einem Neustart des Apachen (sudo /etc/init.d/apache2 restart) sollte die Freigabe unter der
Adresse http://serveradresse/public zu erreichen sein.

Diese Vorgehensweise wird allerdings nicht empfohlen, da dann Passwörter unverschlüsselt über-
tragen und mitgelesen werden können. Deshalb empfiehlt es sich folgenden Abschnitt in die im
Apache-SSL-Tutorial erstellte Datei /etc/apache2/sites-available/ssl einzufügen:

SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
Alias /public "/srv/public/"
<Directory "/srv/public/">
DAV on
Options +Indexes
AuthType Basic
AuthName "WebDAV Verzeichnis"
AuthPAM_Enabled On
AuthPAM_FallThrough Off
AuthBasicAuthoritative Off
AuthUserFile /dev/null
Require valid-user
SSLRequireSSL
</Directory>

Nach einem Neustart des Apachen (sudo /etc/init.d/apache2 restart) sollte man unter der Adresse
https://serveradresse/public die DAV-Freigabe erreichen können.

4.2 LAMP - Linux Apache MySQL PHP

Ein Linux Home/Office Server sollte nicht nur Dateien im Netz bereitstellen können, er sollte auch
andere Dienste anbieten, ob nun zur Erleichterung der Arbeit (z.B. Webseiten-Entwicklung) oder
zum Vergnügen sei mal dahin gestellt. Ein potentes System um solche Dienste anzubieten ist ein
ausgewachsener Webserver, wie zum Beispiel der Apache-Webserver. Und genau im diesen geht
es heute. Wir werden den Apachen installieren und für die Verwendung mit PHP und MySQL

31
4 Dienste

vorbereiten

4.2.1 Apache

sudo apt-get install apache2

Damit wird das Apache Grundgerüst eingespielt. Nachdem der Installationsprozess durchgelaufen
ist sollte im Browser über die Adresse http://[serveradresse]/ die Testseite des Apachen begutachtet
werden können.
Das Standardverzeichnis in dem der Apache Dateien zur Anzeige erwartet ist /var/www. Dieses
wird mit den folgenden Schritten ebenfalls unter /srv abgelegt:

Zuerst das Verzeichnis anlegen:


sudo mkdir /srv/www
Kopieren der alten Dateien ins neue Verzeichnis:
sudo cp -R /var/www/* /srv/www/
Nun wird nur noch eine Änderung in der Konfigurationsdatei nötig um die Änderungen zu aktivie-
ren:
sudo nano /etc/apache2/sites-available/default
Dort suchen wir nach der Zeile
DocumentRoot /var/www
und ändern diese wie folgt:
DocumentRoot /srv/www
Das gleiche muss 5 Zeilen weiter unten gemacht werden, damit diese so aussieht:
<Directory /srv/www/>

Noch einer weiteren Datei sollten zwei Zeilen hinzugefügt werden: sudo nano /etc/apache2/httpd.conf
Hier werden diese beiden Zeilen am Ende an gehangen:

ServerName localhost
ServerTokens Major

Die erste sorgt dafür das beim Starten des Apachen eine Fehlermeldung (siehe http://url.zeroathome.
de/apache-fqdn/) unterdrückt wird, die zweite Zeile führt dazu das der Server nicht seine komplet-
te Versionsnummer nach außen hin zeigt, um es eventuellen Angreifern ein wenig zu erschweren.

32
4 Dienste

Zum Übernehmen der Einstellungen reicht ein:


sudo /etc/init.d/apache2 restart

SSL-Verschlüsselung

Damit unser HTTP-Server auch verschlüsselt ansprechbar ist, zum Beispiel für die Bereitstellung
von Daten per WebDAV (Einrichtung siehe Abschnitt 4.1.3 auf Seite 29) müssen folgende Schritte
abgearbeitet werden:
sudo apt-get install openssl
sudo mkdir /etc/apache2/ssl
sudo openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem ⇒
-keyout /etc/apache2/ssl/apache.pem
Der Wert für -days kann dabei beliebig angepasst werden, je nachdem wie lange das Zertifikat
gültig bleiben soll (z.B. -days 1825 für 5 Jahre).
Dann werden ein paar Daten abgefragt:

Country Name (2 letter code) [AU]:DE


State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:Home
Organization Name (eg, company) [Internet Widgits Pty Ltd]:zeroathome.de
Organizational Unit Name (eg, section) []:zero
Common Name (eg, YOUR name) []:server.home.lan
Email Address []:zero@zeroathome.de

Wie man diese Fragen beantwortet ist einem selbst überlassen, je nachdem wie ernst man es mit
seinem Server nimmt.
sudo ln -sf /etc/apache2/ssl/apache.pem
/etc/apache2/ssl/‘/usr/bin/openssl x509 -noout -hash <
/etc/apache2/ssl/apache.pem‘.0
sudo chmod 600 /etc/apache2/ssl/apache.pem
Anschließend aktiviert man das SSL-Modul:
sudo a2enmod ssl
Jetzt muss noch die Apache-Konfiguration angepasst werden. Dazu kopieren wir die aktuelle Kon-
figuration ohne SSL:
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
Was den Vorteil hat, dass jetzt auch die normalen Seiten per SSL erreichbar sind. In der neuen Da-
tei (/etc/apache2/sites-available/ssl) müssen folgende Einstellungen geändert werden. In den ersten
beiden Zeilen der ssl-Datei sollte es heißen:

33
4 Dienste

NameVirtualHost *:443
<VirtualHost *:443>

Als letzter Schritt wird der Apache-Server jetzt neu gestartet:


sudo /etc/init.d/apache2 force-reload

Nun sollte der Server auch unter der Adresse https://serveradresse ereichbar sein. Da das Zertifikat
nicht signiert ist, wird man mit einer Warnung begrüßt, die man aber auf dem eigenen Server getrost
übersehen kann. Im WWW wäre ich mit solch unbedachten Aktionen eher vorsichtig!

4.2.2 PHP

Die Installation erfolgt mit:


sudo apt-get install php5 libapache2-mod-php5 php5-mysql php5-cgi php5-gd php5-mcrypt
Anschließend muss der Apache neu gestartet werden:
sudo /etc/init.d/apache2 restart

Zum testen der PHP-Installation sollten folgende Schritte genügen:

Erzeugen einer PHP-Datei im Hauptverzeichnis des Webservers:


sudo nano /srv/www/info.php
In der Datei sollte folgendes stehen:

<?php
phpinfo();
?>

Speichern und im Browser die Adresse http://[serveradresse]/info.php aufrufen worauf die folgen-
de Seite (Abb. 4.1) zu sehen sein sollte (die Versionsnummer von PHP unter Hardy ist zur Zeit
5.2.4):

Falls der Browser anbietet das PHP-File herunterzuladen, wurde wahrscheinlich das PHP-Modul
noch nicht in Apache eingebunden, ein sudo a2enmod php5 mit anschließendem
sudo /etc/init.d/apache2 restart sollte da Abhilfe schaffen.

34
4 Dienste

Abbildung 4.1: Ausgabe von phpinfo() zum Test der PHP-Installation

Damit wäre PHP erfolgreich eingerichtet und wir können zum nächsten Patienten übergehen.

4.2.3 MySQL

sudo apt-get install mysql-server phpmyadmin


Damit werden der MySQL-Server 5 und, zur Administration dieses, phpMyAdmin, samt aller Ab-
hängigkeiten, installiert. Während der Installation wird das Passwort für den Benutzer root abge-
fragt. Auch hier ist bitte wieder ein ausreichend sicheres Passwort zu wählen. Im nächsten Schritt
wählt man apache2 als Option aus und bestätigt mit OK.
Nachdem die Installation abgeschlossen ist kann die MySQL-Installation getestet werden. Dazu
muss noch die phpMyAdmin-Installation in unser Webserver-Home-Verzeichnis (/srv/www) ver-
linkt werden:
sudo ln -s /usr/share/phpmyadmin /srv/www/phpmyadmin
Danach kann im Browser die Adresse http://[serveradresse]/phpmyadmin aufgerufen werden und
ein Login-Versuch mit dem Benutzer root und dem entsprechenden Passwort gemacht werden. Soll-
te beides gelingen, ist die Installation bereits abgeschlossen. (Abb. 4.2)

Damit ist der LAMP-Server eingerichtet und unser Heim-Server wieder um eine Attraktion rei-
cher.

35
4 Dienste

Abbildung 4.2: Überprüfen der MySQL-Installation mit Hilfe von phpMyAdmin

4.3 DNS- und DHCP-Server

sudo apt-get install dnsmasq


Die Konfiguration des Servers muss dann in der Datei /etc/dnsmasq.conf geändert werden. Um den
DHCP-Server zu aktivieren muss zuerst das # vor der Zeile dhcp-range=... entfernt werden und die
Zeile entsprechend des jeweiligen Netzwerkes angepasst werden.

dhcp-range=192.168.101.100,192.168.101.200,12h

In diesem Beispiel werden Adressen im Bereich zwischen 192.168.101.100 und 192.168.101.200


vergeben und diese sind für 12 Stunden gültig (12h), danach müssen die Clients erneut nach einer
Adresse fragen.
In der Regel werden jetzt die Adressen zufällig verteilt, das heißt es kann passieren, das ein und der
selbe Client heute die Endnummer .122 hat und morgen die Nummer .145. Das ist nicht immer von
Vorteil, besonders wenn der Client einen Dienst im Netz anbietet. Deshalb gibt es die Möglichkeit
bestimmten Rechner (genauer deren Netzwerkkarten) eine feste Adresse zuzuweisen. Dazu muss
für jeden Client der eine feste Adresse bekommen soll eine Zeile wie diese angelegt werden:

dhcp-host=11:22:33:44:55:66,rechner1,192.168.101.170

36
4 Dienste

Damit wird dem Rechner (der Netzwerkkarte) mit der MAC-Adresse 11:22:33:44:55:66 der Name
rechner1 und die IP 192.168.101.170 zugewiesen. In der Regel ist das für ein Heim- oder kleines
Office-Netzwerk genug, für weitere Feineinstellungen sind in der Datei /etc/dnsmasq.conf einige
Beispiele mit Erklärungen aufgelistet.
Falls im Netzwerk ein Router seinen Dienst tut, um den Clients den Internet-Zugang zu ermög-
lichen, sollte man den Clients dies ebenfalls mitteilen. Dazu müssen die folgenden Zeile geän-
dert/hinzugefügt werden:

dhcp-option=3,192.168.101.1

Dabei ist 192.168.101.1 die Adresse des Routers


Nachdem dnsmasq neu gestartet wurde ist der Server dazu fähig den Rechnern im Netzwerk Adres-
sen zu geben und diese Zuordnung auch anderen Rechnern im selben Netz mitzuteilen.
Falls es im Netzwerk Rechner gibt, die ihre IP nicht vom DHCP-Server beziehen, sondern diese ma-
nuell zugewiesen bekommen (so wie dieser Server), sollten diese in die Datei /etc/hosts eingetragen
werden, da diese ebenfalls von dnsmasq eingelesen wird. Wie das funktioniert erklärt Abschnitt 3.7
auf Seite 24.
Eine nette Sache noch zum Abschluss. dnsmasq kann auch als Spamfilter missbraucht werden, in-
dem man zum Beispiel die Adresse googleadservices.com auf eine andere IP umleitet. Dazu genügt
ein Eintrag in der dnsmasq-Konfiguration:

address=/googleadservices.com/127.0.0.1

Weitere Möglichkeiten ergeben sich dadurch natürlich auch:

address=/microsoft.de/91.189.94.249

Leiter zum Beispiel alle Anfragen an http://www.microsoft.de auf http://www.ubuntu.com um,


praktisch nicht wahr? Nach jeder dieser Änderungen ist ein Neustart des dnsmasq-Daemons not-
wendig!

37
4 Dienste

4.4 Openfire - Jabber-Instant-Messaging-Server

Je nach Größe des Netzwerks ist es ganz nett einen eigenen IM-Server zu haben, um sich zum
Beispiel mit dem am anderen Ende der 400qm WG-Wohnung befindlichen Mitbewohner zu un-
terhalten. Auch in unübersichtlichen Büros ist Instant-Messaging ein Mittel nicht dauernd in der
Gegend herumlaufen zu müssen, oder mal schnell eine Datei an einen bestimmten Mitarbeiter sen-
den zu können.
Hier wird Openfire als Server-App verwendet, welches zwar leider nicht in den offiziellen Ubuntu-
Paketquellen, ist aber in der Administration wesentlich einfacher zu bedienen als andere Jabber-
Server und bietet einiges an Plugins zur Erweiterung.

Download
Seit einiger Zeit steht ein .deb Installationsfile für Debian-basierte Systeme (zu denen Ubuntu ja
auch gehört) bereit, das von der Hersteller-Homepage heruntergeladen werden kann. Das Paket
kann zum Beispiel mit wget direkt auf den Server geladen werden, oder zuerst auf den Desktop
und dann per scp oder eine der Freigaben auf den Server befördert werden. Die Adresse für den
Download lautet http://www.igniterealtime.org/downloads/.

Installation Um das Paket installieren zu können, muss zunächst die Java-Runtime von Sun instal-
liert werden. Diese ist in den Paketquellen enthalten und wird mit
sudo apt-get install sun-java6-jre
installiert. Danach kann in das Verzeichnis gewechselt werden, in dem das heruntergeladene Openfire-
Paket liegt und dieses mit dem Befehl
sudo dpkg -i *.deb
dem System hinzugefügt werden.
Wenn die Installation ohne Fehler durchgelaufen ist, ist die Weboberfläche von Openfire unter
http://serverip:9090 verfügbar. Dort wird man von einem Konfigurations-Assistenten begrüßt (sie-
he Abb. 4.3). Hier muss zuerst die Sprache ausgewählt werden, die im Administrations-Interface
verwendet wird.
Im zweiten Schritt (siehe Abb. 4.4) wird der Name des Servers und die Ports für die Web-Oberfläche
für den Administrator festgelegt. Für das lokale Netz kann der vorgeschlagene Name verwendet
werden, falls der Server öffentlich im Internet verfügbar ist muss der entsprechende Domain-Name
angegeben werden unter dem der Server aus dem WWW erreichbar ist. Die Jabber-Adressen lau-
ten dann benutzer@domain-name. Die Ports können prinzipiell so bleiben oder falls gewünscht auf

38
4 Dienste

Abbildung 4.3: Sprachauswahl für die Administrations-Oberfläche

einen freien Port gelegt werden.


Der dritte Schritt (siehe Abb. 4.5) dient der Auswahl der Datenbank. Der Einfachheit halber wird

Abbildung 4.4: Auswahl der Server-Domain und der Ports

hier die integrierte Datenbank verwendet.


Im nächsten Punkt (siehe Abb. 4.6) siegt wieder die Einfachheit und die integrierte Benutzerver-
waltung wird ausgewählt.
Der letzte Assistenten-Schritt (siehe Abb. 4.7) fügt den Administrator-Account hinzu. Hier sollte
eine real existierende Mail-Adresse sowie ein ausreichend sicheres Passwort verwendet werden.
Nach diesem Schritt ist die Grundkonfiguration abgeschlossen und man kann sich mit dem eben
angelegten Administrator-Account einloggen (siehe Abb. 4.8).
Damit können sich bereits Clients auf dem Server anmelden und Chatten oder Dateien versenden.
Zur erweiterten Einrichtung von Openfire bitte ich die Dokumentation auf der Hersteller-Website

39
4 Dienste

Abbildung 4.5: Datenbank auswählen

Abbildung 4.6: Benutzerverwaltung auswählen

(http://url.zeroathome.de/openfiredocs/) zu Rate zu ziehen, da dies den Umfang dieses Tutorials


ein wenig sprengen würde. Zudem ist das Web-Interface recht übersichtlich und größtenteils auch
selbsterklärend gestaltet.

40
4 Dienste

Abbildung 4.7: Administratorkonto anlegen

Abbildung 4.8: Einloggen in die Administration

41