(open) VPN prüfen und wiederherstellen Synology DSM6.x

Mit unserem VPN Dienste machen wir Netzwerke erreichbar die keine öffentliche IP-Adresse besitzen oder keine Änderungen im Router möglich sind.
Antworten
frankotronic
Beiträge: 8
Registriert: Do 4. Mai 2017, 19:36

(open) VPN prüfen und wiederherstellen Synology DSM6.x

Beitrag von frankotronic » So 27. Jan 2019, 09:03

Hallo zusammen.

Meine Synology (DSM6.x) hängt an einem DS-Lite ipv6 Anschluss von Unitymedia. Sie baut ein VPN auf, damit ich sie von überall mit einer eigenen IP-Adresse erreichen kann. Es kommt vor, dass diese VPN Verbindung "stehen" bleibt. Die Diskstation zeigt zwar an, dass die VPN-Verbindung "Verbunden" ist, aber man kann sie nicht mehr über die eigene ipv4 Adresse erreichen.
Wie schon an anderer Stelle beschrieben, sind meine Kenntnisse eher dürftig, aber ich habe einen Weg gefunden, mir weiter zu helfen. Ich hoffe das es mir gelingt, alle notwendigen Schritte wieder zu geben.
Ich habe eine Datei vpntest.sh geschrieben. Hierfür habe ich Notpad++ verwendet. ACHTUNG In Notepad, unten in der Statusleiste von "Windows" auf "Unix" umschalten!

Code: Alles auswählen

#!/bin/bash
#Datei ggf. mit chmod +x notwendige Rechte erteilen
p=xxx.xxx.xxx.xxx									# IP zum anpingen, ich pinge meine eigene v4 IP von feste-iP an
a=0											# Merker auf 0 setzen
sudo ping -c 1 $p >/dev/null 2>/dev/null						# pingen
SUCCESS=$?
  	if [ $SUCCESS == "0" ]
  		then									# wenn ok, dann ...
			echo VERBINDUNG OK
		else									# sonst ...
			echo VERBINDUNG NICHT OK
			synovpnc kill_client						# erstmal ganz platt machen
			sleep 10							# dann warten und wieder aufbauen
			sudo sh -c "echo conf_id=o?????????? > /usr/syno/etc/synovpnclient/vpnc_connecting"
			sudo sh -c "echo conf_name=????? >> /usr/syno/etc/synovpnclient/vpnc_connecting"
			sudo sh -c "echo proto=openvpn >> /usr/syno/etc/synovpnclient/vpnc_connecting"
			sudo synovpnc connect --id=o??????????
			a=1								# merken, dass das VPN neu aufgebaut wurde
			sleep 20
	fi
if [ $a = 1 ]										# wenn es neu aufgebaut werden musste
	then
		sudo ping -c 1 $p >/dev/null 2>/dev/null				# nochmal pingen
		SUCCESS=$?
		case $SUCCESS in
			0)  echo VERBINDUNG OK
			;;
			1) echo WIEDERAUFBAU DES VPN FEHLGESCHLAGEN
			;;
		esac
fi
Diese Datei habe ich unter /volume1/homes/[Benutzername] in einem separaten Unterverzeichnis abgelegt.

Zum ausführen dieser Datei sind root Rechte notwendig. Um dem eigenen Nutzer diese Rechte ohne weitere Passworteingabe zu gewähren, muß man dieser als Superuser (SU) eintragen.
Dafür muß, z.B. mittels PuTTY eine Anpassung vorgenommen werden. Also auf der DS unter Systemsteuerung, Terminal den SSD-Dienst aktivieren, mit PuTTY eine Verbindung aufbauen und dieser Beschreibung folgen ...

https://www.youtube.com/watch?v=ZVJbbA2Yf0o&t=199s
(Vielen Dank an Manfred, schön, das es Youtube gibt, liked ihn, wenn es euch geholfen hat)

Da wir einmal in PuTTY sind, müssen wir noch die ?????? aus meinem Skript klären.

Hierfür in PuTTy ins Verzeichniss

Code: Alles auswählen

cd /usr/syno/etc/synovpnclient/
wechseln und dort

Code: Alles auswählen

sudo vi ./vpnc_last_connect
eingeben.

Dort findet ihr "conf_id" und "conf_name"
Das Verlassen geht nun über "Esc" und ":"
gefolgt von "q!" und Enter. PuTTy verlassen mit "exit"

... anschließend den SSH-Dienst wieder abschalten.

Nun kann man die Datei im Aufgabenplaner als "geplante Aufgabe ", " Benutzerdefiniertes Skript" ausführen. Unter "Aufgabenstellung" trägt man die angelegte Datei ein.

Code: Alles auswählen

bash /volume1/homes/[Benutzername]/[ggf. Unterverzeichnis]/[Dateiname.sh]
Je nachdem wie wichtig einem das VPN ist, oder wie dringend dieses wieder funktionieren muß, kann man sich im Zeitplan austoben. Mein Skript wird zwischen 06:00 und 23:00 alle 5 Minuten ausgeführt.

Ich hoffe, ich habe nichts vergessen.
Gruß

Antworten