Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Leitfaden für die Nutzung des Buchs und der beiliegenden DVDs
Das Terminal – sinnvoll oder überflüssig?
1 Die Wurzeln von Ubuntu
2 Was ist Ubuntu?
3 Die Versionen im Detail
4 Daten sichern, migrieren und synchronisieren
5 Die Installation
6 Erste Schritte
7 Kubuntu
8 Programme und Pakete installieren
9 Internet und E-Mail
10 Office
11 Grafik und Bildbearbeitung
12 Multimedia
13 Programmierung und Design
14 Software- und Paketverwaltung
15 Architektur
16 Backup und Sicherheit
17 Desktop-Virtualisierung
18 Serverinstallation
19 Administration und Monitoring
20 Netzwerke
21 LAN-Server – im Firmennetzwerk oder als Multimediazentrale
22 Der Server im Internet
23 Servervirtualisierung mit KVM
24 Servervirtualisierung mit Xen
25 Hilfe
26 Befehlsreferenz
A Mark Shuttleworth
Stichwort

Download:
- ZIP, ca. 50,6 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Ubuntu GNU/Linux von Marcus Fischer
Das umfassende Handbuch, aktuell zu Ubuntu 11.04 »Natty Narwhal«
Buch: Ubuntu GNU/Linux

Ubuntu GNU/Linux
geb., mit 2 DVDs
1118 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1765-1
Pfeil 19 Administration und Monitoring
  Pfeil 19.1 Zugriff auf den Server
    Pfeil 19.1.1 Aktualisierungen
    Pfeil 19.1.2 SSH
    Pfeil 19.1.3 VPN
    Pfeil 19.1.4 Per Internet auf den Heim-PC
  Pfeil 19.2 Kontrolle und Überwachung mit Nagios
    Pfeil 19.2.1 Installation
    Pfeil 19.2.2 Konfiguration
    Pfeil 19.2.3 Benachrichtigungen
    Pfeil 19.2.4 Überwachung verschiedener Systeme
  Pfeil 19.3 Zentrale Verwaltung mit Landscape

»Es ist schon lange einer meiner Grundsätze, dass die kleinsten Dinge bei weitem die wichtigsten sind.« Sir Arthur Conan Doyle (1859–1930), britischer Arzt und Kriminalautor

19 Administration und Monitoring

Was Sie in diesem Kapitel erwartet

Die Verwaltung eines Servers gelingt mit den hier vorgestellten Möglichkeiten im Handumdrehen. Egal ob Sie physisch vor Ihrem Server sitzen oder sich per Fernzugriff auf dem Server anmelden wollen – Ubuntu bringt die richtigen Werkzeuge mit.

Sicherheit ist grundlegend für die Kommunikation mit einem Server. Daher wird dieses Kapitel mit Abschnitten zu Secure Shell (SSH) und Virtual Private Networks (VPN) beginnen. Im Anschluss lernen Sie dann ein effizientes Werkzeug zur automatischen Administration Ihres Servers kennen: Nagios.

Benötigtes Vorwissen

Sie sollten den grundlegenden Umgang mit der Shell beherrschen (siehe Abschnitt »Das Terminal – Überflüssig oder sinnvoll?«).


Galileo Computing - Zum Seitenanfang

19.1 Zugriff auf den Server  Zur nächsten ÜberschriftZur vorigen Überschrift

Wie ich im Abschnitt »Grafischen Desktop nachträglich installieren« bereits erklärte, wird ein Ubuntu-Server in der Regel ohne grafische Oberfläche betrieben. Dies macht die Administration des Servers – auch aus der Ferne – sehr effizient und lässt Konfigurationen auch in überlasteten Netzwerken zu. Wer schon einmal in falsch konfigurierten oder überlasteten Netzwerken einen Server grafisch administrieren wollte, wird sich über die umfassenden Möglichkeiten der Linux-Konsole erfreuen und sie nicht mehr missen wollen.

Start in der Konsole

Der Ubuntu-Server begrüßt Sie nach dem Start mit einer Login-Aufforderung (siehe Abbildung). Sie befinden sich hierbei in einer Konsole, von denen Sie sechs Stück zur Verfügung haben. Sie wechseln diese durch die Tastenkombination (Alt) + (F1) bis (Alt) + (F6) .

Diese Konsolen funktionieren unabhängig voneinander, so dass Sie die Freiheit haben, nicht auf einen abgeschlossenen Prozess warten zu müssen. Sie können also in einer Konsole die neuesten Aktualisierungen herunterladen, während Sie sich in der nächsten Konsole anmelden, um weitere Arbeiten zu verrichten. Sie haben bereits viel über die Arbeit in der Konsole (respektive im Terminal) in Abschnitt »Das Terminal« gelernt.

