OpenVPN-Paket

Hi Jörg,

Habe ich das jetzt richtig verstanden?
Dein Vorschlag ist ein Pseudo Firmwareupdate, das, nachdem ich die ds-mod-fw geflasht habe, mir die gewünschten Dateien "nachflasht"???

Das wiederum bedeutet, ich könnte unanbhängig vom Boxtyp einfach ein "meineeinstellungen.image" drüberflashen und das wars ???

Das wäre zu schön, um wahr zu sein.

wengi
 
... in gewissen Grenzen: Ja.
Einfach ist es z.B. Dateien irgendwohin zu kopieren (z.B. deine Zertifikate, ggfs sogar eine "Vorbereitete" Openvpn-Config (das wäre dann die /tmp/flash/ppenvpn-lzo.diff, die die "Unterschiede" zur default-Config /etc/default.openvpn-lzo/openvpn-loz.cfg enthält).

Wie du an dem Beispiel siehst, ist der Mechanismus simpel aber recht mächtig: Alles in dem tar-File wird auf der obersten Verzeichnisebene entpackt (es ginge demnach vielleicht sogar, die Dateien direkt nach var/tmp/flash/ zu legen und das dann zu entpacken, habe ich aber nie probiert), danach wir das Skript /var/install aufgerufen. Je nach Rückgabewert rebootet die Box danach (Standard) oder du "simulierst" einen Fehler wie in dem Beispiel...

Jörg
 
Ist nach dem drüberkopieren in /var/tmp/flash nicht noch ein modsave von nöten?
 
Ja natürlich, das sollte danach noch erfolgen. Am besten gleich mit ins "install".
 
Ich habe mir jetzt mal Folgendes gebastelt:
Code:
#!/bin/sh

# Geänderte dnsmasq_conf enthält kein bogus-priv für interne DNS Server
cp /var/dnsmasq_conf /etc/default.dnsmasq/dnsmasq_conf

# Neuere OpenVpn-LZO config und Webinterface
cp /var/openvpn-lzo.cfg /etc/default.openvpn-lzo/openvpn-lzo.cfg
cp /var/openvpn-lzo_conf /etc/default.openvpn-lzo/openvpn-lzo_conf
cp /var/openvpn-lzo.cgi /usr/lib/cgi-bin/openvpn-lzo.cgi
cp /var/rc.openvpn-lzo /etc/init.d/rc.openvpn-lzo

cp /var/box.crt /var/tmp/flash/box.crt
cp /var/box.key /var/tmp/flash/box.key
cp /var/ca.crt /var/tmp/flash/ca.crt
cp /var/dh.pem /var/tmp/flash/dh.pem


# ctlmgr wird vorher gestoppt, daher gibt es sonst danach kein WebIF mehr
ctlmgr

# Aenderungen im Flash speichern
modsave

# Wir hatten einen "unbekannten Fehler", ein reboot tut also nicht not
exit 0
Alle Dateien liegen im Verzeichnis /var, das ich dann in ein tar verpacke und in update.image umbenenne.
Allerdings glaube ich noch nicht so ganz, dass das auch nach einem reboot alles da bleibt. Oder wird bei einem Pseudo-Update nicht nur das normale Dateisystem, sondern der Flash direkt überschrieben?

wengi
 
Halt, da haben wir uns missverstanden!

Die Methode geht nur für die "änderbaren" Dinge, für die Keys usw., halt das was du ansonsten im WebIF eingäbest. Das würde dann ja auch im Flash unter /var/tmp/flash abgelegt. Also z.B. auch die .diff-Dateien zur Config von dsmod-Paketen.
Damit kannst du nicht Dinge im Flash überschreiben! Diese Dinge müsstest du weiterhin vor dem "richtigen" Flashen im ds-mod verändern (also in das package - Verzeichnis kopieren usw...)
Sorry, da haben wir wohl aneinander vorbei geredet.

Jörg
 
Hi,

dann werde ich das mit dem Pseudoimage wieder verwerfen. Ich denke, ich werde die Dateien dann über die fwmod_custom und eine eigene Anpassung einfügen.

Die Frage ist, wie ich darüber was in /var/tmp/flash bekommen.

Im Moment läuft diese Diskussion in zwei Threads. Das muss ja nicht sein.
Daher bitte hier weiter.

wengi
 
So,
hier mal wieder eine "Testversion" der GUI.
Prinzipiell sollte nun alles drin sein und funktionieren, Fehler sind aber noch wahrscheinlich ;-)

