Wie kann ich OpenVPN ein Skript zuordnen, damit es ausgeführt wird, wenn das VPN erfolgreich verbunden ist?
Beste Antwort
network-manager-openvpn
keine solche Funktionalität bietet, müssen Sie openvpn
verwenden direkt.
Übergeben Sie --script-security 2 --up /path/to/your/script
dazu beim Anschließen. Wenn Sie eine Konfigurationsdatei verwenden, die sich unter /etc/openvpn/
befindet , hängen Sie die nächsten Zeilen an Ihre Konfigurationsdatei an:
script-security 2
# run /etc/openvpn/up.sh when the connection is set up
up /etc/openvpn/up.sh
Von der OpenVPN-Manpage:
--script-security level [method] This directive offers policy-level control over OpenVPN’s usage of external programs and scripts. Lower level values are more restrictive, higher values are more permissive. Settings for level: 0 -- Strictly no calling of external programs. 1 -- (Default) Only call built-in executables such as ifconfig, ip, route, or netsh. 2 -- Allow calling of built-in executables and user-defined scripts. 3 -- Allow passwords to be passed to scripts via environmental variables (potentially unsafe). --up cmd Shell command to run after successful TUN/TAP device open (pre --user UID change). The up script is useful for specifying route commands which route IP traffic destined for private subnets which exist at the other end of the VPN connection into the tunnel. Script Order of Execution --up Executed after TCP/UDP socket bind and TUN/TAP open. --down Executed after TCP/UDP and TUN/TAP close.
Es gibt noch weitere Ereignisse zur Skriptausführung, diese sind auf der Handbuchseite zu finden.
Erstellen Sie /etc/openvpn/up.sh
, und geben Sie ihm Ausführungsberechtigungen (z. B. 755 oder 700). Beispielinhalt zum Hinzufügen einer IPv6-Adresse und -Route (zu Bildungszwecken angezeigt, nicht direkt kopieren):
#!/bin/sh
# add an IPv6 address to device $dev (environment variable)
ip -6 addr add 2001:db8::1:2/112 dev $dev
# and the IPv6 route for this net using gateway 2001:db8::1
ip -6 route add 2001:db8::1:0/112 via 2001:db8::1 dev $dev
Beachten Sie, dass dies up
ist Skript wird als root ausgeführt. Wenn Sie keinen User
angegeben haben und Group
-Einstellung führt OpenVPN Skripte wie down
aus auch als root.