OpenVPN unter DD-WRT einrichten
DD-WRT bring von Haus aus schon openvpn mit. Ich habe dennoch auf das einrichten in der WEBGUI verzichtet, da ich mit dem Router Site2Site VPNs, Client VPNs wie auch zur Einwahl meiner Clients, also als VPN Server nutzen will. Deshalb hier kurz meine Vorgehensweise:
VPN Server
damit sich Clients in mein Netzwerk einwählen können, hab ich folgende Config verwendet:
/jffs/etc/openvpn/server.conf
dev tun0 tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 fast-io proto udp port 1194 daemon OVPN_ClientVPN tls-server ca /jffs/etc/openvpn/ca/cacert.pem cert /jffs/etc/openvpn/certs/servercert.pem key /jffs/etc/openvpn/certs/serverkey.pem dh /jffs/etc/openvpn/ca/dh1024.pem server 192.168.70.0 255.255.255.0 push "route 192.168.10.0 255.255.255.0" client-to-client keepalive 10 60 status-version 1 cipher AES-256-CBC comp-lzo max-clients 100 mtu-disc yes crl-verify /jffs/etc/openvpn/crls/cacrl.pem persist-key persist-tun verb 1
Die dazugehörigen Keys habe ich natürlich auch unter /jffs/etc/openvpn/
abgelegt.
Gestartet wird das ganze via Startup Skript in der WebGui unter Administration --> Diagnose.
/usr/sbin/openvpn --config /jffs/etc/openvpn/server.conf
Die dazugehörigen Firewallrules werden unter Administration --> Diagnose dem Firewall Skript hinzugefügt:
# Öffnet den Port von Außen zum OpenVPN Server iptables -I INPUT 2 -p udp --dport 1194 -j ACCEPT # Erlaubt den Traffic vom VPN auf das Interne Netz und umgekehrt iptables -I FORWARD -i br0 -o tun0 -j ACCEPT iptables -I FORWARD -i tun0 -o br0 -j ACCEPT # Erlaubt den Traffic vom Router ind VPN iptables -I INPUT -i tun0 -j ACCEPT
Aktivieren kann man das ganze mittels Router Reboot.
Site2Site VPN
Standort A
/jffs/etc/openvpn/site2site1/site2site1.conf
dev tun1 tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 fast-io proto udp port 1195 ifconfig 192.168.71.1 192.168.71.2 remote standordB.domain.tld tls-server ca /jffs/etc/openvpn/ca/cacert.pem cert /jffs/etc/openvpn/certs/servercert.pem key /jffs/etc/openvpn/certs/serverkey.pem dh /jffs/etc/openvpn/ca/dh1024.pem route 192.168.12.0 255.255.255.0 keepalive 10 60 cipher DES-EDE3-CBC verb 1 daemon OVPN_Site2Site1VPN
Auch hier liegen die Keys wieder im selben Ordner wie die Konfigurationsdatei. Startup des ganzen wie beim VPN Server unter Administration --> Diagnose --> Startup Skript:
/usr/sbin/openvpn --config /jffs/etc/openvpn/site2site1/site2site1.conf
und die dazugehörigen Firewall Rules:
# Öffnet den Port von Außen zum OpenVPN Server iptables -I INPUT 2 -p udp --dport 1195 -j ACCEPT # Erlaubt den Traffic vom VPN auf das Interne Netz und umgekehrt iptables -I FORWARD -i br0 -o tun1 -j ACCEPT iptables -I FORWARD -i tun1 -o br0 -j ACCEPT # Erlaubt den Traffic vom Router ind VPN iptables -I INPUT -i tun1 -j ACCEPT
Standort B
/jffs/etc/openvpn/site2site1/site2site1.conf
dev tun0 tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 fast-io proto udp port 1195 ifconfig 192.168.71.2 192.168.71.1 remote standortA.domain.tld tls-client pkcs12 /jffs/etc/openvpn/site2site1/site2site1.p12 route 192.168.10.0 255.255.255.0 keepalive 10 60 cipher DES-EDE3-CBC verb 1 daemon OVPN_Site2Site1
Auch hier liegen die Keys wieder im selben Ordner wie die Konfigurationsdatei. Startup des ganzen wie beim VPN Server unter Administration --> Diagnose --> Startup Skript:
/usr/sbin/openvpn --config /jffs/etc/openvpn/site2site1/site2site1.conf
und die dazugehörigen Firewall Rules:
# Öffnet den Port von Außen zum OpenVPN Server iptables -I INPUT 2 -p udp --dport 1195 -j ACCEPT # Erlaubt den Traffic vom VPN auf das Interne Netz und umgekehrt iptables -I FORWARD -i br0 -o tun0 -j ACCEPT iptables -I FORWARD -i tun0 -o br0 -j ACCEPT # Erlaubt den Traffic vom Router ind VPN iptables -I INPUT -i tun0 -j ACCEPT
VPN Client
/jffs/etc/openvpn/client1/client1.conf
client dev tun3 proto udp remote server.domain.tld 1194 resolv-retry infinite nobind persist-key persist-tun ca /jffs/etc/openvpn/client1/ca.crt cert /jffs/etc/openvpn/client1/client1.crt key /jffs/etc/openvpn/client1/client1.key ns-cert-type server comp-lzo verb 1 keepalive 10 60 daemon OVPN_Client1
Die Keys wieder im selben Ordner ablegen und den Startup und die FW Rules einbauen.
Startup:
/usr/sbin/openvpn --config /jffs/etc/openvpn/client1/client1.conf
Firewall Rules:
iptables -t nat -A POSTROUTING -o tun3 -j MASQUERADE
Die MASQUERADE Rule sorgt dafür das alle Clients im Netz auf den entfernten PC zugreifen können.