Einiges vorweg:
  • Da Oliver angedeutet hat, dass es demnächst keine eigene "lzo-Version" geben wird, habe ich alles auf ein Paket "openvpn" zugeschnitten
  • Um mehrere Konfigs laufen zu haben musste ich einige der "originalen" ds-Dateien anpassen bzw ergänzen (speziell habe ich den Part für "dynamische Pakete" mal besetzt. Da gibt es sicher noch Diskussionsbedarf, ob das so gut/richtig/besser machbar wäre
  • Grundsätzlich ist das ganze über ein "overlay" Verzeichnis realisiert, aus dem die neuen und geänderten Dateien per "fwmod_custom" kopiert werden. Falls ihr da schon was im custom-Script habt, müsst ihr das berücksichtigen
  • Für die "Multikonfig" ist der "Expertenmodus" (unten) erforderlich

Grundsätzlich sind nun auch mehrere Konfigs möglich, das funktioniert wie folgt:
Es werden alle Konfigs "aneinander gehängt", jeweils die zughörigen Werte mit # getrennt. Also z.B. "yes##yes#yes". Beim Speichern wird ausgewertet, welche Config(s) verändert wurde(n) und diese dann (wenn laufend) neu gestartet. Die Dateien selbst sind fast alle jeweils nur links, die über ihren "Aufrufenamen" gesteuert werden.
Vielleicht mache ich diese Hinweise nächste Woche mal etwas ausführlicher (nun ist es etwas spät, und morgen kann ich nicht), aber vielleich kann/möchte ja übers WE noch jemand es wagen zu Testen.

Was mir momentan noch als Erweiterung vorschwebt, ist eine Möglichkeit, pro Konfig eigene Keys/Zertifikate zu nutzen (Idee: ein Kontrollfeld "eigene Keys", aber wie die dann eingeben ?? Die "Einstellungen" Seite ist mir dafür zu voll, irgendwie müssten die Dateien dann aber auch im Mod "registriert" werden, oder?? Da bin ich für Ideen dankbar)

So, erstmal viel Spaß und meldet Anregungen und Fehler!

EDIT 20070903
Und hier mal ein paar "längere" Worte, was das so macht (oder machen sollte ;-)):

Es gibt ein neues Skript: "openvpn_dynamic_conf". Das Skript schaut nach zusätzlichen Openvpn-Configs in der Konfigurationsdatei. Sind die vorhanden, werden "dynamische" Pakete dafür angelegt:
  • Ein Eintrag in der Datei /mod/etc/dynamic.pkg
  • Anlegen des "Paket-Verzeichnisses" /mod/etc/default.openvpn_<Configname>
  • Im Paketverzeichnis wird openvpn_conf (aus /tmp/flash/ oder default.openvpn) als "openvpn_<Configname>" verlinkt
  • In /mod/etc/init.d wird ebenfalls ein Link angelegt rc.openvpn_<Configname> -> rc.openvpn
  • Es wird eine "Mini-Config-Datei" /mod/etc/conf/openvpn_<Configname>.cfg angelegt, die nur den Wert für "ENABLED" enthält
  • In /mod/sbin wird ein Programm-Link openvpn_<Configname> angelegt (um einen "eindeutigen" Namen zum "Killen" des Prozesses zu haben)
  • "Alte Config-Pakete", die nicht in der jetzingen Konfigurationsdatei sind, werden gelöscht
Die Skripte leiten, wie schon gesagt, ihre Funktion auf dem Aufrufstring heraus ab und "wirken nur auf ihre Config"

Beim ersten Start (aus rc.openvpn heraus) und nach jedem "übernehmen" (aus save.cgi heraus) wird "openvpn_dynamic_conf" aufgerufen. Beim Start schaut das veränderte "mod.cgi" nicht nur nach Paketen in /etc/static.pkg sondern ebenfalls nach solchen in /mod/etc/dynamic.pgk und startet die, die auf ENABLED="yes" stehen.

