Archiv der Kategorie: Workaround

UNBLOG Tutorials Usability and Addons Integration with Technical Workarounds and Tutorials for Professionals.

OpenVPN Verbindungsscript

Scripts ausführen bei OpenVPN Verbinden und Trennen

OpenVPN Client für Windows mit Skriptdatei ausführen, ermöglicht beim Start von VPN-Verbindungen, die Netzlaufwerke zu Freigaben auf Server zu erstellen. Es ergeben sich weitere Möglichkeiten, wie das Ausführen von Anmeldescripte, Drucker Umleitungen oder automatisierte Aktualisierung. Dieses Tutorial zeigt die Installation und Anwendung von OpenVPN Verbindungsskripte.

so wird’s gemacht

Das OpenVPN GUI für Windows kann von der Community Webseite hier heruntergeladen werden. Bei der Installation wird das Verzeichnis OpenVPN unter %USERPROFILE% angelegt, darunter der Ordner config, in diesem die Konfigurationsdateien (.ovpn) liegen, die aus dem OpenVPN GUI mit Datei importieren gespeichert werden.

OpenVPN-in-Taskleiste

Mit Rechtsklick über dem OpenVPN Symbol in der Taskleiste öffnet man das Kontextmenü mit der Option Datei importieren, die gespeichert wird unter: %USERPROFILE%\OpenVPN\config

openvpn-config

Mit Batchdatei Netzlaufwerk verbinden

Die Batchdateien müssen im Verzeichnis config sein und denselben Namen haben wie der Dateiname der Konfiguration (.ovpn). Dabei muss _up hinzugefügt werden, wie hier beginnt der Dateiname mit VPNConfig und angehängt _up, gibt VPNConfig_up.bat.

openvpn verbindungsskript

Der Inhalt der Batchdatei für den Verbindungsaufbau kann wie folgt aussehen. Damit wird beim Verbinden mit OpenVPN ein Netzlaufwerk zum Server verbunden.

VPNConfig_up_bat
Abbildung: VPNConfig_up.bat

Es wird mit VPNConfig_up.bat das Netzlaufwerk I: zum Server tower gemappt, hier in diesem Beispiel mit Domänen Anmeldung city.local als Benutzer user mit Passwort password. Soll kein sichtbares Passwort im Batch stehen, entfernt man dieses, danach erscheint die Passwort Eingabeaufforderung.

VPNConfig_down_bat
Abbildung: VPNConfig_down.bat

Nach trennen der OpenVPN Verbindung werden durch den Batch VPNConfig_down.bat die Netzlaufwerke wieder getrennt.

explorer-openvpn-config

Die Batchdateien müssen im selben Verzeichnis sein, hier im Benutzerprofil unter OpenVPN zusammen mit der ovpn-Datei im Verzeichnis config.

  Wenn man vor dem importieren die Konfigurationsdatei umbenennt, hier VPNConfig.ovpn zB. CityOffice.ovpn, dann erscheint im Kontextmenü bei Verbinden im OpenVPN GUI dieser Name zum Ziel. Die Batchdateien müssen dabei vor _up und _down dieselben Namen haben.

  Damit der Servername bei net use aufgelöst wird, wird in der ovpn-Datei (VPNConfig.ovpn) der Eintrag dhcp-option DNS editiert.

dhcp-option DNS 192.168.3.110

In diesem Beispiel ist der DNS 192.168.3.110 im entfernten Netzwerk, zu diesem wir uns mit OpenVPN verbinden. Ist im Netzwerk kein DNS vorhanden, muss anstelle des Hostname die IP Adresse angegeben werden.

OpenVPN Einstellungen

In den OpenVPN – Einstellungen findet man die Möglichkeit zur Festlegung für den Ort der Konfigurationsdateien und Logdateien, hier kann der Pfad zu den Dateien geändert werden, ebenfalls gibt es die Möglichkeit die Erweiterung (.ovpn) zu bestimmen. Die Anpassung der Pfade kann nützlich sein, um beispielsweise bei der Nutzung von Roaming Profile, mit Anlegen des Ordners für die OpenVPN Verbindungen unter %APPDATA%, oder bei der Verwendung von Offlineordner, kann dieser individuell festgelegt werden.

