Hier wird jetzt gezeigt wie man den PI als VON Gateway für sein Netzwerk konfiguriert.
User können nachher Zertifikatbasiert über den VPN Server auf euer Netzwerk zugreifen.
Das ganze funktioniert auch Wunderbar mit dem OpenVPN Clienten für Android.
Was richten wir ein ?
Wir richten einen VPN Tunnel über ein TUN Device über UDP.
Hiermit wird im Tunnel Layer3 genutzt. Schafft ein paar Vorteile, aber hat sicher auch Nachteile.
Warum UDP und nicht TCP ?
Innerhalb des Tunnel wird TCP gesprochen, also werden Pakete gesichert zugestellt.
Daher brauchen wir für den Tunnel kein TCP, UDP reicht.
Was benötigen wir ?
1. Einen Account bei einem DynDNS Dienst
2. Eine Port Weiterleitung auf dem Router
3. Eine Additional Route auf dem Router
4. Eine feste IP für den PI
Angenommene Ausgangskonfiguration :
Euer Netzwerk : 192.168.2.0/24
Das VPN : 10.0.0.0/24
IP des Router : 192.168.2.1
IP des PI : 192.168.2.10
UDP Port des VPN : 4624 # wir benutzen NICHT die Standartports !!
Bei bedarf die IP Adressen anpassen.
Vorbereitung des DSL Router:
Meldet euch auf euerem Router an und richtet ein Portforwarding ein.
Port UDP 4624 nach 192.168.2.10 4624 UDP
Jetzt machen wir dem Router noch das neue Netzwerk (VPN Netz) bekannt.
Dazu müssen wir eine Statische Route hinzufügen.
Bei der FB7170 findet sich das unter :
Heimnetz->Netzwerk->Netwerkeinstellungen->IP-Routen
Hier fügen wir nun das neue Netz ein :
Netzwerk 10.0.0.0
Netzmaske 255.255.255.0
Gateway 192.168.2.10
Was haben wir gemacht ?
Eure Geräte im Netzwerk kennen nur die 192.168.2.xxx er Adressen.
Alles was nicht in diesem Netzwerk ist wird nun an den Router geschickt.
Der Router leitet im normalfall jetzt alles ins Internet.
Jetzt aber weis er das er die Pakete für das 10.0.0.xxx nicht ins Internet sondern an die 192.168.2.10, euren PI schicken soll.
Der leitet das nun weiter ins VPN.
Anders herrum, vom VPN zum 192.168.2.xxx muß auch eine Route gesetzt werden, das macht aber der VON Client nachher für euch.
Kurz vorweg :
Ich nutze kein Sudo, ich benutze su.
Warum ?
Zum Erlangen von Adminrechten benötigt sudo das Userpasswort, su hingegen das Admin Passwort.
Wer nun mein Userpasswort in die Finger bekommt kann noch lange nicht als Root auf den PI.
Per Default disable ich auch den User PI und lege mir einen eigenen User an, welcher auch nicht in der suoers list steht.
Wer mag :
sudo adduser imperator # Den neuen User anlegen
sudo passwd root # Das Root Passwort ändern
logout
Neu Anmelden
su
Passwort : <hier das root passwort>
usermod -L pi # Sperrt den User pi
Jetzt geht es los mit dem PI :
Erst einmal sorgen wir dafür das der PI auch Routen kann.
Damit das nach einem Reboot noch vorhanden ist :
Dann suchen wir diesen Eintrag und entfernen die # davor.:
Speichern nicht vergessen
Diejenigen die iptables aktiv haben sollten noch folgende Regeln setzen.
Alle anderen oder die nicht es nicht genau Wissen ignorieren es erst mal.
Openssl und Openvpn installieren.
Nun legen wir das Verzeichnis für die Zertifikate an :
Jetzt kopieren wir den Order easy-rsa in unser Openvpn Verzeichnis
Das Verzeichnis sollte hier zu finden sein : /usr/share/doc/openvpn/examples/
Jetzt editieren wir die Datei VARS und passen einige Werte an
Folgende Werte werden gesetzt :
export KEY_SIZE=1024
export CA_EXPIRE=365
export KEY_EXPIRE=365
export KEY_COUNTRY="DE"
export KEY_PROVINCE="NRW"
export KEY_CITY="meine Stadt"
export KEY_ORG="meine OU"
export KEY_EMAIL="Email des Server"
Jetzt können wir das erste Zertifikat erstellen :
Wir bauen die CA
Wir beantworten jetzt brav alle Fragen oder übernehmen die Voreinstellungen.
ACHTUNG !! DER COMMON NAME DARF IN KEINEM ANDEREN ZERTIFIKAT VORKOMMEN !!
Jetzt erstellen wir das Zertifikat und den Key des Server
Auch hier beantworten wir alles Brav und bestätigen am Ende 2x mit y
Jetzt die Zertifikate für den ersten User :
Aber Achtung !
Der Common Name darf nicht der des Server sein.
Auch Name und Email sollte man jetzt auf den Benutzer angepasst ändern.
Fast fertig
jetzt noch den dh, das dauert etwas, also Kaffee holen
Jetzt erstellen wir die openvpn_ssl.conf
folgenden Inhalt sollte diese haben :
dev tun
proto udp
port 4624
server 10.0.0.0 255.255.255.0
mode server
ifconfig 10.0.0.2 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
tls-server
dh /etc/openvpn/certstore/dh1024.pem
ca /etc/openvpn/certstore/ca.crt
cert /etc/openvpn/certstore/pivpn.crt
key /etc/openvpn/certstore/pivpn.key
push "route 10.0.0.0 255.255.255.0"
push "route 192.168.2.0 255.255.255.0"
cipher AES-256-CBC
user nobody # Nur Linux
group nogroup # Nur Linux
status /etc/openvpn/openvpn-status.log
comp-lzo
verb 3
keepalive 10 120
persist-key
persist-tun
script-security 2
Alles anzeigen
Jetzt kopieren wir noch die benötigten Dateien
dh1024.pem
ca.crt
pivpn.crt
pivpn.key
von /etc/openvpn/easy-rsa/2.0/keys/
nach /etc/openvpn/certstore/
nun können wir den Server neu starten
in einer zweiten Console kann man das Log beobachten
Jetzt sollte der Server laufen und auf eine Verbindung warten.
Zum Clienten :
der Client benötigt folgende Dateien aus /etc/openvpn/easy-rsa/2.0/keys/
ca.crt
<username>.crt
<username>.key
Username ist der welchenwir oben bei ./build-key <username> angegeben haben.
Diese Kopieren wir erst mal an einen sicheren Ort, z.B. ~/openvpnkeys
Jetzt brauchen wir noch die Client Config.
nano ~/openvpnkeys/pi.ovpn
[code]
Diese kann man nehmen, wir müssen nur etwas anpassen.
[code]
client
dev tun
proto udp
remote <eure DynDns Adresse> 4624
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert <username>.crt
key <username>.key
ns-cert-type server
cipher AES-256-CBC
comp-lzo
verb 3
script-security 2
Alles anzeigen
Jetzt sollten wir 4 Dateien im Sicherungsverzeichnis haben:
Diese werden jetzt auf den Clienten gepackt und importiert.
Der Client kann Linux, Windows oder auch Android sein.
Folgendes aus dem Kopf, könnte abweichen :
Windows :
den Installer runter laden :
http://openvpn.net/index.php/download.html
Installieren.
Jetzt im Startmenü Start->Programme->OpenVPN->OpenVPN configuration file directory öffnen
Es öffnet sich ein Ordner, dort die vier Dateien hinein kopieren.
Die GUI Starten, Icon neben der Uhr.
Rechts anklicken und das VPN starten.
(Unter Windows 7 muß die GUI als Amin gestartet werden.)
Debian Gnome
Die vier Files in das eigene HOME kopieren.
Installieren mit allen Abhängikeiten.
Dann das Netzwerksymbol oben links anklicken.
VPN Verbindungen -> konfigurieren
Verbindung importieren
*.ovpn im HOME auswählen.
Übernehmen, fertig
Kann jetzt über den Netzworkmanager gestartet werden.
Debian Console, ohne GUI
Installieren mit allen Abhängikeiten.
Die vier Dateien nach /etc/openvpn kopieren
Autostart des Clienten configurieren :
Hier Editieren
# Start only these VPNs automatically via init script.
# Allowed values are "all", "none" or space separated list of
# names of the VPNs. If empty, "all" is assumed.
# The VPN name refers to the VPN configutation file name.
# i.e. "home" would be /etc/openvpn/home.conf
#
#AUTOSTART="all"
#AUTOSTART="none"
#AUTOSTART="home office"
AUTOSTART="none"
der Client wird nicht automatisch gestartet.
um die VPN Verbindung aufzubauen geben wir folgendes ein :
Wer Autostart möchte muß folgendes eingeben
AUTOSTART="<namederdatei>"
Der Client startet automatisch nach dem Boot.
Der Android Client ist selbsterklärend.
Auch hier müssen die vier Files auf das Smartphone.
Dann im Clienten einfach die *.ovpn importieren.
Entdeckte Fehler bitte Posten, Danke.
[/code][/code]