Damit die Dienste angezeigt werden, wurde daemons.cgi ebenfalls "erweitert", inderm der Teil für statische Pakete auch für dynamische (angepasst) kopiert wurde.

Eine etwas größere Änderung gab es noch in save.cgi. Hier wird nun vielfach openvpn als "Sonderfall" behandelt: Vor dem Speichern wird die alte Konfigurationsdatei eingelesen, um dann danach festzustellen, ob und in welcher OpenVPN-Config sich etwas verändert hat. Ziel ist es, dass ich auch nur die Dienste neu starte, bei denen eine Änderung war und nicht gleich alle.

Im CGI-Skript selber habe ich im Großen und Ganzen hauptsächlich die Veränderung vorgenommen, dass ich alle Werte in einem Array speichere. Angezeigt werden dann jeweils nur die Werte/Einstellungen der aktuell ausgewählten Config und die Werte zum "Auslesen" durch den Mod sind "hidden" Felder, die alle Werte per "#" aueinandergeschrieben enthalten.
Das _conf Script (was dann ja im Aufruf den Config-Namen enthält) sucht sich dann immer die "zugehörige" Konfiguration zur Bearbeitung heraus.



Jörg
 

Anhänge

  • openvpn_20070901_03.tar.gz
    16.7 KB · Aufrufe: 13
Zuletzt bearbeitet:
OpenVPN + ds-mod 15.2

Hallo!

Ich habe seit vorgestern den ds-mod 15.2 auf unserer 7170 mit letzter
offiziellen Firmware (keine Labor..) und versuche verzweifelt das OpenVPN
zum laufen zu bekommen.

Ich moechte von unterwegs mit dem Laptop auf mein Netzwerk zugreifen
und habe in der menueconfig openvpn2.1 rc4 mitausgewählt.
Auf dem Laptop läuft die Windows Version von OpenVPN mit GUI ebenfalls
in der Version 2.1 RC4.

Die VPN Konfig im DS-Mod-Webinterface habe ich auf standart gelassen,
weil ich meine dass da schon alles so stimmt..

In dem Config Verzeichnis auf dem Windows-Laptop habe ich folgende
config Datei angelegt:


CLIENT.OVPN
Code:
remote xxx.mine.nu
proto udp
dev tun
ifconfig 192.168.200.2 192.168.200.1
route 192.168.178.0 255.255.255.0
secret client.key
tun-mtu 1500
float
mssfix
nobind
verb 3
keepalive 10 120
(Quelle: http://wiki.ip-phone-forum.de/software:ds-mod:pakete:openvpn)


LOG-FILE:
Code:
Wed Sep 05 23:10:52 2007 OpenVPN 2.1_rc4 Win32-MinGW [SSL] [LZO2] built on Apr 25 2007
Wed Sep 05 23:10:52 2007 Static Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Sep 05 23:10:52 2007 Static Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Sep 05 23:10:52 2007 Static Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Wed Sep 05 23:10:52 2007 Static Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Sep 05 23:10:54 2007 TAP-WIN32 device [OpenVPN] opened: \\.\Global\{876EAF4C-676C-4135-A3C1-F64C0D7358F1}.tap
Wed Sep 05 23:10:54 2007 TAP-Win32 Driver Version 9.3 
Wed Sep 05 23:10:54 2007 TAP-Win32 MTU=1500
Wed Sep 05 23:10:54 2007 Notified TAP-Win32 driver to set a DHCP IP/netmask of 192.168.200.2/255.255.255.252 on interface {876EAF4C-676C-4135-A3C1-F64C0D7358F1} [DHCP-serv: 192.168.200.1, lease-time: 31536000]
Wed Sep 05 23:10:54 2007 Successful ARP Flush on interface [5] {876EAF4C-676C-4135-A3C1-F64C0D7358F1}
Wed Sep 05 23:10:54 2007 Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:4 ET:0 EL:0 ]
Wed Sep 05 23:10:54 2007 Local Options hash (VER=V4): '1db64539'
Wed Sep 05 23:10:54 2007 Expected Remote Options hash (VER=V4): '27d76c6d'
Wed Sep 05 23:10:54 2007 Socket Buffers: R=[8192->8192] S=[8192->8192]
Wed Sep 05 23:10:54 2007 UDPv4 link local: [undef]
Wed Sep 05 23:10:54 2007 UDPv4 link remote: xxx.xxx.xxx.xxx:1194