Abbildung 19.1  Der Anmeldevorgang in der Konsole

Es gibt prinzipiell mehrere Arten, auf einen anderen Rechner zuzugreifen:

  • Sie können einen Server aus der Ferne per SSH und VPN administrieren.
  • Mit Landscape haben Sie ein Systemverwaltungswerkzeug, mit dem Sie mehrere Ubuntu-Systeme gleichzeitig verwalten können (siehe Abschnitt »Landscape«).
  • Sie können Launchpad mit Bazaar nutzen (zur Versionsverwaltung eines Projekts). Nähere Details hierzu finden Sie im Abschnitt »Versionsverwaltung mit Bazaar«.
  • Sie können sichere Verbindungen aufbauen, sei es in einem heimischen Netzwerk oder dann, wenn Sie anderen Nutzern mittels eines Remote-Desktops helfen.

Server neu starten oder herunterfahren

Für einen Neustart des Servers genügt der Befehl sudo reboot oder die Tastenkombination (Strg) + (Alt) + (Entf) , während Sie mit sudo halt den Server herunterfahren. Sie können den Server durch sudo shutdown -h 23:00 auch zeitgestützt herunterfahren (hier beispielsweise um 23 Uhr).


Tipp 249: Die Maus in der Konsole nutzen

Wenn Sie viel auf einem Linux-Desktop arbeiten, werden Sie bestimmt die Möglichkeit vermissen, Text mit der linken Maustaste zu kopieren und mit der mittleren Maustaste an einer beliebigen Stelle wieder einzufügen. Sie können sich auf diese Art eine Menge Tipparbeit ersparen, wenn Sie beispielsweise den Inhalt von Konfigurationsdateien teilweise kopieren möchten.

Diese praktische Art der Nutzung des Zwischenspeichers steht Ihnen nicht nur mit einer grafischen Oberfläche, sondern auch in einer Konsole zur Verfügung. Installieren Sie dazu das Paket gpm:

sudo apt-get install gpm


Galileo Computing - Zum Seitenanfang

19.1.1 Aktualisierungen  Zur nächsten ÜberschriftZur vorigen Überschrift

Wenn Sie die automatische Aktualisierung Ihres Systems nicht während der Installation beauftragt haben, sollten Sie regelmäßig manuell auf Ihrem Server nach aktualisierten Paketen sehen. In erster Linie betrifft dies notwendige und wichtige Sicherheitsaktualisierungen. Sie benötigen für diesen Zweck zwei Befehle. Mit

sudo apt-get update

aktualisieren Sie Ihre Software-Quellen und damit den Status Ihrer Pakete. Mit dem Befehl

sudo apt-get dist-upgrade

aktualisieren Sie schließlich Ihr gesamtes System (inklusive des Kernels), falls es wichtige Aktualisierungen gibt.

Kernel-Aktualisierung vermeiden?

Wenn Sie wichtige Kernel-Module selbst kompiliert haben und nicht versehentlich oder unvorbereitet den Kernel aktualisieren wollen, verwenden Sie sudo apt-get upgrade.


Galileo Computing - Zum Seitenanfang

19.1.2 SSH  Zur nächsten ÜberschriftZur vorigen Überschrift

Bevor Sie sich anschicken, Daten zwischen zwei Rechnern auszutauschen, sollten Sie versuchen, den ersten Rechner über den zweiten von der Kommandozeile aus »fernzusteuern«. Das veraltete (und unsichere, weil abhörbare) Telnet-Verfahren wurde in der Vergangenheit durch die SSH (die Secure Shell) abgelöst. ssh ist derzeit die sicherste Methode, Ihre Kommunikation vor allzu neugierigen Blicken zu sichern.

Verschlüsselte Kommunikation

SSH überträgt im Gegensatz zu den anderen Lösungen die Login-Informationen und das Passwort verschlüsselt. Um einen SSH-Server auf einem Rechner so aufzusetzen, dass sich die Benutzer auf diesem aus der Ferne (englisch remote) einloggen können, müssen Sie auf diesem Rechner zunächst das Paket openssh-server installieren:

sudo apt-get install openssh-server

Das Paket openssh-client wird dabei standardmäßig ebenfalls installiert. Nach der Installation des Pakets wird auf dem entsprechenden Rechner der SSH-Server gestartet. Dies erkennen Sie z. B. mit folgendem Kommando:

ps ax | grep sshd
696 ?   Ss  0:00 /usr/sbin/sshd -D

Tipp 250: Das SSH-Metapaket

Sie haben bei Ubuntu ebenfalls die Möglichkeit, ein Meta-Paket namens ssh zu installieren. Dieses Paket installiert auf einen Schlag den SSH-Client und -Server. Sie werden jetzt sicherlich den Einwand haben, dass die Installation des Pakets openssh-server den gleichen Effekt hat. Dies stimmt, und daher ist dieses Metapaket besonders sinnvoll, wenn Sie den Client und Server in einem Rutsch deinstallieren möchten:

sudo apt-get remove ssh

Selbstverständlich können Sie sich auch mit anderen Rechnern verbinden, auf denen andere Linux-Distributionen installiert sind. Hierbei kann es natürlich vorkommen, dass bei diesen der SSH-Server standardmäßig bereits installiert ist.


Wenn Sie lediglich den Client installieren möchten, müssen Sie dies dem System explizit mitteilen:

sudo apt-get install openssh-client

Verbindung zum Server

Nun können Sie versuchen, sich von einem im gleichen Netz befindlichen Client auf demSSH-Server einzuloggen. Dazu öffnen Sie eine Konsole und geben das Kommando ssh <Rechnername/IP> ein. Wenn Sie zum ersten Mal versuchen, mit dem Server Kontakt aufzunehmen, müssen Sie die Verbindungsaufnahme explizit bestätigen:

ssh flitzi
The authenticity of host 'flitzi (192.168.0.103)'
can't be established. RSA key fingerprint is
02:28:76:ef:ab:43:2a:60:91:78:d9:51:16:a6:27:ef.
Are you sure you want to continue connecting
(yes/no)? yes

Authentifizierung

Schließlich müssen Sie das Passwort Ihres Accounts auf dem Server eingeben. Dazu sollten Sie auf dem Rechner eingeloggt sein. Das Ganze setzt voraus, dass ein entsprechender Account auf dem Server existiert. Wer sich unter einem anderen Login-Namen einloggen möchte, gibt den Befehl ssh <Benutzername>@<Host> ein, wobei die Platzhalter entsprechend zu ersetzen sind. Nun können Sie sich auf dem entsprechenden Rechner so bewegen, als säßen Sie direkt davor. Sie können sogar Programme starten.

Aber halt, werden Sie sagen, wie steht es mit grafischer Software? Man kann ja nicht sehen, was in den entsprechenden Fenstern ausgegeben wird ... In diesem Fall bietet sich ein X-Tunnel an (siehe folgender Tipp). Sie verlassen die SSH-Shell mit der Tastenkombination (Strg) + (D) .


Tipp 251: Der X-Tunnel: Grafisch auf einen entfernten Rechner zugreifen

Aufgrund der Modularität ist es unter UNIX kein Problem, entfernte grafische Anwendungen (sogenannte X-Clients) aufzurufen und am eigenen Bildschirm (der X-Server) zu bedienen. Dies ist das sogenannte X11-Forwarding. Wir wollen im Folgenden vom Client auf den Server zugreifen. Dazu müssen auf dem Server zwingend die Pakete libX.so und xauth installiert sein. Des Weiteren muss das X11-Forwarding vom Server explizit erlaubt werden. Hierzu muss unter X11Forwarding in der Datei /etc/ssh/sshd_config ein yes stehen. Mit den folgenden Befehlen bauen wir einen Verbindung auf und holen uns die Anzeige des Firefox (Server) auf den eigenen Bildschirm (Client):

export DISPLAY=:0
ssh -X server
echo $DISPLAY
firefox &

SSH versagt bei Neuinstallation

Es ist sehr wahrscheinlich, dass Sie nicht mehr mit einem anderen Rechner (beispielsweise dem Server) kommunizieren können, wenn einer der beiden zwischenzeitlich neu installiert oder umkonfiguriert wurde. Der Grund liegt darin, dass die Teilnehmer einer SSH-Sitzung aus Sicherheitsgründen gespeichert werden. Genauer gesagt werden die IP-Adresse, der Hostname und der Schlüssel des externen SSH-Servers in der Datei /.ssh/known_hosts hinterlegt. Sind diese Daten einmal gespeichert, wird bei jedem Verbindungsaufbau die Richtigkeit dieser Angaben überprüft. Hat sich in der Zwischenzeit etwas daran geändert, sollten Sie den entsprechenden Eintrag vor dem nächsten Verbindungsaufbau aus der genannten Datei entfernen.


Tipp 252: Mit SSH die Uhrzeit setzen

Lohnt sich der Einsatz von NTP (Network Time Protocol) nicht oder ist ein Rechner nur per TCP und nicht per UDP erreichbar, dann hilft folgender Aufruf, um die Uhrzeit auf einem entfernten Rechner zu setzen:

ssh root@server date -s  " 'date -R'  "  ; hwclock --systohc

Der Befehl date -R wird auf dem lokalen Rechner ausgeführt. Die Option -R bewirkt, dass eine Ausgabe erzeugt wird, die der entfernte Rechner auch versteht. Die Ausgabe von date ohne Optionen wird aufgrund der deutschen Schreibweise auf dem entfernten Rechner unter Umständen nicht verstanden. Mit date -s setzen Sie das Datum auf dem entfernten Rechner.


