Networkmanager | Tag | ohneKontur - der Blog https://www.ohnekontur.de ohne Linien und Kanten und trotzdem gefangen Fri, 28 Nov 2014 09:53:55 +0000 en-US hourly 1 https://wordpress.org/?v=6.4.5 Autoconnect VPN mit Networkmanager https://www.ohnekontur.de/2012/02/19/autoconnect-vpn-mit-networkmanager/ https://www.ohnekontur.de/2012/02/19/autoconnect-vpn-mit-networkmanager/#respond Sun, 19 Feb 2012 04:43:56 +0000 http://www.ohnekontur.de/?p=1728 Mein Notebook soll sich wenn es sich nicht in meinem Heimnetzwerk befindet mit dem VPN verbinden. Dazu hab ich ein kleines Script für den Networkmanager (dispatcher.d) geschrieben: #!/bin/bash # vpnAutoconnect ## ## FILE: 20vpnautoconnect ## ## DESCRIPTION: Script for networkdispatcher.d … Continue reading

The post Autoconnect VPN mit Networkmanager first appeared on ohneKontur - der Blog.]]>
Mein Notebook soll sich wenn es sich nicht in meinem Heimnetzwerk befindet mit dem VPN verbinden.
Dazu hab ich ein kleines Script für den Networkmanager (dispatcher.d) geschrieben:

#!/bin/bash
# vpnAutoconnect
##
## FILE: 20vpnautoconnect
##
## DESCRIPTION: Script for networkdispatcher.d to autoconnect to VPN
##
## AUTHOR: balu
##
## DATE: 19.02.2012
## 
## VERSION: 0.3
##
## INITIALISIERUNG:
#Diese Werte kommen vom NetworkManager
INTERFACE=$1
ACTION=$2

##Name der VPN verbindung im Netzwerkmanager
VPN_CONNECTION_NAME="vpnName"


## Interface bei welchen vpn in frage kommt ( mehrere mit Leerzeichen getrennt )
INTERFACES=(wlan0)

## ESSID der Netzte die kein VPN brauchen
ESSIDS_KEIN_VPN=( Essid1 Essid2 )


##---- do not edit below here ---- ##
# @param $1 mixed  Needle  
# @param $2 array  Haystack
# @return  Success (1) if value exists, Failure(0) otherwise
# Usage: in_array "$needle" "${haystack[@]}"
in_array() {
    local hay needle=$1
    shift
    for hay; do
        [[ $hay == $needle ]] && return 1
    done
    return 0
}

#wenn uns das interface überhaupt interessiert
in_array $INTERFACE "${INTERFACES[@]}"
if [ $? -eq 1 ]; then

	
	## ESSID des verbundenen Netzwerks bestimmen
	ESSID=$(iwconfig $INTERFACE | grep ESSID | cut -d":" -f2 | sed -e 's/"//g')
	in_array $ESSID "${ESSIDS_KEIN_VPN[@]}"
	if [ $? -ne 1 ]; then
		
## Funktionen durchführen, je nach Aktion eine andere
case "${ACTION}" in
        up)
		nmcli con up id "${VPN_CONNECTION_NAME}"
		;;

        down)
                nmcli con down id "${VPN_CONNECTION_NAME}"
		#killall vpnc
                ;;

        pre-up)
                ;;

        post-down)
                ;;

        *)
                echo $"Usage: $0 {up|down|pre-up|post-down}"
                exit 1
esac

	fi
fi

Das Scirpt muss damit es funktioniert in /etc/NetworkManager/dispatcher.d/ abgelegt werden (z.B. al 20vpnautoconnect) dann noch dem Benutzer und der Gruppe root zugeordnet

chown root:root /etc/NetworkManager/dispatcher.d/20vpnautoconnect

und die Rechte angepasst

chmod 700 /etc/NetworkManager/dispatcher.d/20vpnautoconnect

P.S.
Ich hatte anfangs Probleme, dass die Verbindung nicht funktioniert, lag am storage der Passwörter des Networkmanager (vpn passwörter liegen in der Keychain des users,
das Script führt root aus) um das zu beheben kann man den Networkmanager anweisen die passwörter selber zu speichern, dazu in der Datei /etc/NetworkManager/system-connections/$vpnname die pass flags von 1 auf 0 ändern,
und nach dem ändern eevl. im Networkmanager unter der Verbindung die Passwörter nochmal eintragen

The post Autoconnect VPN mit Networkmanager first appeared on ohneKontur - der Blog.]]>
https://www.ohnekontur.de/2012/02/19/autoconnect-vpn-mit-networkmanager/feed/ 0