OpenVPN Anleitungen und Pakete

Status
Für weitere Antworten geschlossen.

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
After a reboot you have to insert that module again.
Just install openvpn and run these commands ;)
 

akilleuz

Benutzer
Mitglied seit
18. Mrz 2012
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Always when i've to test the TUN device, i use this way:

openvpn --mktun --dev tun0
ifconfig tun0 up
ifconfig

If you can see the tun0-Device, the kernelmodule is installed correctly.

I think my installation are not correct but i dont know where it goes wrong.

What i have done is:

PHP:
ipkg -force-depends install openvpn


PHP:
HTPC_NAS> cd /opt/etc/
HTPC_NAS> dir
drwxr-xr-x    6 root     root          4096 Mar 18 21:55 .
drwxr-xr-x   11 root     root          4096 Mar 19 21:18 ..
drwxr-xr-x    2 root     root          4096 Mar 18 19:26 init.d
drwxr-xr-x    2 root     root          4096 Mar 19 21:18 ipkg
-rw-r--r--    1 root     root           253 Feb 18 11:40 ipkg.conf
drwxr-xr-x    5 root     root          4096 Mar 19 20:34 openvpn
-rwxr-xr-x    1 root     root           387 Feb 18 11:40 rc.optware
-rwxr-xr-x    1 root     root          4499 Feb 15 23:31 wgetrc
drwxr-xr-x    2 root     root          4096 Mar 18 19:26 xinetd.d

But when i try to run openvpn:

PHP:
HTPC_NAS> cd /opt/etc/
HTPC_NAS> openvpn --mktun --dev tun0
-ash: openvpn: not found

I dont know if it is installed correctly or the ipkg, because if im in the root of the nas, im not able to use ipkg insmod etc. i need to be in the exact folder where it is installed.
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
Try

/opt/sbin/openvpn --mktun --dev tun0
 

akilleuz

Benutzer
Mitglied seit
18. Mrz 2012
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Try

/opt/sbin/openvpn --mktun --dev tun0

Haha that did the trick :)

I will now try to play arround with OpenVPN and try make a connection! thanks so much, Vilen dank.

By the way: To fulend the installation, then i will try to create a startup script that loads tun and openVPN, is that the right approach?

\Thomas
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.156
Punkte für Reaktionen
402
Punkte
393
Hi,
startup script is already at /opt/etc/init.d/S20openvpn.

Götz
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
startup script is already at /opt/etc/init.d/S20openvpn.
but check this script first. afaik the script wants to start an inetd openvpn instance per default and not a standalone openvpn
 

olivero

Benutzer
Mitglied seit
21. Apr 2012
Beiträge
11
Punkte für Reaktionen
0
Punkte
1
Guten Abend,

ich habe auf der DS212+ openvpn per ipkg installiert und es funktioniert (nach vielen, vielen Stunden) auch alles, nur:
openvpn wird nach einem Neustart nicht gestartet.