Ich habe schon studenlang hier im Forum, in den wikis und in google gesucht....
muss man auch bei dem ds-mod 15.2 noch den Port 1194 "von Hand" in der ar7.cfg freischalten?
Was fehlt mir noch sonst noch? :noidea:
Werde das mit der UDP Freigabe morgen mal in der ar7.cfg testen, bin im moment
leider nicht daheim..
Würde etwas dagegen sprechen folgende Zeile:
"udp 0.0.0.0:1194 0.0.0.0:1194";
..statt
"udp 0.0.0.0:1194 192.168.178.1:1194";
hinzuzufügen?


Bitte gebt mir einen kurzen Tip... Ob es nur noch die Portfreigabe ist oder noch etwas anderes fehlt.
Sitze schon stundenlang davor (ist schon die zweite lange Nacht)
und finde nichts, was mir speziell fuer den 15.2 mod weiterhilft...

Vielen vielen Dank!
Gruss, Jimmy
 
Zuletzt bearbeitet:
Port 1194 MUSST du in ar7.cfg aufmachen! Die Frage wurde aber schon mehrmals hier beantwortet! Bitte Thread durchlesen!

Ich poste meine funktionierende Client (OpenVPN-GUI auf WinXP) Konfiguration:
Code:
disable-occ
remote deinserver.dyndns.org
float
# port 1194
# proto [tcp-server | tcp-client | udp]
dev tun
#ifconfig 10.1.0.2 255.255.255.0
#tun-mtu-extra 32
#tun-mtu 1400
ifconfig 10.0.0.2 10.0.0.1
route 192.168.178.0 255.255.255.0
#fragment 1300
#mssfix
#dev-node my-tap
secret dein.key
ping-restart 60
# ping-timer-rem
persist-tun
persist-key
# resolv-retry 86400
ping 15
# Wenn LZO aktiviert:
comp-lzo
# verb 4
# mute 10

Sie basiert ziemlich auf den Default-Einstellungen der OpenVPN der FritzBox. Änderungen betreffen nur VPN-IPs (bei mir sind sie 10.0.0.x) und Aktivierung von LZO. Den restlichen Kram, wie MTUs, fragment und mssfix lass bitte in Ruhe auf default-Werten. Die musst du schon (wenn überhaupt) auf beiden Seiten gleich haben.

MfG
 
Servus Hermann!!

Danke für Deine Konfig!

- ar7.cfg um "udp 0.0.0.0:1194 0.0.0.0:1194"; erweitert
- mit meiner default konfig bleibt er wie oben im log stehen
- mit Deiner Konfig wirds grün und die Verbindung klappt wunderbar!

komme ins fritzbox webinterface, computer lassen sich anpingen, jedoch funktioniert zb. keine Windows-Freigabe..
Broadcasts scheinen auch nicht zu funktionieren (evtl liegts auch nur daran, dass windows nicht auf dem neuen TAP Device lauscht sondern nur auf meiner eth karte)..?

jedenfalls DANKE
Viele Grüße
Jimmy
 
Du musst schon die Rechner als \\192.168.178.21 (als Beispiel) ansprechen. DNS und entsprechende Windoof-Suche-nach-Rechnern funktioniert da nicht. Ob man es irgendwie hinkriegen kann, weiß ich nicht. Mir reichen die IPs aus. Dann musst du natürlich deine Rechner so konfigurieren, dass sie auch die Anfragen zulassen. Erstens gibt es bei XP irgendwo die Möglichkeit SMB zu aktivieren, zweitens Firewalls an den Rechnern (m$ oder andere) müssen es auch können. Denn die Anfrage kommt nicht von deinem internen Netz, sondern von 10.0.0.2 (als Beispiel) oder vielleicht von der "richtigen" IP des Clients. Ergo, du muss deiner Firewall sagen, dass sie die Netze 10.0.0.0 und xxx.xxx.xxx.xxx (von deinem Client) als "vertraulich" ansieht.

