OpenVPN-Site-to-Site-Bridged-German

From DD-WRT Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 12:46, 18 March 2018 (edit)
Ian5142 (Talk | contribs)
(Moved to make use of Languages.)
← Previous diff
Current revision (21:29, 5 January 2019) (edit) (undo)
Ian5142 (Talk | contribs)
(Added Redirect.)
 
(7 intermediate revisions not shown.)
Line 1: Line 1:
-==Moved==+#REDIRECT [[OpenVPN_-_Site-to-Site_Bridged_VPN_Between_Two_Routers/de]]
-The page has been moved here:+
- +
-== Überblick ==+
- +
-Die folgenden Skripte laufen bei mir auf 4 Linksys WRT54GL Routern, welche auf DD-WRT v23 SP3 geflasht sind.+
-Auf den Windows-PC Clients läuft OpenVPN v2.0.9 mit dem GUI (zu bekommen unter http://openvpn.se/download.html).+
-Die dd-wrt Konfigurationen müssen in Administration/Commands (http://dd-wrtrouter/Diagnostics.asp) als Startupscript gespeichert werden.+
- +
-== Zertifikate ==+
- +
-Diesen Teil übernehme ich komplett aus der Anleitung für ein Routed-VPN.+
-Die Zertifikate sollen wenn möglich auf einem Windows-XP Computer erstellt werden. Unter Vista spielt die UAC (User Account Control) irgendwie nicht so mit. Mir war es zumindest nicht möglich mit eingeschalteter UAC die notwendigen Schreibrechte etc. zu vergeben um die Zertifakte erstellen zu können. Unter XP ist das definitiv leichter.+
- +
-== Zertifikate ==+
-=== Erstellung von den notwendigen Zertifikaten unter Windows ===+
- +
-* Dos-Fenster öffnen:<br />+
- +
- Start+
- Ausführen+
- "cmd"+
- OK+
- +
-* Vorlagen erzeugen<br />+
- +
-vars.bat und openssl.cnf aus den Beispielen erzeugen<br />+
-<br />+
- >c: +
- >cd \programme\openvpn\easy-rsa +
- >init-config +
- +
-* Variablen anpassen<br />+
- +
- >notepad vars.bat +
- +
-set KEY_COUNTRY=DE<br />+
-set KEY_PROVINCE=Berlin<br />+
-set KEY_CITY=Berlin<br />+
-set KEY_ORG=PrivatPerson<br />+
-set KEY_EMAIL=mymail@gmx.net<br />+
- +
-Danach die Datei speichern und den Editor beenden.<br />+
- +
-* Erstellen der Keys<br />+
- +
- >vars+
- >clean-all+
- >build-ca+
-hier alle Angaben bestätigen außer:<br />+
-Eingabe "ca" (ohne Anführungsstriche) bei Organisational Unit Name<br />+
-Eingabe "ca" (ohne Anführungsstriche) bei Common Name<br />+
- +
- >build-dh +
- >build-key-server server1 +
-hier alle Angaben bestätigen außer:<br />+
-Eingabe "server1" (ohne Anführungsstriche) bei Organisational Unit Name<br />+
-Eingabe "server1" (ohne Anführungsstriche) bei Common Name<br />+
-Eingabe "y" (ohne Anführungsstriche) bei Sign the Certificate?<br />+
-Eingabe "y" (ohne Anführungsstriche) bei 1 of 1 certificate requests certi<br />+
- +
- >build-key client1 +
-hier alle Angaben bestätigen außer:<br />+
-Eingabe "client1" (ohne Anführungsstriche) bei Organisational Unit Name<br />+
-Eingabe "client1" (ohne Anführungsstriche) bei Common Name<br />+
-Eingabe "y" (ohne Anführungsstriche) bei Sign the Certificate?<br />+
-Eingabe "y" (ohne Anführungsstriche) bei 1 of 1 certificate requests certified, commit?<br />+
- +
-'''Dieser Schritt muss für jeden Client den man verbinden will wiederholt werden! Jeweils mit anderen Namen (z.B. client1, client2, mobile1, mobile2, etc...)'''+
-* Client-Keys in eigenes Verzeichnis kopieren<br />+
- +
- >md austausch +
- >cd keys +
- >copy client1.crt ..\austausch +
- >copy client1.key ..\austausch +
- >copy ca.crt ..\austausch +
- >cd .. +
- +
-Der Inhalt des Ordners austausch kann / muss jetzt an die Clients versendet werden.<br />+
-Die besten Übermittlungswege sind Diskette, USB-Stick oder ein verschlüsselter Datentransfer mit IM oder E-Mail (PGP, S-MIME).<br />+
- +
-Diesen Teil der Anleitung haben wir selbst von folgender Seite übernommen:<br />+
-http://www.openvpn-forum.de/ext/VPN-Server.html<br />+
-<br />+
-Danke an dem Ersteller dieser Anleitung<br />+
- +
-== Konfiguration ==+
- +
-=== IP-Adresse vergeben ===+
- +
-Nachdem wir ein Bridged-VPN erstellen wollen, müssen alle Router eine IP-Adresse aus dem selben Pool bekommen, und auch an die Clients welche aus diesem Pool verteilen. Es darf aber natürlich keine IP-Adresse doppelt vorkommen, weil das zu Konflikten führen würden. Ich zeige hier die Einstellungen für den Adressraum 192.168.0.0-192.168.0.255 (Es kann natürlich jeder beliebiger Pool gewählt werden, nur muss er eben konsequent eingehalten werden.)+
- +
-'''Router der als Server fungiert:'''+
-* IP-Adresse des Routers: 192.168.0.1+
-* DHCP-Startadresse: 192.168.0.50+
-* Max. DHCP-User: 50+
- +
-'''Router der als Client1 fungiert:'''+
-* IP-Adresse des Routers: 192.168.0.2+
-* DHCP-Startadresse: 192.168.0.101+
-* Max. DHCP-User: 49+
- +
-'''Router der als Client2 fungiert:'''+
-* IP-Adresse des Routers: 192.168.0.3+
-* DHCP-Startadresse: 192.168.0.151+
-* Max. DHCP-User: 49+
- +
-Wenn man Mehr als 3 Router ins Netzwerk aufnehmen will, muss man den einzelen Netzwerken einfach kleinere IP-Ranges zuteilen, einfach immer aufpassen, dass es zu keinen Überschneidungen kommt.+
- +
- +
-=== DDNS Eintrag erstellen ===+
- +
-Solltet ihr von eurem ISP einen dynamische IP-Adresse zugewiesen bekommen, müsst ihr dem Router einen DDNS Eintrag verpassen. (Setup/DDNS)+
-Damit können die Clients den Server auch erreichen, wenn ihr eine neue IP-Adresse bekommt.+
- +
-=== Server Konfiguration (WRT54 - Linux) ===+
- +
-'''Es ist zu empfehlen den Server am Standort mit der besten Internetanbindung einzurichten. (Höchster Upload)'''+
- +
- #OpenVPN CFG (Server) 09.01.2008+
- +
- cd /tmp+
- mkdir /tmp/myvpn+
- ln -s /usr/sbin/openvpn /tmp/myvpn/myvpn+
- /tmp/myvpn/myvpn --mktun --dev tap0+
- brctl addif br0 tap0+
- ifconfig tap0 0.0.0.0 promisc up+
- +
- echo "+
- # Tunnel options+
- mode server # Set OpenVPN major mode+
- proto udp # Setup the protocol (server)+
- port 1194 # TCP/UDP port number+
- dev tap0 # TUN/TAP virtual network device+
- keepalive 15 60 # Simplify the expression of --ping +
- daemon # Become a daemon after all initialization+
- verb 3 # Set output verbosity to n +
- comp-lzo # Use fast LZO compression +
- +
- # OpenVPN server mode options+
- client-to-client # tells OpenVPN to internally route client-to-client traffic +
- duplicate-cn # Allow multiple clients with the same common name+
- ifconfig-pool 192.168.0.201 192.168.0.210 255.255.255.0 # Define IP-Pool for OpenVPN clients+
- +
- # TLS Mode Options+
- tls-server # Enable TLS and assume server role during TLS handshake +
- ca /tmp/myvpn/ca.crt+
- dh /tmp/myvpn/dh1024.pem+
- cert /tmp/myvpn/server.crt+
- key /tmp/myvpn/server.key+
- " > /tmp/myvpn/ipsec.config+
- +
- echo "+
- -----BEGIN CERTIFICATE-----+
- <span style="color:#ff0000;">Insert the content of your ca.crt</span>+
- -----END CERTIFICATE-----+
- +
- " > /tmp/myvpn/ca.crt+
- echo "+
- -----BEGIN RSA PRIVATE KEY-----+
- <span style="color:#ff0000;">Insert the content of your server.key</span>+
- -----END RSA PRIVATE KEY-----+
- +
- " > /tmp/myvpn/server.key+
- chmod 600 /tmp/myvpn/server.key+
- echo "+
- -----BEGIN CERTIFICATE-----+
- <span style="color:#ff0000;">Insert the content of your server.crt</span>+
- -----END CERTIFICATE-----+
- +
- " > /tmp/myvpn/server.crt+
- echo "+
- -----BEGIN DH PARAMETERS-----+
- <span style="color:#ff0000;">Insert the content of your dh1024.crt</span>+
- -----END DH PARAMETERS-----+
- " > /tmp/myvpn/dh1024.pem+
- +
- route add -net 192.168.0.0/24 dev br0+
- +
- sleep 5+
- /tmp/myvpn/myvpn --config /tmp/myvpn/ipsec.config+
- +
-Diesen Teil müsst ihr im webfrontend unter '''Administration/Commands'' in das Textfenster kopieren und auf '''Save Startup''' drücken.+
- +
-Der Eintrag +
- duplicate-cn # Allow multiple clients with the same common name+
-ist nur notwendig, wenn ihr für Alle Router/Clients ein einziges Zertifikat verwndet (nicht zu empfehlen, weil wenn jemand diese Zertifikat weiter gibt oder ihr jemanden ausschließen wollt werden alle anderen auch ausgeschlossen!).+
- +
-Weiters müsst ihr folgenden Eintrag wieder in das Textfeld kopieren und diesesmal auf '''Save Firewall''' drücken.+
- +
- iptables -I INPUT -p udp --dport 1194 -j ACCEPT+
- +
-=== Client Konfiguration (WRT54 - Linux) ===+
- +
- +
- #OpenVPN CFG (Client) 09.01.2008+
- +
- cd /tmp+
- mkdir /tmp/myvpn+
- ln -s /usr/sbin/openvpn /tmp/myvpn/myvpn+
- +
- /tmp/myvpn/myvpn --mktun --dev tap0 # initialize tunnel+
- brctl addif br0 tap0 # create a new network-adapter+
- ifconfig tap0 0.0.0.0 promisc up+
- sleep 5+
- +
- echo "+
- client # Set OpenVPN mode to client+
- daemon+
- dev tap0 # TUN/TAP virtual network device+
- proto udp # Set the protocol (udp/tcp)+
- <span style="color:#ff0000;">remote xxx.xxx.xxx 1194 # Set the IP-adress/DNS-entry of the server</span>+
- resolv-retry infinite+
- nobind+
- persist-key+
- persist-tun+
- ca /tmp/myvpn/ca.crt+
- cert /tmp/myvpn/client1.crt+
- key /tmp/myvpn/client1.key+
- ns-cert-type server+
- comp-lzo+
- verb 3+
- " > /tmp/myvpn/ipsec.config+
- +
- echo "+
- -----BEGIN CERTIFICATE-----+
- <span style="color:#ff0000;">Insert the content of your ca.crt</span>+
- -----END CERTIFICATE-----+
- +
- " > /tmp/myvpn/ca.crt+
- echo "+
- -----BEGIN RSA PRIVATE KEY-----+
- <span style="color:#ff0000;"> Insert the content of your client1.key</span>+
- -----END RSA PRIVATE KEY-----+
- +
- " > /tmp/myvpn/client1.key+
- chmod 600 /tmp/myvpn/client1.key+
- echo "+
- -----BEGIN CERTIFICATE-----+
- <span style="color:#ff0000;">Insert the content of your client1.crt</span>+
- -----END CERTIFICATE-----+
- +
- " > /tmp/myvpn/client1.crt+
- +
- route add -net 192.168.0.0/24 dev br0+
- +
- sleep 5+
- /tmp/myvpn/myvpn --config /tmp/myvpn/ipsec.config+
- +
- +
-Muss wieder unter Administration/Command eingefügt werden, und anschließend mit '''Save Startup''' gespeichert werden. Der DNS-Eintrag bzw. die IP-Adresse des Servers muss natürlich noch vorher geändert werden.+
-Dieser Schritt muss natürlich auf jedem Router, der sich als Client zum Server verbinden soll, durchgeführt werden.+
- +
-Wenn alles richtig hingehaut hat, sollte es nun möglich sein alle Router von einem Standort via webfrontend zu erreich, und auch zu pingen, gleiches gilt für die Clients hinter den Routern.+
- +
- +
-=== Externe Clients (Windows) ===+
- +
-Auf den externen Clients welche Zugriff auf das Netzwerk erhalten sollen, z.B. Notebooks ohne festen Standort, muss natürlich zuerst der OpenVPN Client installiert werden, am besten mit GUI. (Download: http://openvpn.se/download.html )+
-Anschließend muss man die Schlüssel/Zertifikate für das Gerät übertragen (am besten so, dass sie niemand abhören/mitlesen kann.). Benötigt werden die Dateien:+
- * ca.crt+
- * mobile_XX.key+
- * mobile_XX.crt+
- +
-Diese werden in einen neu erstellten Ordner im Programmordner von OpenVPN (standardmäßig C:\Programme\OpenVPN\ ) namens mobile_XX kopiert.+
-Anschließend erstellt man eine Datei namens '''client.ovpn''' im Ordner config, in welche man folgende Parameter kopiert:+
- +
- #OpenVPN CFG mobiler Client+
- +
- port 1194 +
- remote xxx.xxx.xxx <span style="color:#ff0000;">#Serveradresse anpassen(URL oder IP)</span>+
- proto udp+
- dev tap+
- tls-client+
- ns-cert-type server+
- ca C:\\Programme\\OpenVPN\\mobile_XX\ca.crt #<span style="color:#ff0000;">Pfad gegebenen Falls anpassen!</span>+
- cert C:\\Programme\\OpenVPN\\mobile_XX\\mobile_XX.crt #<span style="color:#ff0000;">Pfad und Dateinamen gegebenen Falls anpassen!</span>+
- key C:\\Programme\\OpenVPN\\mobile_XX\mobile_XX.key #<span style="color:#ff0000;">Pfad und Dateinamen gegebenen Falls anpassen!</span>+
- pull #Client verliert ohne das Pull bei Inaktivität die Verbindung+
- +
- +
-Anschließend kann man sich, nachdem man das GUI gestartet hat, verbinden, indem man in der Taskleiste einen Rechtsklick auf das OpenVPN GUI Symbol macht, und auf '''Connect''' klickt.+
- +
- +
- +
-== Fehlerdiagnose ==+
- +
-Nachdem meistens nicht alles auf Anhieb so hinhaut wie man will, kann man sich den Log vom Router zum Computer schicken lassen, und sieht so ob sich etwas tut.+
- +
-Am leichtesten geht dies so:+
-1. Zuerst verbindet man sich zum Router via webfrontend, geht auf '''Administration/Services''' und scrollt runter, und setzt ein Häckchen bei Syslog, und trägt die IP-Adresse vom Computer ein, an den man die Log schicken will+
- +
- [[Image:Syslogview.JPG]] +
- +
-2. Müsst ihr euch einen Syslog-Viewer herunterladen. Z.B. hier http://www.kiwisyslog.com/kiwi-syslog-daemon-overview/ +
- +
-3. Installiert das Programm und startet es (wenn ihr es nicht als Dienst installiert habt), und schaut dass es aktiv ist.+
- +
-Wenn ihr jetzt einen Reboot beim Router durchführt '''Administration/Management (Bottom of the site)'', sollten alles Status Meldungen an den PC weitergeleitet werden, den ihr angegeben habt. Wenn eurer VPN erfolgreich läuft, könnt ihr natürlich sämlichte Logs an einen zentralen Computer schicken lassen.+
- +
- +
-== Schlussworte ==+
- +
-Ich hoffe diese Anleitung ist halbwegs verständlich. Viel Vergnügen beim Basteln!+
- +
-An english version of this tutorial will follow!+
- +
-[[Category:Tunneling]]+

Current revision

  1. REDIRECT OpenVPN_-_Site-to-Site_Bridged_VPN_Between_Two_Routers/de