Schlagwort: DD-WRT

  • DD-WRT als OpenVPN-Server

    Die aktuellen Preise der Energieversorger drängen zum Umdenken – irgendwie.

    Es ist zwar sehr angenehm einen Server zuhause stehen zu haben, auf den man sich rund um die Uhr connecten kann. Dumm nur, wenn er 95% des Tages idlet.

    Eine neue Lösung musste her um sich von unterwegs daheim einzuloggen und z.B. den LinVDR zu starten.

    Ein WRT54GL verrichtet seit Jahren klaglos seinen Dienst mit DD-WRT. Das hatte ich mir ausgesucht, weil ich mal mit HotSpot-Funktionalitäten herumspielen wollte. Hatte damals auch prima geklappt. Der WRT stand im LAN, ein Radius-Server und die Splashseite waren auf meinem Server im Netz.

    Geschickterweise gibt es auch ein Firmware-Image mit integriertem OpenVPN sowohl Client als auch Server.

    Hier meine Einstellungen (Klick aufs Bild für Originalgröße):

    dd-wrt-vpn-1

    In die Felder:

    Public Server Cert
    Public Client Cert
    Private Client Key
    DH PEM
    trägt man die generierten Keys bzw. Zertifikate ein. Prinzipiell kann man nach der Anleitung im DD-WRT-Wiki vorgehen.
    Hier noch meine openvpn.conf auf dem WRT:
    server 10.9.0.0 255.255.255.0
    port 1195
    proto udp
    tls-server
    dev tun
    ca ca.crt
    cert cert.pem
    key key.pem
    dh dh.pem
    client-to-client
    push "route 192.168.178.0 255.255.255.0"
    comp-lzo
    ping-timer-rem
    keepalive 20 180
    verb 3

    Abweichend zum Default hört das OpenVPN auf dem WRT auf Port 1195. Ich habe das lieber sauber in der Fritz!Box die die DSL-Leitung handlet getrennt. Ausserdem verwende ich intern wie extern bei solchen Sachen gerne dieselben Portnummern.

    Nun muss man dem WRT noch mitteilen, dass beim Booten auch das OpenVPN mitstarten soll:

    dd-wrt-vpn2

    Das Ganze nochmal für Copy&Paste, die beiden Skripte sind jeweils in die Inputbox bei Kommandos einzutragen:

    cd /tmp/openvpn
    /usr/sbin/openvpn --daemon --config /tmp/openvpn/openvpn.conf
    sleep 5

    und die Firewall, damit auch sauber ins Netz geroutet wird:

    /usr/sbin/iptables -I INPUT -p udp --dport 1195 -j ACCEPT
    /usr/sbin/iptables -I INPUT -i tun+ -j ACCEPT
    /usr/sbin/iptables -I FORWARD -i tun+ -j ACCEPT

    Jetzt kann ich auch von unterwegs schnell mal den Videorekorder per WOL anwerfen und Timer erstellen o.ä.