Teste am besten erstmal Netzintern und dann über Tunnel. Wenn du noch andere Dienste irgendwo auf den Kisten laufen hast, kannst du mit denen auch probieren (rdp, vnc, apache, ftp, ssh).

Mit deiner config war es auch klar, dass es nicht geht. Ich sagte doch, lass die finger von mssfix & co.

MfG
 
Hallo Hermann!

Ja habe versucht per IP-Adresse auf die Windows Freigabe zu gelangen, ohne Erfolg... im internen Netzt funktioniert dies einwandfrei. Hat auch nichts mit Freigaberechten etc. zu tun, da ich erstens die "einfache Windows Freigabe" verwende und zweitens mit dem gleichen Notebook probiert habe (intern und extern). Aber uebers VPN findet er ihn nciht... ein PING an dieselbe Ip-Adresse funktioniert jedoch ohne Probleme.
Firewall ist nur die Windows-Firewall aktiv... aber wenns intern klappt.... warum nicht ueber VPN?

Verstehe ich nicht.

Gruss, Jimmy
 
... weil du, wenn du analog zur Konfig von Hermann zugreifst, in einem "fremden" Netz bist, und nicht im internen.
Aber es ist doch ganz einfach, das rauszufinden: Schalte die FW ab und teste dann (ich verspreche, ich werde in den 20 Sekunden dienen Rechner nicht hacken ;-))

Jörg
 
MaxMuster schrieb:
(ich verspreche, ich werde in den 20 Sekunden dienen Rechner nicht hacken ;-))

Das versprechen sie alle ;)

BTW: Ich "verfritze" mir gerade einen W701V um endlich Deine neue Konfig testen zu können.

EDIT @MaxMuster:
Ich habe gerade eine Firmware mit Deinen Änderungen (overlay) geflashed.
_Natürlich_ geht das mit dem aktuellen ds-mod schief, da das Paket openvpn-lzo heisst.
Ich hätte doch erst nachdenken sollen :(
Jetzt habe ich allerdings keine Ahnung, ob es reicht die Dateien in Deinem overlay einfach umzubenennen oder ob ich in den Dateien auch noch Änderungen machen muss. Wie also passe ich Dein overlay an das openvpn-lzo Paket an?

wengi
 
Zuletzt bearbeitet:
Ich glaube, du willst in die falsche Richtung hin. "-lzo"-Version an sich selbst soll aus dem nächsten Release rausfliegen. Die beiden Versionen (es gibt anscheinend zwei) werden zu einer zusammengefasst. Zumindest habe ich es so verstanden als Mitleser hier. Deswegen frag lieber nach, wie du diese Version zum Laufen bringen kannst.

MfG
 
Muss ich vielleicht im ds-mod die lzo Kompression abwählen und dann passt es automatisch?
Hilfe!!! :heul:

EDIT:
Ich beantworte die Frage mal selbst:
Um die Anpassungen von MaxMuster zu testen muss man OpenVPN ohne LZO-Komprimierung bauen. das Paket heisst dann nur noch openvpn und alles läuft.
Jetzt verstehe ich auch den Zusammenhang, warum es in zukunft nur noch openvpn, ohen lzo im Namen, geben wird. Das macht Sinn!

@MaxMuster:
Zu Deiner neuen Konfiguration kann ich nur eins sagen: BOAAAHHHH!!! Ist das gut! :cool:
Am besten hast Du den Punkt "erweiterte Clientkonfiguration" umgesetzt. Newbies lassen es einfach weg, erfahrene user haben alles was sie wollen. Perfekt.
Es muss nuch noch funktionieren.
Aber ich werde mich mal an das Produktivsystem machen, sobald ich weis wie ich das mit lzo einsetzen kann. Also einfach Dateien umbenennen?

Vielen Dank
wengi
 
Zuletzt bearbeitet:
Hi,

also das mit dem "LZO" betrifft nur den Namen, in der ersten Version hatte ich den Patch mal mit drangehängt (und das mache ich heute auch wieder). (Es waren doch einige Punkte, in denen der direkte Verweis auf das Paket im Namen eben auch ein "lzo" hatte und ich wollte das dann lieber "zukunftsfähig" machen, als dann alles nochmal anzupassen).
Mit dem Patch heißen dann sowohl die Versionen mit als auch ohne lzo gleich, eben openvpn...

Zum "neuen Release":
Es gibt mal wieder einen neuen Stand, nun mit "Feature-Freeze" ;-)