OpenVPN-Einstellungen
Abbildung: OpenVPN Einstellungen

In den OpenVPN Einstellungen nötigenfalls die Werte für Skriptdateien ändern. Im Bereich bei Skript-Timeout bei Timeout für Preconnect-Skript, in diesem Fall die Batchdatei VPNConfig_up.bat, und VPNConfig_down.bat bei Timeout für Disconnect-Skript.

Beispiel für ein Netlogon Verbindungsskript (xxxxxxxx_up.bat):
@echo off
timeout 5
REM Netzwerk Drucker verbinden
rundll32 printui.dll,PrintUIEntry /in /n \\tower\laserjet_office
REM Netzlaufwerk mappen
net use I: \\tower\office /persistent:no /user:city\max pass123
REM Warten zwei pings
ping localhost -n 2 > nul
REM Pop-Up Fenster mit Nachricht Willkommen
echo msgbox"Willkommen %USERNAME% bei %USERDOMAIN%.",vbInformation , "Nachricht"> %temp%\msg.vbs 
%temp%\msg.vbs
REM Willkommen Nachricht löschen
erase %temp%\msg.vbs

KiTTY Terminal Character Set Translation

PuTTY und KiTTY Character Set Translation der Terminal Zeichenkodierung

Wird im Terminal die Ausgabe von Linux Shell Commands nicht wie gewünscht dargestellt, liegt es an der Übersetzung der Zeichen Codepage des Terminals, oder es liegt ein nicht korrektes Unicode Systemgebietsschema auf dem Host vor. Der Beitrag zeigt die Einstellung der Unicode Zeichen Tabelle auf dem Linux Host, und die Character Set Translation der Zeichenkodierung beim Terminal Client PuTTY und KiTTY.

Immer mehr Linux-Systeme nutzen UTF-8 statt ISO-8859 für die Zeichenkodierung.

PuTTY unter Windows ist per Standard mit der Zeichenkodierung UFT-8 für die Character Set Translation korrekt eingestellt.

PuTTY Configuration Remote Zeichenkodierung UFT-8
Abbildung: PuTTY Character Set Translation

KiTTY der ebenso freie Clone von PuTTY, hat Standardmässig bei Character Set Translation die Zeichenkodierung ISO-8859-1:1998 (latin-1, West Europa) voreingestellt.

KiTTY Translation Zeichenkodierung UFT-8
Abbildung: KiTTY Character Set Translation

Die Zeichenkodierung sollte bei KiTTY auf UTF-8 geändert werden. Die gespeicherten Host werden im Abschnitt Session aus der Liste Saved Sessions mit Load geöffnet und angepasst.

KiTTY Zeichenkodierung sollte bei KiTTY auf UTF-8 geändert werden

Beim Linux-System wird die Zeichenkodierung mit locale abgefragt.

$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME=en_GB.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"ddd
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Die Verfügbaren Locales ausgeben.

$ locale -a

In der Datei /etc/default/locale sind die Default Einstellungen.

$ cat /etc/default/locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_TIME=en_GB.UTF-8

Das Systemgebietsschema wird unter Debian 10 (Buster) mit dpkg-reconfigure locales festgelegt. UTF-8 sollte der Standard sein.

Debian dpkg-reconfigure locales
Abbildung: dpkg-reconfigure locales

Bei CentOS/RHEL Linux wird das Systemgebietsschema wie folgt festgelegt.

$ sudo localectl set-locale LANG=de_DE.UTF-8

Globale Gebietsschemaeinstellungen findet man in den Dateien.

  • /etc/default/locale – Ubuntu/Debian
  • /etc/locale.conf – CentOS/RHEL