Installation exakt gem. den WIKI-Anleitungen (ipkg, modprobe, openvpn, nat). Hier erstmal ganz, ganz herzlichen Dank für diese prima Dokumentationen und die viele Arbeit die drin steckt! Ohne die fleissigen Autoren würde ich mich mit dem clientzertifikatfreien VPN-Server-Paket für die DS begnügen müssen :(

Das Skript /opt/etc/init.d/S20openvpn (Quelle: http://www.synology-wiki.de/index.php/IPKG#Startup_Script_openvpn_mit_NAT) wird beim Booten gestartet. Es wird aber scheinbar das tun-Module nicht geladen an dieser Stelle:
Rich (BBCode):
 # Make sure the tunnel driver is loaded
 if ( !(lsmod | grep -q "^tun") ); then
  modprobe tun
 fi
Die Anweisung wird durchlaufen, das habe ich mittels Protokollierung in ein File überprüft. Ich habe auch schon bis zu 'sleep 10' vor dem Aufruf eingebaut, bringt aber nichts. Im openvpn.log bleibt hartnäckig:
Rich (BBCode):
Note: Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19)

Die 'Datei' /dev/net/tun existiert.
Wenn ich das Skript S20openvpn aus der Shell starte wird der openvpn-Server einwandfrei gestartet, auch nach mehreren 'stops' und 'restarts'.

Wird modprobe tun zu einem "ungünstigen" Zeitpunkt aufgerufen? Eine Idee, woran das liegen könnte?

Auf der DS laufen keine weiteren ipkgs, als jene welche über die Anleitungen mitinstalliert wurden. Bin für jede Hilfe dankbar!

Liebe Grüße
- Oliver
 

olivero

Benutzer
Mitglied seit
21. Apr 2012
Beiträge
11
Punkte für Reaktionen
0
Punkte
1
Vielen Dank für Deinen Hinweis, Jo.
Ich habe /opt/ect/init.d/S20openvpn in S20openvpn.sh umbenannt. Dies hatte ich schon zuvor mal Dank des recherchierten Hinweises von Götz getan, möglicherweise aber noch einen anderen Fehler drin gehabt.
Ergebnis ist aber das Gleiche: Das Script S20openvpn.sh wird zwar ausgeführt, aber das tun-Modul nicht geladen :(

Gibt es irgendwo eine Protokolldatei aus der ersichtlich werden kann, warum?

Weiterhin habe ich mehrere "Protokoll-Cookies" im Script /usr/local/etc/rd.d/optware.sh gesetzt, z.B.:

Rich (BBCode):
start)
  echo optware.sh: Option start wird gestartet >> /openvpn-boot.log

Dies jeweils zu Anfang und Ende der start- und stop-Schleifen.

Weiterhin "Protokoll-Cookies" in /opt/etc/init.d/S20openvpn.sh jeweils zu Beginn und Ende des Scripts als auch rund um den Aufruf von modprobe tun.

Das (für mich verwirrende) Ergebnis:
1. optware.sh zuerst wird mit dem Parameter 'stop' aufgerufen
2. danach erst mit dem Parameter start
3. das optware.sh scheint wie im Wiki beschrieben wirklich erst gegen Ende des Bootsvorgangs ausgeführt zu werden, denn sobald der FTP-Server zur Verfügung steht ist noch keine Protokoll-Datei angelegt.

Hier das Ergebnis meiner Protokoll-Cookie-Datei:
Rich (BBCode):
optware.sh:    Option stop wird gestartet
S20openvpn.sh: Skriptende wurde erreicht
optware.sh:    Option stop fertig durchlaufen
optware.sh:    Skriptende wurde erreicht
optware.sh:    Option start wird gestartet
S20openvpn.sh: tun wird mittels modprobe gestartet
S20openvpn.sh: lsmod ergibt:       (leider kein tun!)
S20openvpn.sh: Laden von tun wurde durchgeführt
S20openvpn.sh: Skriptende wurde erreicht
optware.sh:    Option start fertig durchlaufen
optware.sh:    Skriptende wurde erreicht

Wenn ich optware.sh aus der Shell starte sieht das so aus und openvpn läuft:
Rich (BBCode):
optware.sh:    Option start wird gestartet
S20openvpn.sh: tun wird mittels modprobe gestartet
S20openvpn.sh: lsmod ergibt:
tun                    11014  0 
S20openvpn.sh: Laden von tun wurde durchgeführt
S20openvpn.sh: Skriptende wurde erreicht
optware.sh:    Option start fertig durchlaufen
optware.sh:    Skriptende wurde erreicht

Aufruf des openvpn-Startscripts ist unabhängig davon ob die Datei S20openvpn die Endung .sh trägt oder nicht. Wenn beide Varianten in /opt/etc/init.d angelegt sind, wird nur das Script mit der .sh-Endung ausgeführt.

Wo wird denn das Script optware.sh aufgerufen?
Noch eine Idee, einen Hinweis, warum das tun-Modul nicht geladen wird?

Liebe Grüße
- Oliver

P.S.: DS212+, DSM 4.0-2219 vom 13.4.12
P.P.S.: Auszug dir /
Rich (BBCode):
ds> dir
lrwxrwxrwx    1 root     root            17 Apr 23 23:53 opt -> /volume1/@optware
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
mhm kann es sein, dass du das tun device ned angelegt hast?
Code:
mkdir /dev/net/ 
mknod /dev/net/tun c 10 200
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.156
Punkte für Reaktionen
402
Punkte
393
hat er :)
Die 'Datei' /dev/net/tun existiert.

einige Programme (Kernelumgebung) haben Probleme wegen fehlendem Befehl chdir
Rich (BBCode):
DS411plusII> modprobe tun
modprobe: chdir(2.6.32.12): No such file or directory
tausche die modprobe Zeile gegen
Rich (BBCode):
insmod /lib/modules/tun.ko

Gruß Götz
 

olivero

Benutzer
Mitglied seit
21. Apr 2012
Beiträge
11
Punkte für Reaktionen
0
Punkte
1
tausche die modprobe Zeile gegen
Rich (BBCode):
insmod /lib/modules/tun.ko

Das war/ist es. Jetzt startet openvpn nach einem reboot und ich bin glücklich :eek::eek:
Damit haben wir eine weitere Lehre von Dir, Götz - oder habe ich nach diesem Hinweis nicht sauber genug recherchiert? Wie auch immer, vielen, vielen Dank für die Hilfe, Götz.

Liebe Grüße
- Oliver
 

olivero

Benutzer
Mitglied seit
21. Apr 2012
Beiträge
11
Punkte für Reaktionen
0
Punkte
1
... aber so ganz glücklich bin ich doch immer noch nicht ;-)