Folgendens hat sich zum letzten Stand verändert:
  • Keine Änderung in "save.cgi" mehr nötig: Das war mir recht wichtig. Ich nutze nun aus, dass das save-cgi erst den Status abfragt, dann die Variablen sichert und dann zum eventuelle "restart" schreitet: Wird das rc-Skript mit "status" aus dem save.cgi aufgerufen (also existiert ein Prozess mit save.cgi) dann werden die alten Werte gesichert und immer "running" zurückgeliefert, um dann beim "restart" alle veränderten Configs, die laufen, neu zu starten
  • Die Configs können nun eigene Keys/Zertifikate haben. Diese kann ich nach dem Eingeben "Ausblenden" lassen, um das "Einstellungen"-Menu nicht "ausufern" zu lassen
  • Im "Expertenmodus" kann nun auch eine maximale Größe UDP-Pakete angegeben werden
  • Es ist ein Feld für "eigene Parameter" vorhanden, das die Konfigurationsdatei nach Belieben mit eigenen Parametern füttert
  • ein paar Fehler wurden rausgeschmissen ;-)
Ich denke, nun könnte man von einem Alpha-Stadium sprechen und das ganze sollte für die meisten Fälle nutzbar sein. Daher bitte ich nun um mutige Helfer, die mal ein paar Konfigs erstellen lassen, um die sicher noch vorhandenen Fehler rauszufinden...

Danke und viel Spaß!

Jörg
 

Anhänge

  • openvpngui_20070907.tar.gz
    15.8 KB · Aufrufe: 12
MaxMuster schrieb:
... weil du, wenn du analog zur Konfig von Hermann zugreifst, in einem "fremden" Netz bist, und nicht im internen.
Aber es ist doch ganz einfach, das rauszufinden: Schalte die FW ab und teste dann (ich verspreche, ich werde in den 20 Sekunden dienen Rechner nicht hacken ;-))

Jörg


Hast Recht ;)
WindowsXP-Firewall ausgeschaltet und schon kann ich ueber VPN auf die Windows Freigabe zugreifen.
Kann ich das Config File anpassen von Hermann sodass ich trotz fireall zugreifen kann? Gibts auch ne moeglichkeit fuer Broadcast bzw. NAmensaufloesung?

Vielen Dank
Jimmy

PS: Im OpenVPN HowTo2.0 und FAQs hab ich nichts genaues gefunden.
 
1. Normalerweise brauchst du keine Firewall zuhause und schon gar nicht Billiseigene. Du sitzt doch schon hinter einer Fritz!Box. Was willst du mehr? Wenn du in der Fritz!Box nicht alle Ports auf dein Rechner routest oder frei machst, kann es eigentlich nicht passieren. Selbst WLAN mit WPA2 ist auch abgesichert.
2. Wenn du dennoch immer noch Angst hast, kannst du deine Firewall auch lassen. Du musst der Firewall lediglich IP-Adressen/-Bereiche/-Subnetze mitteilen, die als vertraut gelten. Das ist dann deine entfernte Adresse. Das kann jede Firewall, auch die von Windows.
3. Man muss nicht unbedingt Forwarding machen, du kannst natürlich auch im Bridging-Modus fahren. Aber wenn du davon jetzt zum ersten mal hörst, lass es am besten, oder informiere dich auf www.openvpn.net Mit bridging befinden sich beide Netze im selben Subnetz, sodass die Firewall sie vermutlich als vertraut ansehen wird.

MfG
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.