# Wago Openvpn current state: stop



## Alpaca (30 Juli 2018)

Hallo liebe Community,

ich versuche einen openvpn Server auf dem pfc200 750-8202 einzurichten. Zunächst habe ich daher mithilfe von XCA ein CA Zertifikat und zugehörigen Schlüssel erstellt. Mit diesem habe ich dann für die Steuerung ein Server Zertifikat mit TLS Web Server authentification angelegt und mit der CA signiert. Als Signatur Algorithmus habe ich SHA 512 gewählt, sollte aber hier keine Rolle spielen.
In der Firewall habe ich für UDP 1194 ebenso eine Ausnahme erstellt. Danach noch den Diffie Hellmann Schlüssel erzeugt und alle Dateien bis auf den CA Key exportiert und in die Steuerung geladen. Also Ca und Server Zertifikat als .crt und die Keys als .pem private Key. Obwohl der Haken bei enable VPN gesetzt ist startet der VPN Dienst nicht, auch nach Neustart des Controllers via Web. Anschließend habe ich versucht den Dienst über SSH mit Putty zu starten "/etc/config-tools/vpncfg ovpn --start". Ging auch nicht. Als Basis für die openvpn.conf Datei habe ich die Beispieldatei aus dem Codesys 2.3 Anwendungshinweis zu openvpn. Ipadresse habe ich auf local <ControllerIP> gesetzt und die Namen der Zertifikate in den Pfaden korrigiert. Routing hatte ich einfach mal aktiviert.. ehrlich gesagt nur weil es in den meisten Anleitungen so gemacht wird. Statische Route habe ich keine angelegt, da ich ja nicht weiß, welche IP mein Handy hat, wenn ich unterwegs bin.

Wo könnten mögliche Fehlerursachen liegen? Eigentlich geht es im Prinzip nur darum, remote access für die Webvisu anzulegen. 

Vielen Dank für die Aufmerksamkeit.

Mfg Alpaca


----------



## Lars Weiß (31 Juli 2018)

Zeig mal eine Config her. 

Diese mal als funktionierendes Beispiel:


```
#configure type#client
#WAGO PFC


client	#Client (tls-auth und pull)
remote 10.1.0.10	# IP-Adresse oder Domainname der Gegenstelle




# Certificate configuration
ca /etc/certificates/ca.crt
cert /etc/certificates/client.crt
key /etc/certificates/keys/client.key


# Fixe Parameter
proto udp 	# Protokoll, das für den Tunnel benutzt wird
rport 1194	# Auf der Gegenstelle über diesen Port tunneln
lport 1194	# Lokal über diesen Port tunneln
comp-lzo 	# LZO Kompression aktivieren
cipher BF-CBC 	# Benutzter Verschlüsselungsalgorithmus
tun-mtu 1500 	# Maximale Größe der Datenpakete
reneg-sec 3600 	# Intervall bis zur Schlüsselerneuerung (in Sekunden)
#ping 30 	# Verbindungsprüfung nach Ablauf dieser Anzahl an Sekunden ohne Datenverkehr
ping-restart 60 	# Verbindung erneut aufbauen, wenn nach Ablauf dieser Anzahl an Sekunden kein Ping von der Gegenstelle empfangen wurde
dev tun 	# OpenVPN Netzwerkgerät
float 	# Akzeptiere Pakete von allen Rechnern (float)




# log level
verb 4


# VPN logfile location
# If you don't specify a location here, logging will be done through
# syslogd and write to /var/log/messages
#log-append /var/log/openvpn.log


# This parm is required for connecting
# to a multi-client server.  It tells
# the client to accept options which
# the server pushes to us.
pull
```


----------



## Alpaca (1 August 2018)

Ich bitte die späte Antwort zu entschuldigen, war leider außer Haus gestern.

Hab hierfür die Vorlage von Wago genutzt, die man im Anwendungshinweis findet wenn man Openvpn auf Wago sucht. Bis auf das Angeben des Pfades der Zertifikatrücknahmeliste habe ich alles aus der Vorlage übernommen. Hab in meiner Config den PFC200 aber als Server und nicht als Client. Sollte doch auch klappen nicht? User und Gruppe "openvpn" habe ich zuvor mit Putty auch schon angelegt. 


```
mode server
local 10.83.5.5
dev tun
proto udp
port 1194
ca /etc/certificates/ovpnCA.crt
cert /etc/certificates/ovpnServer.crt
key /etc/certificates/keys/ovpnServer.key
dh /etc/certificates/keys/dh2048.pem
user openvpn
group openvpn
server 10.8.0.0 255.255.255.0
push "topology subnet"
topology subnet
route 10.8.0.0 255.255.255.0
client-config-dir ccd
client-to-client
persist-key
persist-tun
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 5
```

Habe zwischenzeitlich die standardmäßig eingestellte .conf Datei vom Controller runtergeladen und anhand der Kommentare konfiguriert. Openvpn auf enable und Controller neu gestartet. Trotzdem Status stopped.


```
local 10.83.5.5
proto udp
dev tun
ca /etc/certificates/ovpnCA.crt
cert /etc/certificates/ovpnServer.crt
key /etc/certificates/keys/ovpnServer.key
dh /etc/certificates/keys/dh2048.pem
user openvpn
group openvpn
topology subnet
server 10.8.0.0 255.255.255.0
keepalive 10 120
cipher BF-CBC  
persist-key
persist-tun
```

