Mehrere Benutzer mit individuellen VPNs teilen sich einen Endpunkt
Lösung auf Basis von Praxiserfahrungen
Dieser Artikel bietet eine Lösung, die nicht von der IGEL-Forschungs- und Entwicklungsabteilung genehmigt wurde. Daher kann kein offizieller Support durch IGEL geleistet werden. Testen Sie die Lösung gegebenenfalls, bevor Sie sie in einer produktiven Umgebung einsetzen.
Der Trick besteht darin, dass wir die OpenVPN-Konfigurationsdateien aller Benutzer (.ovpn
) mit dem Namen als <username>.ovpn
und unter /wfs
Wir haben dann dieses Skript /wfs/openvpn/connect.sh
---
#!/bin/bash
- Voraussetzungen:
- - die ovpn-Konfigurationsdatei aller Benutzer muss sich in /wfs/`
- Variablen initialisieren
answer=-1
declare -a profiles=($(cd /wfs ; ls *ovpn | sed -e 's/\.ovpn//' | tr '\n' ' '))
count=${#profiles[@]}
- Schleife bis ein gültiger Profilindex ausgewählt ist
bis [ $answer -ge 0 -a $answer -lt ${count} ]; do
clear
for((i=0;i<${count};i++)); do
echo "${i}: ${profiles[${i}]}"
done;
read -p "Wählen Sie die Ihrem Konto entsprechende Nummer: " answer
done
- exportiere Variable vpnuser für den Fall, dass ein Kindprozess sie benötigt (wahrscheinlich Overkill)
export vpnuser=${profiles[${answer}]}
- Bereite einen Nameserver nur vor, wenn noch keiner installiert ist
grep -q 192.168.1.222 /etc/resolv.conf || echo "nameserver 192.168.1.222" >> /etc/resolv.conf
- Starten Sie den openvpn-Client
openvpn --config /wfs/${vpnuser}.ovpn --daemon
---
(Das Nameserver-Bit ist erforderlich. Es muss ein interner DNS-Server sein, ich bin mir nicht sicher, wie man das verallgemeinern kann)
Als nächstes haben wir eine benutzerdefinierte Anwendung mit "Command" als:
pkexec /usr/bin/xfce4-terminal -T VPN --geometry=90x40-0+0 -x /wfs/openvpn/connect.sh