openwrt | OpenVPN mit Weboberfläche unter OpenWRT

Wie ich schon hier und hier geschrie­ben habe, nutze ich auf mei­nem Rou­ter Open­WRT. Haupt­ziel mei­ner ande­ren Arti­kel war, auf­zu­zei­gen, wie man sich ein eige­nes Image für den Rou­ter bauen kann. In die­sem Arti­kel möchte ich nun zei­gen, wie man sich ein Open­WRT Image bauen kann mit dem man OpenVPN über eine Webober­flä­che kon­fi­gu­rie­ren und steu­ern kann.

Auf dem Host-System, auf dem man das Image kom­pi­liert, muss man nach

make menuconfig

zuerst das rich­tige Paket installieren

Nach dem das Image wie in dem Arti­kel Open­WRT und eige­nes Image bauen kom­pi­liert ist und das Image auf dem Rou­ter instal­liert wurde, kann man über die Webober­flä­che auf den Rou­ter zugreifen.

Im Administrations-Menü unter Ser­vices fin­det man den Menü­punkt openvpn.

Ich denke, die Webober­flä­che ist selbst­er­klä­rend und werde des­we­gen nicht näher dar­auf ein­ge­hen. Hier kann man die Kon­fi­gu­ra­tion sei­nes VPN-Tunnels vor­neh­men — egal ob der Rou­ter als VPN-Server oder VPN-Client fun­gie­ren soll. Nach­dem man seine OpenVPN Kon­fi­gu­ra­tion zusam­men­ge­stellt hat und den VPN Tun­nel auf­baut, wird man fest­stel­len, das es noch nicht rich­tig funk­tio­niert. Es feh­len noch einige kleine Details, damit man auf das hin­ter dem OpenVPN-Router lie­gende Netz­werk zugrei­fen kann, da zur Zeit die Fire­wall das VPN-Netz noch nicht kennt.

Zuerst muss ein neues Netzwerk-Interface für den VPN-Tunnel ange­legt werden:

uci set network.vpn=interface
uci set network.vpn.proto=none
uci set network.vpn.auto=1
uci set network.vpn.ifname=tun0
uci commit network

Anschlie­ßend eine neue Fire­wall Zone eingerichtet:

uci add firewall zone
uci set firewall.@zone[2].name=vpn
uci set firewall.@zone[2].forward=ACCEPT
uci set firewall.@zone[2].input=ACCEPT
uci set firewall.@zone[2].output=ACCEPT
uci commit

Und abschlie­ßend wird defi­niert, zwi­schen wel­chen Fire­wall Zonen über­haupt Traf­fic flie­ßen darf.

uci add firewall forwarding
uci set firewall.@forwarding[1].dest=vpn
uci set firewall.@forwarding[1].src=lan
uci commit

Wer mehr dar­über erfah­ren will, was man mit UCI alles anstel­len kann, den kann ich nur auf die Befehls­re­fe­renz ver­wei­sen.

Nun feh­len nur noch die Firewall-Einträge

iptables -A input_rule -i tun+ -j ACCEPT
iptables -A forwarding_rule -i tun+ -j ACCEPT
iptables -A forwarding_rule -o tun+ -j ACCEPT
iptables -A output_rule -o tun+ -j ACCEPT

dies alles in die Datei /etc/firewall.user ein­ge­tra­gen und schon funk­tio­niert der VPN-Tunnel wie er soll.

Konn­tet Ihr das nach­voll­zie­hen? Was ist mög­li­cher­weise noch unklar? Habt Ihr Ver­bes­se­rungs­vor­schläge? Dann nutzt bitte die Kom­men­tar­funk­tion.

