Privates VPN mit fastd

Aus Freifunk Kiel
Wechseln zu: Navigation, Suche

Um aus dem Freifunk auf dein privates Netzwerk zugreifen zu können ist nicht besonders viel Arbeit notwendig.

Zu erst installieren wir auf unserem Desktop fastd und gehen wir folgt vor.


Vorbereitung

Wir erstellen uns zwei asymetrische Schlüssel für fastd. Ob wir dies auf unserem Desktop oder Router machen ist vollkommen egal. Gespeichert wird hier noch nichts.

# fastd --generate-key
2013-08-27 09:46:23 +0200 --- Info: Reading 32 bytes from /dev/random...
Secret: 18a8020a5a14f730d035cb692bce1972ff9bec29fa33286c8a60e9f420ff3251
Public: 2846f379829d8008686ed65b7592619cf8adc50872d0db09afe92108e38623a2
# fastd --generate-key
2013-08-27 09:47:09 +0200 --- Info: Reading 32 bytes from /dev/random...
Secret: e016583533920f5633df2b0fc8dba4666392c93c43bf009d96c70eb7d7da986d
Public: 4d81ecb7563d85062572e40403f39dd1cbd511c516d8fc77466ef8f630f178c7

Danach muss die IPv6-Adresse des Freifunk Routers notiert werden. Dafür müssen wir uns auf dem Freifunkrouter einloggen.

# ifconfig br-freifunk
br-freifunk Link encap:Ethernet  HWaddr 64:70:02:F7:3E:F6  
          inet6 addr: fda1:384a:74de:4242:6670:2ff:fef7:3ef6/64 Scope:Global
          inet6 addr: fe80::6670:2ff:fef7:3ef6/64 Scope:Link
          ...

Erstellen der configs

Mithilfe dieser 2 Schlüssel und der IPv6 legen wir nun folgende Configs an.

ACHTUNG!: Werden die Keys aus diesem Beispiel 1 zu 1 übernommen, kann sich jeder in eurer privates Netzwerk einloggen! Also bitte erst den Punkt "Vorbereitung" durchgehen und ausschließlich die selbst generierten Keys verwenden!

Die 192.168.178.1 in der Config für den Desktop stellt mein privates Fritzbox Lan Gateway dar. Je nach Netzwerk muss hier 192.168.0.1, 192.168.1.1 oder evtl. etwas ganz anderes rein.


Config für den Desktop:

/etc/fastd/priv_vpn_desktop.conf

interface "privatesVPN";
mode tap;
method "xsalsa20-poly1305";
mtu 1280;
secret "18a8020a5a14f730d035cb692bce1972ff9bec29fa33286c8a60e9f420ff3251"; #Private Key 1

peer "FreifunkRouter" {
  remote [fda1:384a:74de:4242:6670:2ff:fef7:3ef6]:13337;         #IPv6 d. Routers
  key "4d81ecb7563d85062572e40403f39dd1cbd511c516d8fc77466ef8f630f178c7";  #Puplic Key 2
}


on up "
  ip link set up $INTERFACE
";

on establish "
  dhclient privatesVPN
  ip route add default via 192.168.178.1 #Privates GW
";


Config auf dem Router:

/etc/fastd/priv_vpn_router.conf

interface "privatesVPN"; bind any:13337;
mode tap;
method "xsalsa20-poly1305";
mtu 1280;
secret "e016583533920f5633df2b0fc8dba4666392c93c43bf009d96c70eb7d7da986d"; #Private Key 2

peer "Desktop" {
  key "2846f379829d8008686ed65b7592619cf8adc50872d0db09afe92108e38623a2"; #Puplic Key 1
}


on up "
  ip link set up $INTERFACE
  brctl addif br-wan privatesVPN
";

Starten von fastd

Dazu loggen wir uns per SSH auf dem Router ein.

fastd -c /etc/fastd/priv_vpn_router.conf -d

Fastd wird nun im Hintergrund ausgeführt.


Auf dem Desktop:

fastd -c /etc/fastd/priv_vpn_desktop.conf

Ab jetzt können wir im gesamten Freifunk Netzwerk über unsere eigene DSL-Leitung surfen.

Autostart

Soll fastd automatisch beim booten gestartet werden, ist ein init script erforderlich.

Dafür erstellen wir auf dem Router unter /etc/init.d/fastd_priv eine neue Datei mit folgendem Inhalt.

START=99
 
start() {        
        echo start
        fastd -c /etc/fastd/priv_vpn_router.conf -d
}      

Und vergeben die nötigen Rechte.

# chmod 755 /etc/init.d/fastd_priv
# ls -l /etc/init.d/fastd_priv
-rwxr-xr-x    1 root     root           280 Aug 27 13:06 /etc/init.d/fastd_priv

Nun muss nur noch die init-Datei aktiviert werden.

# /etc/init.d/fastd_priv enable

Weiterführendes

Erklärung der configs

Desktop

interface "privatesVPN";

Name des neuen Interfaces. Wird hier nichts definiert, erstellt fastd einfach eines mit dem Namen "tap0".


mode tap;

tap: VPN auf Layer 2. (MAC Adressen)

tun: VPN auf Layer 3. (IP-Adressen)


method "xsalsa20-poly1305";

Verschlüsselungsalgorithmus.


mtu 1280;

Maximum Transfer Unit.


secret "18a8020a5a14f730d035cb692bce1972ff9bec29fa33286c8a60e9f420ff3251"; #Private Key 1

Privater Schlüssel.


peer "FreifunkRouter" {
  remote ipv6 [fda1:384a:74de:4242:6670:2ff:fef7:3ef6]:13337;         #IPv6 d. Routers
  key "4d81ecb7563d85062572e40403f39dd1cbd511c516d8fc77466ef8f630f178c7";  #Puplic Key 2
}

Server des fastd VPN. In der config gibt es keine richtige definition, welcher Teilnehmer Server oder Client ist.

Der Einzige unterschied besteht darin, dass auf der Clientseite die IP-Adresse und der Port des fastd Servers definiert werden müssen.


on up "
  ip link set up $INTERFACE
";

Hier können Befehle definiert werden, die nach start von fastd ausgeführt werden sollen.


on establish "
  dhclient privatesVPN
  ip route add default via 192.168.178.1 #Privates GW
";

Die hier definierten Befehle werden erst nach dem Aufbau der VPN Verbindung ausgeführt.

Hier holt sich der Desktop über das aufgebaute Interface eine IP-Adresse und definiert deinen Lan-Gateway zum Standard.


Server

Die config ist ziemlich gleich aufgebaut.

on up "
  ip link set up $INTERFACE
  brctl addif br-wan privatesVPN
";

Der einzige große unterschied besteht darin, dass beim starten von fastd das neue Interface mit dem WAN-Interface des Freifunk Routers gebridged wird.

D.h. alle Pakete, die eurer Desktop an das "privatesVPN" Interface schickt, landen bei euch zuhause im Lan.


Wurde fastd gestartet?

netstat -tulpen

Lauscht hier ein fastd auf Port 13337, kann davon ausgegangen werden das fastd noch läuft.


Vorteile

1. Dein Traffic wird verschlüsselt bis zu dir nach Hause übertragen.

Weder die Betreiber der Freifunk Gateways noch die anonymisierungs Provider, durch die wir den Traffic leiten, kann nun in deinen Traffic schauen.

2. Du entlastest die Gateways der Freifunk Community.

Wenn du dich im Funkgebiet deiner eigenen Freifunkwolke aufhältst, wird der Traffic nicht mehr durch die Gateways geleitet.

Damit entlastet du sowohl unsere Server, als auch die anonymisierungs Provider, für die wir finanziell aufkommen müssen.

3. Kein eigenes Wlan mehr nötig

Theoretisch kannst du nun dein eigenes Wlan abschalten.

Sobald du dich in deiner Freifunkwolke befindest und den fastd Tunnel anschaltest, routet dein Freifunkrouter den Traffic in dein Lan, als würdest du dich in deinem alten Wlan Netzwerk befinden.