= Virtual Private Networks (VPN) =

== Was ist ein VPN? ==
Ein VPN ist eine Netzwerkverbindung, die durch ein anderes Netzwerk
geroutet wird. Diese Verbindung wird auch ''Tunnel'' genannt. Warum
das? Es geht darum, dass ein Rechner, der weit weg von uns ist und
der nur über ein fremdes Netz (d.h. das Internet) mit uns verbunden
ist, in unser eigenes Netz integriert werden soll. Dies zu tun hat
drei Gründe:

* Der Client hat eine IP-Adresse innerhalb des lokalen Netzes
* Der Client ist "virtuell" innerhalb unserer Firewall angesiedelt
* Der Aufbau der VPN-Verbindung kann authentifiziert werden
* Die Daten, die über den Tunnel laufen, können verschlüsselt
werden

== Welches Protokoll benutze ich? ==

Es gibt verschiedene Protokolle, um VPNs zu realisieren:

; SecureShellTunnel: Die vermeintlich einfachste Lösung ist der
Aufbau eines SecureShellTunnel mit SSH. Sie hat jedoch Ihre
Nachteile bei verbindungslosen Protokollen (TCPueberTCP).
; VPNmitPPTP: Benutzt ein Protokoll, das vor allem von Microsoft
benutzt wurde und sich zum Verbindungsaufbau z.B. mit
Win98-Rechnern eignet, hat aber einen Sicherheitsmangel
; VPNmitIPSec: Wahrscheinlich die beste Lösung, außerdem Teil des
IPV6-Standards und damit das Protokoll der Zukunft, leider auch
kompliziert zu installieren (benötigt einen Kernelpatch) und
gewöhnungsbedürftig, weil der Tunnel keine separaten IP-Adressen
verwendet
; OpenVPN: freie Lösung, die sehr flexibel und vor allem sehr
leicht einzurichten ist, da sie komplett im Userspace läuft. Es
können Verbindungen zwischen Linux, Solaris, OpenBSD, FreeBSD,
NetBSD, OSX, und Windows 2000/XP hergestellt werden.
; VPNsUnterLinux: Vergleich der unter Debian Linux verfügbaren
VPN-Pakete

== Sicherheit ==

Sicherheitsfanatiker sollten sich nicht für PPTP entscheiden.
Probleme mit PPTP können aber soweit ich gelesen habe, nur
auftreten, wenn ein Hacker die ersten beiden Pakete der
Kommunikation abfangen kann. (Es gibt da z.B. einen Fall an einer
Uni, an der ein Funknetz betrieben wurde.)

Die Verschlüsselung bei PPTP wird nicht von PPTP erledigt, sondern
von PPP, das letztlich die Verbindung erzeugt. Also kann man die
für PPP möglichen Verschlüsselungsalgorithmen benutzen. (Diese sind
allerdings aufgrund von Exportbeschränkungen und Lizenzproblemen im
Standard-pppd eingeschränkt. Man sollte eine gepatchte Version
benutzen.)

Das eigentliche Sicherheits-Problem dürfte jedoch weniger die
Authentifizierung des Clients sein als vielmehr die Tatsache, daß
ich einen Client in mein Netz lasse, den ich unter Umständen nicht
so unter Kontrolle habe wie meine eigenen Rechner. Wenn sich z.B.
ein Außendienstler ins VPN einloggt, um seine interne Mail
abzuholen und auf dem Intranet-Webserver zu sehen, was es neues
gibt, habe ich plötzlich einen Rechner im Netz, auf dem gestern
abend noch lustig ohne Firewall im Internet gesurft wurde, auf dem
alle möglichen aus dem Netz geholten Spiele ausprobiert wurden und
auf dem weissgottwieviele Viren und Trojaner sitzen könnten. Also
ist bei der Firewall darauf zu achten, daß die VPN-Verbindungen
immer als unsichere Hosts gelten und bei Diensten, die der
Außendienst braucht (z.B. Mailserver) alle Vorkehrungen gegen
Mißbrauch getroffen werden.


== Links ==

* [http://www.linux.org/docs/ldp/howto/VPN-HOWTO/ VPN-Howto]
* [http://www.linuxsecurity.com/docs/LDP/VPN-Masquerade-HOWTO.html
VPN-Masquerading-HOWTO]

== Bücher ==

Virtuelle Private Netzwerke , O'Reily Verlag , ISBN 3897211238

[{Tag VPN}]