Dateien kopieren via scp

Es ist sogar möglich, Dateien zwischen zwei Rechnern zu kopieren:

scp test1.txt marcus@192.168.0.1:~

Dieser Befehl kopiert die Datei test1.txt in das Heimatverzeichnis (gekennzeichnet durch die Tilde »~«) des Benutzers marcus auf dem SSH-Server (IP: 192.168.0.1). Die Syntax für den Pfad lautet dabei Benutzer@Server:<Pfad>. Den umgekehrten Weg demonstriert der folgende Befehl:

scp marcus@192.168.0.1:~/test.txt .

Hier wird eine Datei test2.txt vom Server in das aktuelle Verzeichnis kopiert (erkennbar an dem nachfolgenden Punkt ».« ). Die oben genannte IP-Adresse ist natürlich den entsprechenden Gegebenheiten anzupassen – in jedem Fall muss vor dem Kopiervorgang das für den Benutzer definierte Passwort eingegeben werden. Nun ist das Kopieren auf der Kommandozeile nicht jedermanns Sache, schöner wäre es, wenn Sie hierzu einen Dateimanager verwenden könnten. Kein Problem: Starten Sie unter GNOME den Remote-Zugriff auf einen SSH-Server über Orte • Verbindung zu Server.

IP-Adresse angeben

In dem folgenden Menü (Abbildung) definieren Sie die IP-Adresse oder den Namen des Servers (Letzteres bietet sich an, wenn der Server in Ihrer Datei /etc/hosts verzeichnet ist). Als Dienst wird SSH angegeben. Darüber hinaus können Sie ein Startverzeichnis angeben, in das direkt nach dem Einloggen gewechselt wird.

Durch die obigen Schritte wird auf dem Desktop ein kleines Icon erzeugt, das die Verbindung repräsentiert. Wenn Sie das Icon durch Anklicken öffnen, werden Sie nach Ihrem Serverpasswort gefragt, und schließlich zeigt Nautilus die entsprechenden Inhalte auf dem Server an. Nun können Sie in gewohnter Weise Daten zwischen Client und Server kopieren.

Abbildung 19.2  Mit dem Server verbinden


Tipp 253: Einzelne Dateien von einem Remote-Host holen

Mit dem Befehl scp -r ist es leider nicht möglich, nur bestimmte Dateien zu übertragen. Das ist auch nicht nötig, weil Sie mit zwei Tar-Befehlen arbeiten können. Das tar auf dem entfernten Rechner schreibt nach stdout, und das tar auf dem lokalen Rechner liest von stdin. Um Dateien von einem Remote-Host zu holen, verwenden Sie diesen Befehl:

ssh remotehost "cd beispiel; find . -name '*.jpg' | tar -cf \
--files-from=-" | tar -xvf -

Mit dem folgenden Befehl werden Dateien zum Remote-Host kopiert. Aus dem Verzeichnis workdir wird das Verzeichnis beispieldir kopiert.

cd workdir
find beispieldir -name "*.txt" | tar -cf – --files-from=- | \
ssh remotehost tar -xvf – -C workdir

SSH Public Key für passwortfreies Anmelden installieren

Bisher mussten Sie sich immer am entfernten Rechner anmelden, weil der andere Rechner Sie nicht automatisch erkennen konnte. Wenn Sie sich wiederholt auf dem anderen Rechner anmelden, kostet dies viel kostbare Zeit. Des Weiteren hat diese Art der Nutzung den entscheidenden Nachteil, dass sich jeder, der im Besitz Ihres Passwortes ist, bei diesem Rechner anmelden kann. Ein weiterer Grund für diese Art der Authentifizierung besteht darin, wenn Sie als Administrator nicht möchten, dass Ihre Nutzer ein unsicheres Passwort verwenden und damit die Gefahr eines unbefugten Zugriffes steigen würde.

Eindeutige Identifikation notwendig

Dies können Sie vermeiden, indem Sie sich eindeutig identifizieren. Der Trick besteht darin, dass Sie sich einen privaten und einen öffentlichen Schlüssel anlegen. Der öffentliche Schlüssel wird auf dem Zielrechner in die Datei ~/.ssh/authorized_keys eingefügt. Wenn diese Datei noch nicht existiert, müssen Sie sie erst erstellen. Sie benötigen diese Schlüssel auf jedem Rechner, der sich mit dem Zielrechner verbinden soll. Die Vorgehensweise ist folgende:

1. Ändern Sie aus Sicherheitsgründen als Root in der Datei /etc/ssh/sshd_config die folgenden Zeilen in no:
       
PermitRootLoging
PasswortAuthentification
PAM
2. Starten Sie den ssh-Server durch sudo /etc/init.d/ssh restart neu.
       
3. Sie erstellen die beiden Schlüssel (siehe Abbildung) durch ssh-keygen -t rsa. Die beiden Schlüssel id_rsa (privat) und id_rsa.pub (öffentlich) befinden sich in Ihrem homeVerzeichnis unter /home/user/.ssh/. Der öffentliche Schlüssel muss auf den Server kopiert werden (.ssh/authorized_keys). Verwenden Sie zum Kopieren des öffentlichen Schlüssels am besten scp. Somit können nur noch User, die über diesen Key verfügen, auf den Server zugreifen.
       
4. Hüten Sie Ihren privaten Schlüssel wie Ihren Augapfel, und lassen Sie ihn nicht in fremde Hände gelangen! Wenn Sie den Schlüssel zu Sicherungszwecken in einem Backup aufbewahren, ist es sinnvoll, ihn noch einmal zu verschlüsseln (beispielsweise mit GPG).
       
5. Sie werden nun trotzdem noch bei jedem Einloggen nach Ihrem Passwort gefragt, aber auch das können Sie vermeiden, indem Sie Ihren Schlüssel dem ssh-Agenten mitteilen. Dies geschieht durch den Befehl ssh-add. Mit ssh-add -l können Sie sich die vom Agenten verwalteten Schlüssel anzeigen lassen.
       

Abbildung 19.3  Mit »ssh-keygen« erzeugen Sie einen privaten und einen öffentlichen Schlüssel.

Bei der Erstellung des privaten Schlüssels werden Sie nach einer Passphrase gefragt. Im Gegensatz zu einem Passwort können Sie hierbei einen freien Text, bestehend aus mehreren Wörtern, angeben (es reicht selbstverständlich auch ein Wort). Wählen Sie unbedingt eine Passphrase! Mit dieser wird nämlich Ihr privater Schlüssel vor neugierigen Blicken geschützt. Ein gutes Passwort garantiert Sicherheit.

Bei einer SSH-Verbindung werden nun zwischen Ihrem Rechner und dem Zielrechner die Schlüsselinformationen ausgetauscht, so dass ein Anmelden im herkömmlichen Sinne nicht mehr nötig ist. Ein kleiner Wermutstropfen bleibt allerdings: Sie müssen nun bei jeder Verwendung des privaten Schlüssels Ihre Passphrase eingeben. Somit haben Sie zwar an Sicherheit, nicht aber an Komfort und Geschwindigkeit gewonnen.


Tipp 254: Zugriff auf mit Passphrase geschützte Schlüssel aus einem Cron-Job

Mit dem Programm ssh-agent werden die Umgebungsvariablen gesetzt, so dass Sie mit allen Kindprozessen die Schlüssel benutzen können. Beachten Sie: Ein Cron-Job läuft zwar mit der User-ID des Nutzers, hat aber keinen direkten Zugriff auf die nötigen Umgebungsvariablen.


KDE

KDE-Nutzer können den Universalbrowser Konqueror in ähnlicher Weise einsetzen. Dazu starten Sie eine Konqueror-Instanz und geben in der Adresszeile den Servernamen oder seine IP-Adresse wie folgt ein: fish://192.168.1.8 Das Kopieren funktioniert dann, wie oben beschrieben, in Verbindung mit einem weiteren Konqueror-Fenster.

Abbildung 19.4  Der »Konqueror« bietet den Transfer über SSH frei Haus.


Tipp 255: Portforwarding

Portforwarding ist einfach und sehr praktisch. Um einen Port vom lokalen Rechner hier zu einem entfernten weiterzuleiten, verwenden Sie die Option -L. Bei zwei Rechnern sieht dies folgendermaßen aus:

ssh -L 8888:localhost:80 entfernt

Die Secure Shell baut eine Verbindung zu dem Rechner entfernt auf und leitet von dort localhost:80 weiter zu dem Rechner hier. Anschließend können Sie mit telnet localhost 8888 auf dem Rechner hier testen, ob die Verbindung besteht. Merke: Der Hostname zwischen den Doppelpunkten wird auf dem Rechner entfernt aufgelöst.

Bei vier Rechnern sieht dies folgendermaßen aus:

ssh -g -L 8888:weit-weg:80 entfernt

Wie oben, bloß dass von dem Rechner entfernt der Port von weit-weg weitergeleitet wird. Mit der Option -g (Gateway) ist es anderen Rechnern möglich, den weitergeleiteten Port auf dem Rechner hier anzusprechen. Eine Verbindung mit telnet hier 8888 vom Rechner hier2 ist nun möglich. Die Fehlermeldung bind: Address already in use kann ignoriert werden.


Seahorse

Um auch die geforderte Geschwindigkeit und den Komfort einer Anmeldung ohne Eingabe einer Passphrase zu erhalten, verwendet Ubuntu das Programm Seahorse (siehe Abbildung).

Abbildung 19.5  »Seahorse« ist Ihr virtueller Schlüsselbund.

Sie finden Seahorse in den Systemeinstellungen. Dieses Programm verwaltet auf Wunsch Ihre sämtlichen Passwörter und Schlüssel, so dass Sie sie nicht wiederholt eingeben müssen.

Die Freigabe dieser Schlüssel und Passwörter ist an Ihr Benutzerkonto auf dem lokalen Rechner gekoppelt, so dass Sie sich mit Ihrem Benutzerpasswort authentifizieren. Sie finden hier beispielsweise auch den Schlüssel für ein Funknetzwerk (WLAN). Die gespeicherten Angaben kann sich somit jeder ansehen, der Zugriff auf Ihr Benutzerkonto hat.


Tipp 256: Fehler beim SSHD durch einen zweiten Server suchen

Falls der SSH-Server sich nicht so verhält, wie er soll, und Sie beispielsweise mehr Debug-Meldungen sehen möchten, können Sie einen zweiten Server auf einem anderen Port starten. Das ist insbesondere dann sinnvoll, wenn Sie gerade per SSH eingeloggt sind und nicht den Zugang für andere während des Testens stören wollen. Gerade bei weit entfernten Servern müssen Sie beim Bearbeiten der SSHD-Konfiguration sehr vorsichtig sein:

sshd -d -e -p 2222

Die Optionen haben folgende Bedeutung: -d = Debug, -e = Log nach stderr und -p = anderer Port (der richtige Server läuft weiterhin auf 22). Das obige Kommando startet einen SSH-Server auf Port 2222. Von einem Client aus können Sie sich nun mit der zusätzlichen Option -p 2222 mit diesem Server verbinden.

Sie können auch mit -f dem Debug-Server eine andere Konfigurationsdatei geben. Mit dieser Konfigurationsdatei können Sie dann »spielen« und den richtigen Server erst dann neu starten, falls die Tests erfolgreich waren. Beachten Sie, dass der mit -d gestartete Server sich nach einer Verbindung wieder beendet.



Galileo Computing - Zum Seitenanfang

19.1.3 VPN  Zur nächsten ÜberschriftZur vorigen Überschrift

OpenVPN ist ein Programm zum Aufbau eines sogenannten Virtual Private Network (VPN) über eine verschlüsselte TLS-Verbindung (Transport Layer Security). Zur Verschlüsselung werden die Bibliotheken des Programmes OpenSSL benutzt. Der Transport der Datenpakete erfolgt wahlweise über UDP oder TCP. OpenVPN ist freie Software unter der GNU GPL.

Virtual Private Network

Ein Virtual Private Network (deutsch »virtuelles privates Netz«; kurz VPN) dient dazu, Geräte aus ihrem ursprünglichen Netz heraus an ein benachbartes Netz zu binden, ohne dass die Netzwerke miteinander kompatibel sein müssen. Heute wird VPN alltagssprachlich gebraucht, um ein (meist verschlüsseltes) virtuelles Netz zu bezeichnen, das über ein TCP/IP-Netz gelegt wird (oftmals das Internet).

Das Konzept des Virtual Private Networkings gibt dem Benutzer die Möglichkeit, vertrauliche Daten gesichert über ein per se unsicheres Netzwerk zu transportieren. Durch die Einrichtung eines sogenannten VPN-Tunnels gelangen die Daten (abhör)sicher vom Sender zum Empfänger und zurück. Unter Ubuntu lässt sich ein VPN leicht mit dem Paket openvpn realisieren. OpenVPN ist Bestandteil der Ubuntu-Paketquellen. Seit der Version 2.0 kann das Programm auch als Server z. B. innerhalb eines Firmennetzes betrieben werden. Für den Privatanwender bietet sich der Einsatz in Verbindung mit den üblicherweise schwach abgesicherten WLAN-Netzen an. Im Folgenden sollen zwei prominente Beispiele vorgestellt werden.

WLAN per VPN-Tunnel

In diesem Abschnitt soll das besonders auch für Heimanwender interessante Beispiel besprochen werden, ein WLAN per VPN-Tunnel abzusichern. Um Komplikationen bei der Konfiguration zu vermeiden, empfiehlt es sich, zunächst die WLAN-Verschlüsselung zu deaktivieren und sie nach dem erfolgreichen Einrichten des VPN wieder zu aktivieren. Das folgende Planspiel geht von der folgenden Infrastruktur aus:

  • Ein Laptop ist mit einem WLAN-Device wlan0 (IP-Adresse: 192.168.0.104) ausgestattet.
  • Das VPN-Device auf der Seite des Laptops wird mit der IP-Adresse 192.168.8.104 definiert.
  • Im Netz befindet sich ein Server, der über einen Ethernet-Adapter (IP-Adresse: 192.168.0.1) an den zentralen Router angeschlossen ist.
  • Die IP-Adresse des VPN-Devices auf der Serverseite wird als 192.168.8.1 definiert.

Abbildung 19.6  Topologie eines VPN

Schlüssel erzeugen

Zunächst muss auf dem Server ein Schlüssel erzeugt werden. Das VPN arbeitet zwar auch mit dem Konzept des privaten und öffentlichen Schlüssels, in privaten Netzen ist es jedoch am einfachsten, wenn Client und Server mit dem gleichen Schlüssel arbeiten. Mit folgendem Befehl wird der Schlüssel zunächst auf dem Server server$ erzeugt:

server$ sudo openvpn --genkey --secret /etc/openvpn/secret.key

Sicher kopieren

Dieser Schlüssel muss nun auf sicherem Wege auf den Server befördert werden. Verwenden Sie dazu das Werkzeug scp. Beachten Sie, dass Sie bei der ganzen Aktion mehrfach die Rechte der Datei umdefinieren müssen. Das Ganze geschieht unter Zuhilfenahme der jeweiligen home-Verzeichnisse.

Auf dem Server verfahren Sie folgendermaßen:

server$ sudo cp /etc/openvpn/secret.key ~
server$ cd
server$ sudo chmod a+r secret.key
server$ sudo scp secret.key <Benutzer>@client:~

Auf dem Client befördern Sie den importierten Schlüssel in das Verzeichnis /etc/openvpn:

client$ cd
client$ sudo cp secret.key /etc/openvpn

Damit wären die Schlüssel abgeglichen. Nun wird der VPN-Tunnel »gebohrt«. Auf der Serverseite geben Sie den folgenden Befehl ein:

server$ sudo openvpn --daemon --dev tun0 --remote 192.168.0.104 \
--ifconfig 192.168.8.1 192.168.8.104 --secret /etc/openvpn/secret.key

Auf der Clientseite müssen Sie die IP-Adressen entsprechend anpassen:

server$ sudo openvpn --daemon --dev tun0 --remote 192.168.0.1 \
--ifconfig 192.168.8.104 192.168.8.1 --redirect-gateway \
--secret /etc/openvpn/secret.key

Routing setzen

Der zusätzliche Parameter redirect-gateway sorgt dafür, dass auf dem Client jeglicher Datentransfer per Routing über den Tunnel geleitet wird. Auf beiden Rechnern sollte in jedem Fall ein neues Netzwerk-Device zu finden sein:

server$ ifconfig
...
tun0      Protokoll:UNSPEC  Hardware Adresse
00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet Adresse:192.168.8.1  P-z-P:192.168.8.104

Nachdem Sie per ping getestet haben, ob die Verbindung steht, können die üblichen WLAN-Schutzmechanismen (WEP-Key etc.) wieder aktiviert werden. Die beschriebene Situation ist in Abbildung dargestellt.


Galileo Computing - Zum Seitenanfang

19.1.4 Per Internet auf den Heim-PC  topZur vorigen Überschrift

Eine weitere Anwendungsmöglichkeit eines VPN ist die sichere Verbindung aus dem Internet auf den heimischen Rechner. Ein typisches Beispiel ist die Verbindung eines Außendienstmitarbeiters in das Netzwerk seiner Firma. Hier baut einer der beiden Kommunikationsteilnehmer die Verbindung auf (Client), und der andere wartet auf eingehende Verbindungen (Server).

Da Letzterer vom Provider zumeist eine dynamische IP-Adresse zugewiesen bekommt, können Sie einen Dienst wie DynDNS (www.dyndns.org) in Anspruch nehmen. Damit können Sie sich einen festen Clientnamen aussuchen, der dann automatisch mit Ihrer dynamischen IP-Adresse verbunden wird. Dafür müssen Sie sich nur registrieren und in Ihrem Router gegebenenfalls noch Einstellungen zu DynDNS vornehmen. Auf dem Server soll nun der VPN-Dienst gestartet werden. Da dieser aber zunächst nicht die IP-Adresse des Clients kennt, fehlt bei der Konfiguration der Parameter remote:

server$ sudo openvpn --daemon --dev tun0 --ifconfig 192.168.8.1 192.168.8.104 \
--secret /etc/openvpn/secret.key

Nun wartet der Server darauf, dass sich der Client bei ihm meldet. Der VPN-Befehl auf dem Client sieht folgendermaßen aus:

server$ sudo openvpn --daemon --dev tun0 --remote server.dyndns.org \
--ifconfig 192.168.8.104 192.168.8.1 --redirect-gateway \
--secret /etc/openvpn/secret.key

In diesem Fall wurde also die bislang als bekannt vorausgesetzte IP-Adresse des Servers durch dessen DynDNS-Host-Adresse server.dyndns.org ersetzt.


Tipp 257: Mit VPN eine Firewall durchtunneln

Mit der oben beschriebenen Methode zur Einrichtung eines VPN werden Sie in den meisten Firmennetzwerken und Internetcafés wenig Glück haben. Dort läuft der Netzwerkverkehr zumeist über eine Firewall, die für die UDP-Pakete, die ein VPN standardmäßig verwendet, undurchlässig ist. Durch einen kleinen Trick lassen sich aber auch derartige Firewalls aushebeln: Fügen Sie einfach auf der Clientseite den Parameter

--proto tcp-client

und auf der Serverseite den Parameter

--proto tcp-server

beim Aufruf von openvpn hinzu. Dadurch wird eine normale, browserkonforme TCP-Verbindung aufgebaut, die durch jegliche Firewall ungehindert durchkommt. Es ist müßig zu erwähnen, dass derartige Möglichkeiten den Administratoren schlaflose Nächte bereiten.


Grafische Konfiguration mit dem Network Manager

Der Network-Manager, den Sie bereits im Abschnitt »Der Network-Manager« kennengelernt haben, ist das Allround-Talent, wenn es um Verbindungen Ihres Ubuntu-Systems mit der Außenwelt geht. So verwundert es nicht, dass mit ihm auch die Verwaltung einer VPN-Verbindung möglich ist.

Vorbereitung

Zuerst sind die Konfigurationsdateien (im Prinzip nur der Schlüssel und das Zertifikat) auf dem Client abzuspeichern. Auf dem eigenen System muss in der GNOME-Oberfläche unter Anwendungen • Hinzufügen/Entfernen der VPN Connection Manager (OpenVPN) installiert sein.

Alternativ kann die Installation manuell über die Kommandozeile mit

sudo apt-get install network-manager-openvpn

erfolgen. Außerdem sollte das Paket resolvconf installiert sein.

sudo apt-get install resolvconf

Nach der Installation des OpenVPN-Plug-ins muss der Network-Manager neu gestartet werden:

sudo /etc/init.d/NetworkManager restart

OpenVPN-Verbindung einrichten

Um die Verbindung einzurichten, klicken Sie im Panel auf den Network-Manager und wählen den Punkt VPN-Verbindungen • VPN konfigurieren... Durch Betätigen des Buttons Hinzufügen gelangen Sie zum Auswahldialog für das Einrichten einer neuen VPN-Verbindung. Zu Beginn wählen Sie den VPN-Verbindungstyp, in unserem Fall OpenVPN. Mit Schließen stellen Sie die Konfiguration fertig. An dieser Stelle empfiehlt es sich, den Network Manager neu zu starten:

sudo /etc/init.d/NetworkManager restart

Abbildung 19.7  Auch für VPN-Verbindungen ist der »Network-Manager« die zentrale Instanz.

OpenVPN-Verbindung aufbauen

Um letztendlich eine VPN-Verbindung zum VPN-Server herzustellen, klicken Sie auf den Network-Manager im Panel und wählen VPN-Verbindungen aus. Hier sollte nun die zuvor eingerichtete Verbindung zu sehen sein (siehe Abbildung). Diese müssen Sie nun lediglich anklicken, um eine Verbindung aufzurufen.

Abbildung 19.8  Füllen Sie die Felder entsprechend aus. Über den Button »Erweitert...« gelangen Sie zu weiteren wichtigen Einstellungen.

Zugriff auf den Schlüsselbund

Die Abfrage, ob der Anwendung Zugriff auf den Schlüsselbund gewährt werden soll, müssen Sie bejahen. Die erfolgreich hergestellte OpenVPN-Verbindung erkennen Sie an einem Schloss im Symbol des Network-Managers.

Die Verbindung ist nun aufgebaut und kann benutzt werden.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  
  Zum Katalog
Zum Katalog: Ubuntu GNU/Linux

Ubuntu GNU/Linux
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Linux Server






 Linux Server


Zum Katalog: Linux-Server einrichten und administrieren






 Linux-Server
 einrichten und
 administrieren


Zum Katalog: Linux Hochverfügbarkeit






 Linux Hoch-
 verfügbarkeit


Zum Katalog: Linux






 Linux


Zum Katalog: Debian






 Debian


Zum Katalog: Android 3






 Android 3


Zum Katalog: GIMP






 GIMP


Zum Katalog: Webserver einrichten und administrieren






 Webserver einrichten
 und administrieren


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2011
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de