Da wäre noch eine Frage bezüglich der OpenVPN App. Dort kann ich ja das Zertifikat nur als .p12 importieren, so wie ich das verstehe enthält de .p12 Datei dann Schlüssel und Zertifikat. Was gebe ich aber dann als Zertifikats- und Schlüsselpfad in der Clientkonfigurationsdatei an? wäre es dann cert und dann den Pfad der .p12 Datei und für key den selben Pfad?


----------



## .:WAGO::015844:. (1 August 2018)

Hallo Alpaca,

wenn sich der Dienst nicht starten lässt liegt es für gewöhnlich an einer inkonsistenten Konfiguration.
Der beste Weg die Ursache zu ermitteln, ist über die entsprechenden Log-Dateien.

Mit dem Eintrag:

*verb 3
log /var/log/openvpn.log*

in der openvpn.conf kannst du dir Log-Dateien zum Verbindungsaufbau anzeigen lassen.
Diese solltest du nach dem Starten des Dienstes zuerst prüfen.
Ein Re/Start des Dienstes kannst du über die Konsole mit folgendem Aufruf ausführen:

*./etc/init.d/openvpn restart*

Sollte die Datei nach dem Start nicht vorhanden sein, konnte der Dienst erst gar nicht starten.
Die Ursache hierfür sollte in der Log-Datei /var/log/messages zu finden sein.

Solltest du mit diesen Informationen nicht weiterkommen, melde dich gern direkt bei uns.


----------



## Alpaca (1 August 2018)

Da ist wohl am Montag was schief gelaufen als ich es zum ersten mal getestet hatte.. Weil die logdatei nicht angelegt worden ist. Diesmal hat es geklappt und es hat sich herausgestellt, ein blöder Tippfehler.. Der Pfad für den Gerätekey war falsch angegeben, da ich bei der Hitze hier .key und nicht .pem eingegebene habe.. Vielen Dank!

Was würde ich angeben bei der Clientkonfiguration bezüglich des Pfads für Zertifikat und Schlüssel? Weil wie erwähnt, für die App muss ja Key und Zertifikat im. p12 Format vorliegen.

Achja, ich bin außerdem recht neu in diesem Gebiet und hab mich gewundert, im Web based management habe ich das Admin Passwort geändert. Wenn ich allerdings per SCP oder eCockpit einlogge, so ist es das alte Standartpasswort? Warum ist es nur für das Webmanagement geändern?


----------



## .:WAGO::015844:. (1 August 2018)

Die per WBM hochgeladenen Zertifikate werden unter
/etc/certificates/ abgelegt, die hochgeladenen Schlüssel unter /etc/certificates/keys.
Ebenfalls ist es möglich die Zertifikate und Keys mit entsprechenden Schlüsselworten direkt in die .conf-Datei zu schreiben.


----------



## Alpaca (1 August 2018)

Ich hab jetzt die Konfigurationsdateien mal hingekriegt. Nur komm ich vom Handy aus nicht durch bis zur Wago. Diese habe ich als Server eingerichtet und bei den Wago Ethernet Settings die ip 10.83.5.5 vergeben. Die Zertifikate und Schlüssel habe ich auf der Clientseite direkt in die conf. und als remote habe ich eben die Adresse von der Wago angegeben 10.83.5.5. Müsste ich logischerweise eigentlich nicht die ip Adresse des Routers angeben, der die Wago mit dem öffentlichen Internet verbindet und der Router ermöglicht mir dann eben Zugriff auf die Topologie hinter dem Router? So wie es jetzt eingestellt ist komm ich nicht mal bis zum Router. Beim Controller hab ich mal Verb5 eingestellt und in der logdatei sind keine Verbindungsversuche vermerkt. Auf der Steuerung habe ich einen User Filter für den UDP Port 1194 angelegt.

Client (Zertifikate übersichtshalber weggelassen)

```
client
dev tun
proto udp
remote 10.83.5.5 1194
resolve-retry infinite
nobind
user openvpn
group openvpn
cipher BF-CBC
persist-key
persist-tun
```

Steuerung

```
local 10.83.5.5
proto udp
port 1194
dev tun
ca /etc/certificates/ovpnCA.crt
cert /etc/certificates/ovpnServer.crt
key /etc/certificates/keys/ovpnServer.pem
dh /etc/certificates/keys/dh2048.pem
user openvpn
group openvpn
topology subnet
server 10.8.0.0 255.255.255.0
keepalive 10 120
cipher BF-CBC  
persist-key
persist-tun
verb 5
log /var/log/openvpn.log
```


----------



## .:WAGO::015844:. (1 August 2018)

In dem Fall, dass ein Router das Gateway zum Internet darstellt, ist dieser der erste Ansprechpartner aus dem WAN. Auf diesem Router müsste nun eine Portweiterleitung des Port 1194 zum PFC eingerichtet werden (Angesprochen wird dann die Öffentiche_IPortnummer). Zudem muss sichergestellt sein, dass die Öffentliche IP dieses Routers immer bekannt ist (Feste IP/DynDNS).
Wäre der PFC als Client nutzbar, würde diese Thematik entfallen. Allerdings wird auch dein Mobiltelefon vermutlich keine feste IP haben?!
In diesen Konstellationen bieten sich auch sogenannte M2M/Connectivity Dienste an, welche VPN Server im Internet bereitstellen.
Ein weiterer Vorteil wäre hier, dass Konfigurationen, Schlüssel und Zertifikate dort fertig bereitgestellt werden.


----------

