OpenVPN Server unter OpenWRT White Russian aufsetzen



Konfiguration des Servers

Zunächst installieren wir OpenVpn auf dem Router mit
ipkg install openvpn

Dann müssen wir folgende Dateien auf dem Router anlegen:
/etc/openvpn/openvpnServer.conf
/etc/init.d/S95Openvpn

In der Datei openvpnServer.conf müsst Ihr noch einstellen, welche IP der Router im neuen verschlüsselten Netz haben soll. (z.B. 192.168.138.1) Dort könnt Ihr auch einstellen, ob sich die mit dem VPN verbundenen Rechner (Clients) untereinander erreichen können sollen, oder ob jeder verbundene Rechner ausschließlich den Router erreichen soll.




Konfiguration der Firewall

Damit die Firewall unseres Routers Verbindungen aus dem Internet zum VPN akzeptiert, und damit das VPN selber auch nicht blockiert wird müssen wir ein paar Zeilen in der Datei /etc/firewall.user ergänzen. Öffnet die Datei mit vi /etc/firewall.user
Drückt die Taste i, um in den Schreibmodus zu wechseln,
geht mit der PfeilUnten Taste ans Ende der Datei, und fügt folgende Zeilen ein:
iptables -t nat -A prerouting_wan -p udp --dport 1194 -j ACCEPT
iptables -A input_wan -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT

Um den Schreibmodus wieder zu verlassen drückt Escape. Dann gebt

:wq

ein. Das sollte dann in der untersten Zeile geschrieben werden und bestätigt mit Enter. Damit fordert Ihr den vi auf zu speicher und das Programm zu beenden.
Startet eure Firewall neu mit /etc/init.d/S35firewall restart, dann sollte alles laufen.




Erstellen der Zertifikate

Hierfür ist es wichtig, dass die Systemzeit richtig gesetzt ist. Das haben wir ja bereits mit unserem NTPClient gemacht.
Zuerst müssen wir auf dem Router ein paar Verzeichnisse und Dateien anlegen.
mkdir /etc/openvpn/certs
cd /etc/openvpn/certs
mkdir demoCA
mkdir demoCA/newcerts
mkdir demoCA/private
touch demoCA/index.txt
echo "01" >> demoCA/serial

Jetzt kommt das eigentlich Erstellen der Zertifikate. Wir brauchen 2 allgemeine Zertifikate, die jeder bekommt, 1 speziell für den Server und 1 für jeden Rechner der sich im VPN anmelden können soll.

Zuerst mal die allgemeinen und das Server Zertifikat:
openssl req -nodes -new -x509 -days 1825 -keyout ca.key -out ca.crt;
openssl dhparam -out dh.pem 1024;
openssl req -nodes -new -keyout server.key -out server.csr;
openssl ca -cert ca.crt -keyfile ca.key -out server.crt -in server.csr;

Bei diesen Befehlen wird von uns verlangt Informationen einzugeben. Die einzig wirklich relevante Information, die man hier eingeben sollte ist der jeweilige Name (also nicht eurer sonder einfach "server").

openssl req -nodes -new -keyout NameDesClients.key -out NameDesClients.csr;
openssl ca -cert ca.crt -keyfile ca.key -out NameDesClients.crt -in NameDesClients.csr;

Diese beiden Befehle sind für jeden gewünschten Client zu wiederholen, mit verschiedenen Namen für die Clients. Auch hier wird jeweils verlangt Informationen preiszugeben. Einfach alles mit Enter überspringen bzw. als Default setzen. Nur beim Namen muss wieder der jeweilige name des Clients angegeben werden.




Verteilen der Zertifikate

Jeder sollte aus Sicherheitsgründen auch nur die Zertifikate bekommen, die er braucht. Auf dem Server bleiben nur folgende Dateien (in /etc/openvpn/certs) liegen:
server.key
server.csr
server.crt
dh.pem
ca.key
ca.crt
NameDesClient.csr
NameDesClient.crt

Alle restlichen Dateien sollten gelöscht werden, nachdem die jeweiligen Dateien an die Clients weitergegeben wurden.
Die Clients bekommen jeweils folgende Dateien:
ca.crt
dh.pem
NameDesClient.crt
NameDesClient.key

Diese Dateien werden an eine geeignete Stelle des Clients gelegt, z.B. unter Linux /etc/openvpn/certs. Unter Windows macht es einem das Leben leicht wenn man sie in das gleiche Verzeichniss legt, in dem auch die openvpn.exe liegt.




Konfiguration der Clients

Linux Client

Ladet die Dateien
openvpnLinuxClient.conf
/etc/init.d/Openvpn
auf euren Client.
Macht die Init Datei ausführbar:
chmod +x /etc/init.d/Openvpn

Windows Client

Ladet die Dateien
PfadZurKonfigurationvonOpenVPN\openvpnWindowsClient.conf
Autostart\openvpn.bat
Autostart\pingVpn.bat

notwendige Änderungen der konfigurationsdateien der Clients

In der Datei /etc/openvpn/openvpnLinuxClient.conf müsst Ihr noch eure Daten ergänzen:
EuerDynDnsHostname: Da gehört die Internetadresse rein unter der man euren Router aus dem Internet erreichen kann. Wenn der Client für den Ihr das gerade konfiguriert im gleichen lokalen Netzwerk wie euer Router steht, gebt dort die IP des Routers ein; nicht die, die der Routerim VPN hat, sondern, die über die ihr z.B. die WebOberfläche erreicht.
ClientIP: Da schreibt Ihr die IP rein die dieser Client im VPN haben soll. Sie muss in den ersten drei Zahlen mit der IP übereinstimmen, die Ihr dem Router in seiner Konfigurationsdatei gegeben habt.
ClientName: Der NameDesClients den Ihr oben beim "Erstellen der Zertifikate" angegeben habt.



So jetzt haben wir ein Virtuelles Privates Netzwerk aufgesetzt. Wir brauchen nur noch eine Verwendung dafür ;) Also weiter zur Installation von asterisk