Ähnli­che Arti­kel zu die­sem Thema:

  1. open­wrt | Back­fire und OpenVPN
  2. open­wrt | Open­WRT als VM
  3. debian | Open­WRT und eige­nes Image bauen
  4. open­wrt | Kom­pi­lie­rungs­um­ge­bung aktualisieren
  5. net | SSH mit Tun­neln nutzen

    • Rensky
    • 2. Jun. 2010 8:08pm

    Hey, dein Arti­kel klingt ja ganz Inter­es­sant aber du kannst doch nicht »hier« als Lin­k­name ver­wen­den. Der Satz ver­liert ja total an Bedeu­tung und es ließt sich doch bes­ser wenn da steht, »Wie ich schon im Arti­kel debian-openwrt-eigenes-image bauen.

    René

    • Danke Rensky und ja, Du hast ja Recht, ich ver­su­che mich zu bes­sern, ok?! :)

      Schreib doch mal, ob es nach­voll­zieh­bar war und ob es Dir geklappt hat.

    • Phil
    • 8. May. 2012 2:15am

    Hallo!
    Ver­su­che nun schon seit ein paar Tagen ein Open­WRT mit OpenVPN + GUI auf mei­nem DSL-584T zum lau­fen zu brin­gen. Lei­der hat bis­her keins mei­ner selbst kom­pi­lier­ten Images funk­tio­niert, zudem habe ich Pro­bleme auf die erford­li­che Größe zu kom­men. Passt ja lei­der nur 3MB(?) rein.
    Wel­che Pakete hast du in menu­con­fig alle aus bzw. abge­wählt das es bei dir funktioniert?

    • Hallo Phil,
      da hast Du ja einen Rou­ter mit rela­tiv wenig Flash-Speicher. Der von mir ver­wen­dete ASUS WL-500gP hat 8MB Flash und da passt schon eini­ges rein. Alter­na­tiv kann ich beim ASUS auch noch nen USB-Stick dran­ste­cken und dar­auf noch grö­ßere Pakete instal­lie­ren. Aber ok, das hilft Dir nicht wei­ter.
      Ich muss geste­hen, dass ich inzwi­schen kein OpenVPN mehr benutze son­dern »xl2tpd over ipsec« — dass aber auch nicht mehr auf nem Open­WRT. Wel­che Pakete Du also neh­men sollst, kann ich Dir lei­der nicht sagen. Aber: Ver­su­che am bes­ten nicht so viele Dinge (wie z.B. OpenVPN) fest ins Image ein­zu­bin­den son­dern lie­ber als Modul »« — damit bleibt das Grun­di­mage klein und du kannst ent­we­der ein eige­nes Repo­sitory im Open­WRT defi­nie­ren und zum instal­lie­ren benut­zen oder aber die zu instal­lie­ren­den Pakete nach /tmp auf den Rou­ter zu über­tra­gen und via »opkg install /tmp/XXX.ikg« zu instal­lie­ren.
      Ich hoffe das hilft Dir wei­ter ansons­ten meld dich noch­mal :)

    • Phil
    • 12. May. 2012 3:17pm

    Bes­ten Dank für die Ant­wort, konnte mein Pro­blem mitt­ler­weile aller­dings lösen.
    Als Paket nach­in­stal­lie­ren kam für mich nicht in Frage da dabei mehr Spei­cher ver­braucht wird als wenn es direkt im Image steckt (irgendwo bei Open­Wrt gele­sen).
    Für alle ande­ren die even­tu­ell Pro­bleme haben:
    Unbe­dingt ein x86 alias 32-bit Linux ver­wen­den! Dabei ist zu beach­ten das ein 32(!)-bittiges Debian einen x64(!) Ker­nel benutzt.
    Letzt­end­lich hatte ich unter einem 32-bit Linu­xMint mit dem Image­Buil­der erfolg. Denke das selbst kom­pi­lie­ren nun auch klappt — habe ich allerdins nicht getestet.

  1. Danke Phil für das Update. Inter­es­sant ist für mich die Aus­sage, dass ein Paket mehr Spei­cher­platz braucht als in ein Image ein­ge­baut — hast Du dafür einen Link? Ich konnte auf die Schnelle nix fin­den. Was ich defi­ni­tiv nicht unter­schrei­ben kann ist Deine Aus­sage, dass ein 32bit-Debian einen 64bit-Kernel ver­wen­det. Das kann und darf nicht sein. Viel­leicht ist da nur was beim Kom­pi­lie­ren falsch gelau­fen oder eine Varia­ble war falsch gesetzt?! Ich sel­ber nutze ein x86-Squeeze für jeg­li­che Crosscompile-Geschichten und hatte damit nie Pro­bleme.
    Aber wich­tig ist ja für Dich, dass Du eine Lösung für Dich gefun­den hast :)

    • Phil
    • 13. May. 2012 8:48pm

    http://wiki.openwrt.org/doc/howto/obtain.firmware.generate
    ziem­lich weit oben, ich zitiere mal »Embed­ding packa­ges directly into the SquashFS to reduce space requi­re­ments on the tar­get«, ver­stehe ich jeden­falls so wie oben geschrieben.

    Die Debian Dis­tro hatte ich mir direkt von deren Seite gezo­gen. Auf­merk­sam gewor­den auf das »Pro­blem« bin ich durch die Instal­la­tion der Vir­tual­Box Addi­ti­ons. Konnte das auch nicht glau­ben und dachte ich hätte das fal­sche Image ver­wen­det, war aber tat­säch­lich so, i386 Debian mit x64 Kernel..

  1. 1. Jun. 2010
:) :( ;) :mrgreen: :lol: :roll: :idea: :oops: more »


− 3 = eins