Denn jetzt funktioniert das NAT nicht, will heissen, ich kann nicht auf die Systeme im Netz zugreifen.

lsmod | grep "^iptable_nat" ergbit, dass das Modul iptable_nat nicht geladen ist.
Klingt erstmal auch logisch, da es ja wie tun im Script auch mit modprobe geladen wird.

Was muss an dieser Stelle angegeben werden? Nur insmod /lib/modules/iptable_nat.ko geht nicht:
Rich (BBCode):
ds> insmod /lib/modules/iptable_nat.ko
insmod: error inserting '/lib/modules/iptable_nat.ko': -1 Unknown symbol in module

Von der Shell aus läßt sich das Modul einbinden:
Rich (BBCode):
ds> modprobe iptable_nat
ds> lsmod | grep iptable
iptable_nat             3077  0
ip_tables               8789  1 iptable_nat
nf_nat                 12271  1 iptable_nat
x_tables               11064  2 iptable_nat,ip_tables
nf_conntrack_ipv4       4939  3 iptable_nat,nf_nat
nf_conntrack           42654  3 iptable_nat,nf_nat,nf_conntrack_ipv4

Und gerne würde ich noch verstehen, warum modprobe beim Booten nicht geht und wenn ich S20openvpn.sh aus der Shell aufrufe aber alles tadellos funktioniert (confused).

Liebe Grüße
- Oliver
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.156
Punkte für Reaktionen
402
Punkte
393
Hallo,
bevor iptable_nat geladen werden kann muß ip_tables, nf_nat, x_tables, nf_conntrack_ipv4 und nf_conntrack geladen sein. modprobe macht das automatisch, insmod nicht.
Dein eigentliches Problem sind die Pfade. Dein Script kennt nur ein paar Standardpfade, interaktiv in der shell ausgeführt bekommt es aber auch die Pfade aus /etc/profile und /root/.profile mit, vor allem /opt/sbin. Das Script in der boot-Umgebung greift auf /sbin/modprobe zu, in der shell ausgeführt greift es auf /opt/sbin/modprobe zu. Da das /sbin/modprobe nicht will klappt das Script beim booten nicht.
Also im Script absolute Pfade angeben, /opt/sbin/modprobe.

Gruß Götz
 

olivero

Benutzer
Mitglied seit
21. Apr 2012
Beiträge
11
Punkte für Reaktionen
0
Punkte
1
Sodele, in der Tat, die Pfade waren es :eek::eek::eek:
Jetzt geht endlich alles wie gewünscht. Vielen Dank an die fleissigen Helfer und insbesondere Götz für den entscheidenden Hinweis!

Für alle anderen hier die Lösung nochmals zusammengefasst:

Installation auf meiner DS 212+ mit DSM 4.0-2219 gem. den Anleitungen im Wiki
  • ipkg, da es für die DS212+ kein eigenes Paket gibt, jenes für die DS 211 verwenden und auf die Anpassung in bootstrap.sh achten
  • modprobe
  • openvpn
  • nat, damit auch der Zugriff auf das gesamte Netzwerk hinter dem VPN-Server klappt

Ich nutze die /opt/etc/init.dS20openvpn ohne die ".sh"-Endung.
In dieser S20openvpn folgende Ergänzungen vornehmen:

Rich (BBCode):
[...]
/opt/sbin/modprobe tun
[...]
/opt/sbin/modprobe iptable_nat
[...]
/opt/sbin/iptables -t nat -A POSTROUTING -s 10.X.0.0/24 -j SNAT --to-source ${IPA}
[...]
/opt/sbin/iptables -t nat -F
/opt/sbin/modprobe -r iptable_nat;
[...]
/opt/sbin/modprobe -r tun;

Vielleicht findet der Hinweis auf die Pfade ja auch noch den Weg ins Wiki (weiss nicht, ob ich als Newbie hier ergänzen darf...)

Schönen Abend. Merci.
- Oliver
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.156
Punkte für Reaktionen
402
Punkte
393
Hallo,
weiss nicht, ob ich als Newbie hier ergänzen darf...
einfach im Wiki registrieren und schon kann's losgehen.

Gruß Götz
 

olivero

Benutzer
Mitglied seit
21. Apr 2012
Beiträge
11
Punkte für Reaktionen
0
Punkte
1
Okay, schon erledigt. Als Hinweis, keine Änderung des Scripts.
LG
- Oliver
 

hergis

Benutzer
Mitglied seit
19. Mrz 2015
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Ja nun bin ich auch im Forum auf der Suche nach Antworten auf meine Fragen (hier auch VPN) und wenn dann keine Antworten auf Fragen mehr kommen, läufts sich ins Leere.
Bin dankbar f. ausgewogene VPN-Themen-Links.
Gruß
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat