Opennet Firmware
OpenVPN (allgemein)

Vorbereitung, Konfiguration und Prüfung von VPN-Verbindungen (z.B. für Nutzertunnel oder UGW). Mehr ...

Funktionen

 enable_openvpn_service ()
 Erzeuge eine funktionierende openvpn-Konfiguration (Datei + UCI, service_name). Mehr ...
 
 update_vpn_config (service_name)
 Schreibe eine openvpn-Konfigurationsdatei. Mehr ...
 
 disable_openvpn_service (service_name)
 Löschung einer openvpn-Verbindung. Mehr ...
 
 get_openvpn_service_state (service_name)
 Prüfe ob eine openvpn-Verbindung besteht bzw. im Aufbau ist. Mehr ...
 
 _change_openvpn_config_setting (config_file, config_key, config_value)
 Ändere eine Einstellung in einer openvpn-Konfigurationsdatei. Mehr ...
 
 get_openvpn_config (service_name)
 liefere openvpn-Konfiguration eines Dienstes zurück Mehr ...
 
 verify_vpn_connection (service_name, key, cert)
 Prüfe einen VPN-Verbindungsaufbau. Mehr ...
 
 openvpn_service_has_certificate_and_key ()
 Prüfe ob das Zertifikat eines openvpn-basierten Diensts existiert. Mehr ...
 
 has_openvpn_credentials_by_template (template_file)
 Prüft, ob der Nutzer bereits einen Schlüssel und ein Zertifikat angelegt hat. Mehr ...
 
 log_openvpn_events_and_disconnect_if_requested ()
 Allgemeines Ereignisbehandlung fuer openvpn-Verbindungen: Logging und eventuell Dienst-Bereinigung (nur für "down"). Mehr ...
 
 get_openvpn_service_pid_file (Name)
 PID-Datei für diesen Dienst ausgeben. Mehr ...
 
 get_openvpn_service_template_filename (Name)
 Dateiname der Konfigurationsvorlage dieses Diensts ausgeben. Mehr ...
 
 openvpn_get_mtu ()
 Ermittle die MTU auf dem Weg zum Anbieter des Diensts. Mehr ...
 
 cleanup_stale_openvpn_services ()
 Beräumung liegengebliebener openvpn-Konfigurationen, sowie Deaktivierung funktionsunfähiger Verbindungen. Mehr ...
 

Ausführliche Beschreibung

Vorbereitung, Konfiguration und Prüfung von VPN-Verbindungen (z.B. für Nutzertunnel oder UGW).

Dokumentation der Funktionen

◆ _change_openvpn_config_setting()

_change_openvpn_config_setting ( config_file  ,
config_key  ,
config_value   
)

Ändere eine Einstellung in einer openvpn-Konfigurationsdatei.

Parameter
config_fileName der Konfigurationsdatei.
config_keyName der openvpn-Einstellung.
config_valueNeuer Inhalt der Einstellung - die Einstellung wird gelöscht, falls dieser Parameter fehlt oder leer ist.
Achtung
OpenVPN-Optionen ohne Parameter (z.B. –mtu-test) können nicht mittels dieser Funktion gesetzt werden.

Definiert in Zeile 32 der Datei openvpn.sh.

◆ cleanup_stale_openvpn_services()

cleanup_stale_openvpn_services ( )

Beräumung liegengebliebener openvpn-Konfigurationen, sowie Deaktivierung funktionsunfähiger Verbindungen.

Verwaiste openvpn-Konfigurationen können aus zwei Grunden auftreten: 1) nach einem reboot wurde nicht die zuletzt aktive openvpn-Verbindung ausgewählt - somit bleibt der vorher aktive uci-Konfigurationseintrag erhalten 2) ein VPN-Verbindungsaufbau scheitert und hinterlässt einen uci-Eintrag, eine PID-Datei, jedoch keinen laufenden Prozess Achtung: falls eine Verbindung sich gerade im Aufbau befindet, wird ihre Konfiguration ebenfalls entfernt. Diese Funktion sollte also nur in ausgewählten Situation aufgerufen werden (nach einem Reboot und nach einem Verbindungsabbruch).

Definiert in Zeile 83 der Datei openvpn.sh.

◆ disable_openvpn_service()

disable_openvpn_service ( service_name  )

Löschung einer openvpn-Verbindung.

Parameter
service_nameName eines Dienstes

Die UCI-Konfiguration, sowie alle anderen mit der Verbindung verbundenen Elemente werden entfernt. Die openvpn-Verbindung bleibt bestehen, bis zum nächsten Aufruf von 'apply_changes openvpn'.

Definiert in Zeile 19 der Datei openvpn.sh.

