Was ist überhaupt ein VPN?
"Virtual Private Network (deutsch „virtuelles privates Netzwerk“; kurz „VPN“) ist eine Schnittstelle in einem Netzwerk und hat zwei unterschiedliche Bedeutungen.
Das konventionelle VPN dient dazu, Teilnehmer eines privaten (in sich geschlossenen) Netzes an ein anderes privates Netz zu binden.[1] Sobald also ein Computer eine VPN-Verbindung aufbaut, ist der Vorgang vergleichbar mit dem Umstecken seines Netzwerkkabels von seinem ursprünglichen Netz an ein anderes (per VPN zugeordnetes) Netz.
So kann beispielsweise ein Mitarbeiter von Zuhause aus Zugriff auf das Firmennetz erlangen, gerade so, als säße er mittendrin. Aus Sicht der VPN-Verbindung wird dafür das ursprüngliche Netz auf die Funktion eines Verlängerungskabels reduziert, das den VPN-Teilnehmer ausschließlich mit dem zugeordneten Netz verbindet. Technisch gesehen geht die Verbindung hin zu einem VPN-Gateway, der Anschlussstelle des zugeordneten Netzes. Dafür muss das VPN-Gateway von dem ursprünglichen Netz aus erreichbar sein. Gibt es auf dem Weg dorthin weitere dazwischen liegende Netze, dann werden auch diese bildlich gesehen zum Bestandteil des Verlängerungskabels.
Dieser Vorgang, dass ein VPN-Teilnehmer (VPN-Partner) zum Teilnehmer des zugeordneten Netzes wird, funktioniert unabhängig von der physischen Topologie und den verwendeten Netzwerkprotokollen selbst dann, wenn das zugeordnete Netz von einer vollkommen anderen Art ist.[1]
Der sich daraus ergebende Nutzen eines VPNs kann je nach verwendetem VPN-Protokoll durch eine Verschlüsselung ergänzt werden, die eine abhör- und manipulationssichere Kommunikation zwischen den VPN-Partnern ermöglicht." Zitat: Wikipedia
############################################################################
Einrichten des Servers
Aktualisierung des Pi’s
Als erstes wird sich wieder mit dem SSH-Client auf den Pi geschalten (siehe Start Up). Um diese Aktualisierung durchzuführen benötigt man „Superrechte“. Diese Rechte erwirbt man mit dem Befehl:
sudo -i
Danach
kann die Aktualisierung durchgeführt werden mit dem Befehl:
apt-get update
Oder man führt die Aktualisierung mit dem Befehl aus:
sudo apt-get update
apt-get update |
Die entsprechenden Dateien wurden jetzt heruntergeladen und müssen nun installiert werden.
apt-get upgrade -y
Installation des Servers
Den Server erhält man durch
apt-get install openswan
Es folgt nun ein Bildschirm, der uns sagt, dass es einfacher ist mit Zertifikaten für die Authentifizierung zu nutzen als Passwörter. Das lehnen wir erstmal höflich ab. Wir können, wenn wir möchten, im Nachgang immer noch mit Zertifikaten arbeiten.
openswan |
Im darauffolgenden Bildschirm wird zwar ein Zertifikat erstellt, da aber keine weiteren Daten abgefragt werden, bleibt dies ohne Auswirkungen und wir konnten es beruhigt verneinen.
leeres Zertifikat |
IPsec.conf
Als nächstes wird die IPsecconf-Datei kopiert.
cp /etc/ipsec.conf
/etc/ipsec.conf.orig
Es wird die Datei kopiert und nach ipsec.conf.orig
verschoben.
Danach wird die alte Datei gelöscht
rm /etc/ipsec.conf
Als nächstes wird sie neu erstellt
nano /etc/ipsec.conf
Wenn diese Befehle abgearbeitet sind erscheint die leere Datei, welche wir mit folgendem Quellcode füttern:
*************************ANFANG*************************
version 2.0
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
oe=off
protostack=netkey
conn
L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn
L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=1h
type=transport
left=DEINE_IP_HIER
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
****************************ENDE*************************
Die Konfiguration ist so eingestellt, dass sie jegliche Art
von privaten Netzwerken abdeckt. Das heißt die 10.0.0…, 192….., und 172…..
Eine Änderung muss aber in diesem Quellcode noch erfolgen.
Die Zeile „left=DEINE_IP_HIER“ muss mit der IP-Adresse des Pis ersetzt werden,
sodass dann die Zeile so aussieht: left=192.168.XXX.XXX (die X bitte mit der genauen Adresse deines Pi's ersetzen)
Danach wird die Datei mit Strg+O gespeichert und mit Strg+X
das Menü verlassen.
IPsec.secrets
Weiter geht's mit
apt-get install xl2tpd
Nachfrage wieder bestätigen.
Jetzt müssen wir dem Pi sozusagen unser Geheimnis verraten. In diesem Fall ist es das Passwort. Dafür wird erst eine neue Datei angelegt.
nano /etc/ipsec.secrets
Das ganze sieht dann so aus
ipsec.secrets |
Innerhalb dieser Datei wird die Verschlüsselung festgelegt
und die folgende Zeile eingefügt werden.
192.168.XXX.XXX %any: PSK
„dasbestepasswort“
Nicht vergessen, auch hier die korrekte IP-Adresse von eurem Pi angeben.
Die PSK (Pre Shared Key) ist der Schlüssel, welche IPsec
benutzt um die Pakete zu veschlüsseln. Um die Eingabe zu bestätigen, wieder
Strg+O und Strg+X.
xl2tpd
Falls unsere Machenschaften einmal kräftig daneben gehen sollten wir uns vorbereiten eventuelle Fehler wieder auszubügeln. Das machen wir indem die Datei xl2tpd als erstes kopiert wird.
cp /etc/xl2tpd/xl2tpd.conf
/etc/xl2tpd/xl2tpd.conf.orig
Die alte wird gelöscht
rm
/etc/xl2tpd/xl2tpd.conf
und eine neue erstellt
nano /etc/xl2tpd.conf
Diese Datei weiß noch nicht was sie machen soll, also geben wir ihr einen leicht verdaulichen Code:
**************************ANFANG***************************
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
ipsec verify
/etc/init.d/ipsec restart
aptitude install xl2tpd
[global]
ipsec saref = yes
[lns default]
ip range = 192.168.XXX.XXX-192.168.XXX.XXX
local ip = 192.168.XXX.XXX
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
**************************ENDE***************************
Diesen Code müssen wir noch ein bisschen anpassen.
Bei dem Feld "ip range" gebt ihr die Range von eurem DHCP ein. Diese findet ihr im Konfigurationsmenü eures Routers. Die "local IP" ist die IP eures Pi's.
Danach speichern und die Datei wieder verlassen.
Installation von ppp
apt-get install ppp
Es wird eine neue Datei angelegt mit:
nano /etc/ppp/options.xl2tpd
Hier wurde zuvor keine Sicherheitskopie erstellt, da diese
Datei noch nicht existierte.
Jetzt haben wir wieder eine hunrige Datei, die auf unseren Code wartet:
*************************ANFANG******************************
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
***********************ENDE***********************************
Die beiden o. g.
DNS-Server sind von Google. Wenn man den seines Providers oder seinen
eigenen benutzen möchte, so braucht man ihn bloß hier noch einzutragen.
Speicher und Verlassen
Einrichtung der Benutzer
Damit wir Benutzer anlegen können fehlt uns noch eine Datei. Diese erstellen wir mit:
nano /etc/ppp/chap-secrets
So sollte dann die ganze Sache aussehen
chap-secrets |
Es werden Benutzer wie folgt festgelegt:
Benutzername Server (l2tpd) Passwort IP-Adresse
Zum Beispiel
Superhero l2tpd geilesPasswort *
Das * bedeutet, dass dieser User von überall zugreifen darf. Wenn man da eine konkrete IP einträgt, dann hat dieser User auch nur von dieser IP Zugriff auf das VPN.
Abschließende Konfiguration
Wir bearbeiten die Einstellungen, die der Pi bei jedem Start vornimmt.
nano /etc/rc.local
rc.local |
Der Cursor muss vor exit 0 platziert werden und folgender Code eingefügt werden.
******************************ANFANG****************************
iptables --table nat --append POSTROUTING --jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart
****************************ENDE*********************************
iptables --table nat --append POSTROUTING --jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart
****************************ENDE*********************************
Um die ganze Geschichte aktiv zu schalten müssen wir den Pi einmal neustarten.
shutdown -r now
Am Router müssen noch die Ports TCP: 1701 und UDP: 500, 4500 auf den Pi geleitet werden und dann funktioniert euer VPN-Server! Herzlichen Glückwunsch!
Ein kleiner Hinweis noch am Schluss: Windows 8 hat anscheind Probleme mit IPsec und l2tpd. Ohne Probleme funktioniert es mit Windows 7.
Keine Kommentare:
Kommentar veröffentlichen