◆ enable_openvpn_service()

enable_openvpn_service ( )

Erzeuge eine funktionierende openvpn-Konfiguration (Datei + UCI, service_name).

Parameter
service_nameName eines Dienstes

Die Konfigurationsdatei wird erzeugt und eine openvpn-uci-Konfiguration wird angelegt. Falls zu diesem openvpn-Dienst kein Zertifikat oder kein Schlüssel gefunden wird, dann passiert nichts.

Definiert in Zeile 9 der Datei openvpn.sh.

◆ get_openvpn_config()

get_openvpn_config ( service_name  )

liefere openvpn-Konfiguration eines Dienstes zurück

Parameter
service_nameName eines Dienstes

Definiert in Zeile 36 der Datei openvpn.sh.

◆ get_openvpn_service_pid_file()

get_openvpn_service_pid_file ( Name  )

PID-Datei für diesen Dienst ausgeben.

Parameter
Nameeines Diensts

Definiert in Zeile 63 der Datei openvpn.sh.

◆ get_openvpn_service_state()

get_openvpn_service_state ( service_name  )

Prüfe ob eine openvpn-Verbindung besteht bzw. im Aufbau ist.

Parameter
service_nameName eines Dienstes

Die Prüfung wird anhand der PID-Datei und der Gültigkeit der enthaltenen PID vorgenommen.

Rückgabe
"active", "connecting" oder einen leeren String (unbekannt, bzw. keine Verbindung).

Definiert in Zeile 25 der Datei openvpn.sh.

◆ get_openvpn_service_template_filename()

get_openvpn_service_template_filename ( Name  )

Dateiname der Konfigurationsvorlage dieses Diensts ausgeben.

Parameter
Namedes Diensts

Definiert in Zeile 67 der Datei openvpn.sh.

◆ has_openvpn_credentials_by_template()

has_openvpn_credentials_by_template ( template_file  )

Prüft, ob der Nutzer bereits einen Schlüssel und ein Zertifikat angelegt hat.

Parameter
template_fileName einer openvpn-Konfigurationsdatei (oder einer Vorlage). Aus dieser Datei werden "cert"- und "key"-Werte entnommen.
Rückgabe
Liefert "wahr", falls Schlüssel und Zertifikat vorhanden sind oder falls in irgendeiner Form Unklarheit besteht.

Definiert in Zeile 54 der Datei openvpn.sh.

◆ log_openvpn_events_and_disconnect_if_requested()

log_openvpn_events_and_disconnect_if_requested ( )

Allgemeines Ereignisbehandlung fuer openvpn-Verbindungen: Logging und eventuell Dienst-Bereinigung (nur für "down").

Alle Informationen (bis auf das Log-Ziel) werden aus den Umgebungsvariablen gezogen, die openvpn in seinen Ereignisskripten setzt.

Definiert in Zeile 59 der Datei openvpn.sh.

◆ openvpn_get_mtu()

openvpn_get_mtu ( )

Ermittle die MTU auf dem Weg zum Anbieter des Diensts.

The output can be easily parsed via 'cut'. Even the full status output of openvpn is safe for parsing since potential tabulator characters are removed.

Rückgabe
One line consisting of five fields separated by tab characters is returned (tried_to_remote real_to_remote tried_from_remote real_from_remote full_status_output). Failed tests are indicated by an empty result.

Definiert in Zeile 72 der Datei openvpn.sh.

◆ openvpn_service_has_certificate_and_key()

openvpn_service_has_certificate_and_key ( )

Prüfe ob das Zertifikat eines openvpn-basierten Diensts existiert.

Rückgabe
exitcode=0 falls das Zertifikat existiert

Falls der Ort der Zertifikatsdatei nicht zweifelsfrei ermittelt werden kann, dann liefert die Funktion "wahr" zurück.

Definiert in Zeile 49 der Datei openvpn.sh.

◆ update_vpn_config()

update_vpn_config ( service_name  )

Schreibe eine openvpn-Konfigurationsdatei.

Parameter
service_nameName eines Dienstes

Definiert in Zeile 13 der Datei openvpn.sh.

◆ verify_vpn_connection()

verify_vpn_connection ( service_name  ,
key  ,
cert   
)

Prüfe einen VPN-Verbindungsaufbau.

Parameter
service_nameName eines Dienstes
key[optional] Schluesseldatei: z.B. $VPN_DIR/on_aps.key
cert[optional] Zertifikatsdatei: z.B. $VPN_DIR/on_aps.crt
Rückgabe
Exitcode=0 falls die Verbindung aufgebaut werden konnte

Definiert in Zeile 43 der Datei openvpn.sh.