Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#51 Le 01/03/2010, à 20:24

Papou

Re : Connexion VPN automatique (NetworkManager)

Merci coredump.

Ta proposition m'éclaire.

Compte tenu de ma (mé)connaissance du langage batch, j'ai pour l'instant bricolé la chose suivante en apprenant sur le tas le minimum nécessaire :

1) script de lancement et de verrouillage du VPN avec un test de la validité de connexion par ping d'une adresse web

#!/bin/bash

echo "Lancement de vpnstartandlock"
while [ 1 = 1 ]
do
  # Boucle de connection initiale au VPN 
  echo "Lancement connection vpn"
  while ! ifconfig | grep tap0
  do
    echo "vpn non actif : lancement"	
    connection-service "openvpn" start
    sleep 30
  done
  echo "vpn connecté"

  # Boucle de vérification ethernet tant que VPN est actif
  while ifconfig | grep tap0
  do
  # Test liaison ethernet par ping de Google
  echo "test ping"
  RetourPing=$(ping -c 1 -w 20 www.google.com | tail -n 1)
  echo $RetourPing
  # Si chaine vide , ça merde : arreter VPN et exit
  if [ "$RetourPing" = "" ] 
  then
     echo "ça merde : arret VPN pour relance"
     arret=$(connection-service "openvpn" stop)
     sleep 10
     # Redémarrer vpn
     echo "boucle de reconnection vpn"
     while ! ifconfig | grep tap0
     do
        echo "vpn non actif : lancement" 
        demarrage=$(connection-service "openvpn" start)
        sleep 30
     done 
     echo "vpn reconnecté"
  fi

  # Si chaine non vide , c'est OK : on continue
  [ "$RetourPing" = "" ] || echo "c'est OK" 
  sleep 10
  done 
done

2) script de déconnection qui tue le précédent.

#!/bin/bash

# Script d'arret de surveillance VPN et de deconnection

killall vpnstartandlock
connection-service "openvpn" stop

exit 0

C'est du brutal à affiner, mais cela fonctionne  .... !


Un pour tous et tous pour un, les petits ruisseaux feront les grandes rivières ...

Hors ligne

#52 Le 04/03/2010, à 07:24

MasterDav

Re : Connexion VPN automatique (NetworkManager)

Hop hop, petite info supplémentaire car je viens d'avoir le cas donc si ça peut servir: Les scripts connection-service et vpn-loop doivent appartenir au groupe et à l'utilisateur root (chmod & chgrp) sinon ça ne marche pas.

ps: je n'ai pas répondu bien que suivant du coin de l'oeil, car je n'avais pas la réponse à ton problème Papou

Hors ligne

#53 Le 05/03/2010, à 03:40

lynn

Re : Connexion VPN automatique (NetworkManager)

Bonsoir la communauté,

Je me suis servie des informations contenues dans ce post pour me faire un petit bricolage pour mon VPN et pour ça, j'aimerai remercier particulièrement coredump, Masterdav et Papou.
J'ai essayé de simplifier les choses afin d'obtenir quelque chose de plus concis par rapport à mes besoins. ( si ça sers à quelqu'un, et bien tant mieux smile )
Voici ma démarche :

Tout d'abord, j'ai placé les quatre scripts suivants dans /usr/local/bin/

Le premier nommé : connection-service, chmod +x pour le rendre exécutable

#!/bin/bash


    ############
    # SETTINGS #
    ############

get_connections_paths()
{
    dbus-send --system --print-reply --dest="$1" "/org/freedesktop/NetworkManagerSettings" "org.freedesktop.NetworkManagerSettings.ListConnections" \
    | grep "object path" | cut -d '"' -f2
}

get_connection_settings()
{
    dbus-send --system --print-reply --dest="$1" "$2" org.freedesktop.NetworkManagerSettings.Connection.GetSettings
}

get_connection_string_setting()
{
    echo "$1" | grep -A 1 \""$2"\" | grep variant | cut -d '"' -f2
}

get_connection_id()
{
    get_connection_string_setting "$1" "id"
}

get_connection_type()
{
    get_connection_string_setting "$1" "type"
}

get_device_type_by_connection_type()
{
    echo "$1" | grep -q "ethernet" && echo 1 && return
    echo "$1" | grep -q "wireless" && echo 2 && return
    echo 0
}

find_connection_path()
{
    for connection_path in `get_connections_paths "$1"`
    do
        connection_settings=`get_connection_settings "$1" "$connection_path"`
        connection_settings_id=`get_connection_id "$connection_settings"`
        [ "$connection_settings_id" = "$2" ] && echo "$1" "$connection_path"
    done
}

find_connection_path_everywhere()
{
    find_connection_path "org.freedesktop.NetworkManagerSystemSettings" "$1"
    find_connection_path "org.freedesktop.NetworkManagerUserSettings" "$1"
}

print_connections_ids()
{
    for connection_path in `get_connections_paths "$1"`
    do
        connection_settings=`get_connection_settings "$1" "$connection_path"`
        connection_settings_id=`get_connection_id "$connection_settings"`
        echo "$connection_settings_id"
    done
}

print_connections_ids_everywhere()
{
    print_connections_ids "org.freedesktop.NetworkManagerSystemSettings"
    print_connections_ids "org.freedesktop.NetworkManagerUserSettings"
}


    ###########
    # DEVICES #
    ###########

get_devices_paths()
{
    dbus-send --system --print-reply --dest="org.freedesktop.NetworkManager" "/org/freedesktop/NetworkManager" "org.freedesktop.NetworkManager.GetDevices" \
    | grep "object path" | cut -d '"' -f2
}

get_device_property()
{
    dbus-send --system --print-reply --dest="org.freedesktop.NetworkManager" "$1" "org.freedesktop.DBus.Properties.Get" string:"org.freedesktop.NetworkManager.Device" string:"$2" \
    | grep variant | awk '{print $3}'
}

get_device_type()
{
    get_device_property "$1" "DeviceType"
}

get_device_path_by_device_type()
{
    device_path_by_device_type="/"
    for device_path in `get_devices_paths`
    do
        device_type=`get_device_type "$device_path"`
        [ "$device_type" = "$1" ] && device_path_by_device_type="$device_path"
    done
    echo "$device_path_by_device_type"
}


    #######################
    # ACTIVES CONNECTIONS #
    #######################

get_actives_connections_paths()
{
    dbus-send --system --print-reply --dest="org.freedesktop.NetworkManager" "/org/freedesktop/NetworkManager" "org.freedesktop.DBus.Properties.Get" string:"org.freedesktop.NetworkManager" string:"ActiveConnections" \
    | grep "object path" | cut -d '"' -f2
}

get_last_active_connection_path()
{
    get_actives_connections_paths | tail -n 1
}

get_parent_connection_path_by_device_type()
{
    parent_connection_path="/"
    [ "$1" = 0 ] && parent_connection_path=`get_last_active_connection_path`
    echo "$parent_connection_path"
}

get_active_connection_property()
{
    dbus-send --system --print-reply --dest="org.freedesktop.NetworkManager" "$1" "org.freedesktop.DBus.Properties.Get" string:"org.freedesktop.NetworkManager.Connection.Active" string:"$2" \
    | grep variant | awk -F '"' '{print $2}'
}

get_active_connection_service()
{
    get_active_connection_property "$1" "ServiceName"
}

get_active_connection_path()
{
    get_active_connection_property "$1" "Connection"
}

get_active_connection_path_by_connection_path()
{
    for active_connection_path in `get_actives_connections_paths`
    do
        service=`get_active_connection_service $active_connection_path`
        path=`get_active_connection_path $active_connection_path`
        [ "$service" = "$1" ] && [ "$path" = "$2" ] && echo "$active_connection_path"
    done
}

print_actives_connections_ids()
{
    for active_connection_path in `get_actives_connections_paths`
    do
        service=`get_active_connection_service $active_connection_path`
        path=`get_active_connection_path $active_connection_path`
        connection_settings=`get_connection_settings "$service" "$path"`
        connection_settings_id=`get_connection_id "$connection_settings"`
        echo "$connection_settings_id"
    done
}


    ##############
    # START/STOP #
    ##############

start_connection()
{
    my_connection_complete_path=`find_connection_path_everywhere "$1"`
    my_connection_settings=`get_connection_settings $my_connection_complete_path`
    my_connection_type=`get_connection_type "$my_connection_settings"`
    my_connection_device_type=`get_device_type_by_connection_type "$my_connection_type"`
    
    my_connection_service=`echo $my_connection_complete_path | awk '{print $1}'`
    my_connection_path=`echo $my_connection_complete_path | awk '{print $2}'`
    my_connection_device_path=`get_device_path_by_device_type "$my_connection_device_type"`
    my_parent_connection_path=`get_parent_connection_path_by_device_type "$my_connection_device_type"`
    
    echo "connection_service=$my_connection_service"
    echo "connection_path=$my_connection_path"
    echo "connection_device_path=$my_connection_device_path"
    echo "parent_connection_path=$my_parent_connection_path"
    
    dbus-send --system --print-reply --dest="org.freedesktop.NetworkManager" /org/freedesktop/NetworkManager "org.freedesktop.NetworkManager.ActivateConnection" string:"$my_connection_service" objpath:"$my_connection_path" objpath:"$my_connection_device_path" objpath:"$my_parent_connection_path"
}

stop_connection()
{
    my_connection_complete_path=`find_connection_path_everywhere "$1"`
    my_active_connection_path=`get_active_connection_path_by_connection_path $my_connection_complete_path`
    
    echo "active_connection_path=$my_active_connection_path"
    
    dbus-send --system --print-reply --dest="org.freedesktop.NetworkManager" /org/freedesktop/NetworkManager "org.freedesktop.NetworkManager.DeactivateConnection" objpath:"$my_active_connection_path"
}


    ########
    # MAIN #
    ########

invalid_arguments()
{
    echo "Usage: `basename "$0"` connexion_name start|stop"
    echo "Connexion disponibles:"
    print_connections_ids_everywhere
    echo "Connexion actives:"
    print_actives_connections_ids
    exit 0
}

[ "$#" != 2 ] && invalid_arguments

case "$2" in
    "start")
        start_connection "$1"
            ;;
    "stop")
        stop_connection "$1"
        ;;
    "restart")
        stop_connection "$1"
        start_connection "$1"
        ;;
    "status")
        if print_actives_connections_ids | grep -q -x "$1"
        then
            echo "Connexion \"$1\" active"
            exit 0
        else
            echo "Connexion \"$1\" inactive"
            exit 1
        fi
        ;;
    *)
        invalid_arguments
        ;;
esac

Le deuxième nommé : vpnstop, chmod +x pour le rendre exécutable. Ce script est fait pour être lié à un lanceur afin de désactiver manuellement le VPN.

#!/bin/bash
# Script d'arret du bouclage VPN et de déconnexion 
chmod -x /etc/NetworkManager/dispatcher.d/02-loop-vpn
connection-service "MonVpn" stop

Le troisième nommé : vpnstart, chmod +x pour le rendre exécutable. Ce script est fait pour être lié à un lanceur afin d'activer manuellement le VPN.

#!/bin/bash
# Script de lancement de connection VPN et de bouclage
chmod +x /etc/NetworkManager/dispatcher.d/02-loop-vpn
connection-service "MonVpn" start

et enfin, le dernier script pour cet emplacement que j'ai nommé vpnboot. chmod +x pour le rendre exécutable. J'ai fait un lien dans le menu "Préférences", "Applications au démarrage" pour son exécution automatique.

#!/bin/bash
## Si le VPN à été désactivé avec le script de déconnexion "vpnstop", alors, le script "02-loop-vpn" placé dans /etc/NetworkManager/dispatcher.d/ sera remis avec la valeur " +x " afin de ré-enclencher automatiquement le VPN lors de la prochaine instance.
 
chmod +x /etc/NetworkManager/dispatcher.d/02-loop-vpn &
/etc/NetworkManager/dispatcher.d/02-loop-vpn

J'ai placé le script nommé 02-loop-vpn dans /etc/NetworkManager/dispatcher.d/

#!/bin/bash
# Script de lancement de connection VPN avec verification

CONNECTION_NAME="MonVpn"


while ! connection-service "$CONNECTION_NAME" status
do
  connection-service "$CONNECTION_NAME" start
  sleep 10
done

Pour ce script, j'ai effectué un

sudo chown nom\d'utilisateur:root 02-loop-vpn

Cela permet d'avoir les permissions suffisantes pour activer et désactiver le vpn avec les lanceurs manuels que j'ai crée avant wink


«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#54 Le 16/03/2010, à 22:52

MasterDav

Re : Connexion VPN automatique (NetworkManager)

Salut,

alors j'ai le même problème que Papou (avec le même fournisseur VPN, comme de par hasard) et la solution de coredump (qu'est-ce qu'on aurait fait sans toi !!!) me semble plus "propre" que celle du ping de google car en cas de serveur down on va se retrouver avec le vpn qui sera relancé en boucle.

Tout d'abord, petite parenthèse concernant le lancement en tâche de fond, ayant eu des soucis avec rc-update et les /etc/rcX.d pour lancer deluged automatiquement au boot de la machine, je conseillerai plutôt de passer par les applications de démarrage (dans préférences). On a gnome et toutes les interfaces gtk, autant en profiter tongue
Et puis dans mon cas, j'ai passé des heures à suivre les tutos, à faire des scripts pour lancer un pauvre daemon en auto au boot -ce que je n'ai jamais réussi à faire marcher- alors qu'en 3 clics ça se fait tout seul et tout simplement. Certes c'était sur Karmic Server et pas sur Karmic Desktop.
Fin de parenthèse.

edit: le code suivant de CoreDump est super clean, c'est moi qui suis définitivement une quiche en bash tongue

#!/bin/bash

ERROR_MESSAGE="RESOLVE: Cannot resolve host address: miranda.vpntunnel.se: \[HOST_NOT_FOUND\] The specified host is unknown."

tail -f /var/log/daemon.log | while read line
do
	openvpn_message=`echo "$line" | grep -o "nm-openvpn.*$"`

	if [ "$openvpn_message" != "$last_openvpn_message" ]
	then
		if echo "$openvpn_message" | grep "$ERROR_MESSAGE"
		then
			connection-service "VPN toto" restart
		fi
		last_openvpn_message="$openvpn_message"
	fi
done

Désolé ^^

Dernière modification par MasterDav (Le 16/03/2010, à 23:02)

Hors ligne

#55 Le 18/03/2010, à 19:29

MasterDav

Re : Connexion VPN automatique (NetworkManager)

Je viens d'avoir un nouveau message d'erreur dans daemon.log qui me bloque la connexion vpn:

Mar 18 19:26:58 toto nm-openvpn[2069]: RESOLVE: Cannot resolve host address: miranda.vpntunnel.se: [TRY_AGAIN] A temporary error occurred on an authoritative name server.

Je propose donc le correctif suivant sur le code:

debloque-vpn

#!/bin/bash

ERROR_MESSAGE="Cannot resolve host address: miranda.vpntunnel.se"

tail -f /var/log/daemon.log | while read line
do
	openvpn_message=`echo "$line" | grep -o "nm-openvpn.*$"`

	if [ "$openvpn_message" != "$last_openvpn_message" ]
	then
		if echo "$openvpn_message" | grep "$ERROR_MESSAGE"
		then
			connection-service "VPN toto" restart
		fi
		last_openvpn_message="$openvpn_message"
	fi
done

Si je ne dis pas de bêtise, ça devrait fonctionner. A confirmer.

Hors ligne

#56 Le 07/04/2010, à 01:08

MasterDav

Re : Connexion VPN automatique (NetworkManager)

Salut, il s'avère que ce script ne marche pas terrible: au bout d'un moment il ne veut plus lire le log bien qu'il soit toujours lancé. Comprends pas.

Je viens en conséquence de réécrire un script en me basant sur le test ping de Papou et en essayant de faire le plus propre possible, je le posterai après avoir vérifié qu'il fonctionne bien.

Je vous tiens au courant.

Hors ligne

#57 Le 25/04/2010, à 07:01

taltan

Re : Connexion VPN automatique (NetworkManager)

Ola

Merci à tous pour les différents scripts...

Une question, sur la problématique des scripts de connexion automatique "à la demande" et la méthode de changement de droit (+x ou -x) sur le script 02-loop-vpn dans le dossier /etc/NetworkManager/dispatcher.d pour le rendre actif/inactif. Pour que le script soit actif il faut qu'il appartienne à l'utilisateur root, donc comment changer les droits sur ce script en étant simple utilisateur ?

Si on lui donne les droits user.root en 755, les chmod sont OK mais la reconnexion auto ne fonctionne plus, le message d'erreur est le suivant dans le fichier /var/log/daemon.log :

nm-dispatcher.action: Script '/etc/NetworkManager/dispatcher.d/02-loop-vpn' could not be executed: not owned by root

Si on lui donne les droits root.user en 775, les chmod sont NOK et la reconnexion auto ne fonctionne plus, le message d'erreur est le suivant dans le fichier /var/log/daemon.log :

nm-dispatcher.action: Script '/etc/NetworkManager/dispatcher.d/02-loop-vpn' could not be executed: writable by group or other, or set-UID

Dernière modification par taltan (Le 25/04/2010, à 07:03)

Hors ligne

#58 Le 26/04/2010, à 00:24

MasterDav

Re : Connexion VPN automatique (NetworkManager)

Le script doit appartenir à root.root pour fonctionner comme il faut.

Ce qui me fait penser que je n'ai toujours pas mis ici mon nouveau script testé et rodé, 100% fonctionnel.

vpn-script

#!/bin/bash

#Variable
VPN_NAME="VPNTunnel.se"

#Start/Stop
start_script()
{
	#Connexion VPN
	while ! ifconfig | grep tap0
	do
		connection-service "$VPN_NAME" start
	done
	
	#Check VPN
	while ifconfig | grep tap0
	do
		if [ "`ping -c 1 -w 30 melissa.vpntunnel.se | tail -n 1`" = "" ]
		then
			stop_script
			start_script
		else
			sleep 30
		fi
	done
	
	start_script
}

stop_script()
{
	connection-service "$VPN_NAME" stop
	sleep 10
}

#Arguments
case "$1" in
	"start")
		start_script
		;;
	"stop")
		stop_script
		exit 0
		;;
	"restart")
		stop_script
		start_script
		;;
	*)
		echo "invalid arguments"
		exit 0
		;;
esac

Pour qu'il fonctionne:
- chown root && chgrp root && chmod +x
- à placer dans /usr/local/bin
- ajouter une entrée "vpn-script start" aux applications de démarrage
- modifier la variable "VPN_NAME" selon le nom que vous avez donné à votre connexion VPN. Dans mon cas VPNTunnel.se
- modifier le serveur de votre VPN, dans mon cas melissa.vpntunnel.se

En ce qui concerne les arguments il ne m'ont servi qu'à titre de test et je les ai laissé au cas où. Ils ne marchent pas terrible. Avec Lynx qui sort dans peu de temps, je verrai si ce script est toujours nécessaire et m'y replongerai le cas échéant.

My 2 cents.

Dernière modification par MasterDav (Le 26/04/2010, à 00:29)

Hors ligne

#59 Le 12/05/2010, à 15:25

mastergb

Re : Connexion VPN automatique (NetworkManager)

Hello a tous smile
J'en avais un peu marre de tous scripts a n'en plus finir. J'ai donc commencé a creer un daemon en C très léger qui ecoute DBUS et qui reconnecte la connection VPN automatiquement.:P
Plus besoin de aucun script a copier dans le systeme il suffit juste qu'il soit lancé et il s'occupe de tout
Il reagit en fonction de la case a coché "connecter automatiquement". Si vous decocher la case alors il ne se reconnectera plus automatiquement. Bientot disponible  IL manque juste le chargeur de config a faire mais j'ai en pour très peu de temps Bien sur je remercie tous les contributeurs de ce thread qui sans eux j'aurais mis beaucoup plus de temps a connaitre les différents messages. Je vous poste des news d'ici la fin de semaine.
Vous pouvez également suivre la sortie sur mon twitter http://www.twitter.com/vpnautoconnect
Je vais également poster mes règles firewalls qui permettent de surfer uniquement sur la connexion VPN a l'exception de certain port qui peuvent passer sur la connexion normale.

Dernière modification par mastergb (Le 12/05/2010, à 15:26)

Hors ligne

#60 Le 13/05/2010, à 16:18

mastergb

Re : Connexion VPN automatique (NetworkManager)

Bon voila release de mon daemon pour reconnecter un vpn.
https://sourceforge.net/projects/vpnautoconnect/

Il détecte les déconnexions et fait la difference entre les déconnexion volontaire et les déconnexion du a une coupure. Bien sur c'est paramétrable et peut se configurer pour reconnecter mais si on a volontairement coupé. Il prend en compte le paramètre autoconnect de la connexion vpn en temps réel. Donc si par exemple vous voulez arrêter la reconnection il suffit d'aller dans les paramètres de votre connexion et décocher connexion automatique.
Il détecte aussi les reconnections de la connexion parente et reconnecte celui ci si la connexion parente se reconnecte.
C'est une beta mais elle tourne chez moi impeccable.
Pour la compiler il faut libdbus-glib-1-dev et c'est tout.
Le daemon est prévu pour s'exécuter dans les applications au démarrage de l'utilisateur.
J'attend des feedbacks pour corriger les bugs eventuel

Hors ligne

#61 Le 13/05/2010, à 16:41

lynn

Re : Connexion VPN automatique (NetworkManager)

Bonjour,

Je suis tentée pour tester ton application mais il faudrait un peu d'explication pour la marche à suivre. Tu parles de compilation, je veux bien mais un petit tuto au pas à pas m'aurais bien aidé à vrai dire tongue J'ai bien le composant libdbus-glib-1-dev d'installé mais après je fais quoi ?

Merci de ton attention


«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#62 Le 13/05/2010, à 17:08

mastergb

Re : Connexion VPN automatique (NetworkManager)

Je suis en train de faire une doc. l'executable compilé est dans le paquet pour architecture 32 bit. Si tu a 64 bit il faudra compiler. C'est pas tres dur il suffit d'installer le paquet de developpement mentionné plus haut et de faire make
Je fais la doc puis apres un .deb wink
Si tu as une architecture 32bit il suffit juste de telecharger le paquet
puis decompresse
#tar xvfz vpnautoconnect-0.8.tar.gz
#cd vpnautoconnect-0.8
#cp vpnautoconnect /usr/local/bin/
tu edite le fichier de config vpnautoconnect.cfg et tu inscris le nom exacte de ta connexion vpn (celui mentionnée dans le networkmanager)
Tu renseigne le nom de la connexion support (celle qui permet d'atablir le tunnel en general c'est eth0 avec un cable reseau ou wlan0 quand tu est en wifi). Meme chose que precedemmet c'est le nom exact tel que mis dans le network manager.
Tu copie le fichier de conf dans etc
#cp vpnautoconnect.cfg /etc/
Puis tu ajoute le le programme au demarrage c'est dans systeme->Préferences->Application au demarrage.
tu ajoute
/usr/local/bin/vpnautoconnect -c /etc/vpnautoconnect.cfg

Pour plus d'info tu peut me PM smile

Dernière modification par mastergb (Le 13/05/2010, à 17:09)

Hors ligne

#63 Le 13/05/2010, à 21:01

mastergb

Re : Connexion VPN automatique (NetworkManager)

Voila nouvelle version avec binaire x86 et 64 bit inclu pour ceux qui ont la flemme ^^
Il y aussi un petit readme et le soft prend en charge une nouvelle option qui facilite la création du fichier de config
big_smile

Hors ligne

#64 Le 14/05/2010, à 12:25

mastergb

Re : Connexion VPN automatique (NetworkManager)

Je viens de faire une série de test et il se trouve que le programme fonctionne mieux que prévu (c'est rare mais ca arrive) . Je pensais que les messages DBUS users ne pouvais etre lu uniquement par le user en question. Comme la connexion vpn est dans la session User je pensais que si le dameon etait lancé au startup il ne pouvais pas intercepter tous les messages. Il se trouvent que si et donc le programme peut etre lancé au startup et plus dans la session utilisateurs ce qui est une sacré bonne nouvelle !
Je change les scripts d'installation cool

Dernière modification par mastergb (Le 14/05/2010, à 12:26)

Hors ligne

#65 Le 14/05/2010, à 12:37

lynn

Re : Connexion VPN automatique (NetworkManager)

Je vais attendre les nouveaux scripts wink


«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#66 Le 14/05/2010, à 14:16

mastergb

Re : Connexion VPN automatique (NetworkManager)

Voila nouvelle version disponible.
Pas de script a demarrer au début de la session , le demon est lancé au démarrage de la distribution en tant que service. wink

Hors ligne

#67 Le 14/05/2010, à 16:37

Bloug

Re : Connexion VPN automatique (NetworkManager)

Merci mastergb.
J'étais utilisateur des scripts, je vais maintenant utiliser ton daemon.
wink

Hors ligne

#68 Le 14/05/2010, à 17:19

mastergb

Re : Connexion VPN automatique (NetworkManager)

Bloug a écrit :

Merci mastergb.
J'étais utilisateur des scripts, je vais maintenant utiliser ton daemon.
wink

De rien.
Je viens de poster sur sourceforge un paquet deb pour achitecture i386
Le 64 bit arrivera bientôt.

[edit] le 64 bit est dispo

Dernière modification par mastergb (Le 14/05/2010, à 17:34)

Hors ligne

#69 Le 16/05/2010, à 20:01

mastergb

Re : Connexion VPN automatique (NetworkManager)

Je viens de m'apercevoir que dans le cas ou la connexion qui supporte le vpn est une connexion dite "système" (comme eth0) le vpn de se lance pas au démarrage. La raison est simple: eth0 est monté avant l'ouverture de session est donc le daemon demande de lancer la connexion vpn alors que la session de l'utilisateur n'est pas ouverte.
Je vais corriger ca bientôt.
En attendant il faudra connecter le vpn manuellement lors de l'ouverture de la session. La reconnexion fonctionnera sans problème.

Hors ligne

#70 Le 18/05/2010, à 13:54

mastergb

Re : Connexion VPN automatique (NetworkManager)

Bonjour a tous,
Je viens de corriger quelques bugs + j'ai corrigé la compatibilité avec les liens ethX.
J'ai eu un peu de mal a reussir a connecter tout seul les connexion VPN dépendante d'une connexion dites systèmes. Le truc c'est que les connexion VPN sont user et elle sont "disponible" qu'après la connexion de l'utilisateur donc quand la connexion systèmes se montais on ne pouvais pas trouver la connexion user puisque que l'utilisateur n'était pas encore connecté. Comme je voulais garder la philosophie du daemon au demarrage sans "ajout" je me suis mis a chercher une solution que j'ai finalement trouvé. Je suis en train de préparer le source et les packages smile
Tout fonctionne a merveille! J'attend vos feedback!

Hors ligne

#71 Le 18/05/2010, à 16:26

lynn

Re : Connexion VPN automatique (NetworkManager)

J'attends la nouvelle version cool
Pour info, la version actuelle fonctionne parfaitement chez moi. Quelquefois, au démarrage du pc, le VPN à un peu de mal à se connecter; peut-être que ça vient de ce que tu expliquais dans ton message précédent avec eth0 qui appartient à root. Un timing de connexion un peu juste peut-être ...?
Je me suis juste rajoutée un script de test de connectivité réseau au cas ou la perte de connexion viendrait de mon F.A.I puis reviendrait par la suite, ce qui implique une relance de Network-Manager.

Enfin, je ne comprends toujours pas pourquoi Network-Manager, qui est quand même un logiciel majeur pour Ubuntu et d'autres distributions, se voit si mal "fini" avec tous ces manques hmm


«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#72 Le 18/05/2010, à 17:19

Bloug

Re : Connexion VPN automatique (NetworkManager)

Donc un petit feedback pour mastergb : j'ai installé ton deb version 0.9, et au reboot tout marche nickel !
Pour info, je l'ai installé sur une install toute fraîche de karmic (mon minipc n'aime pas lucid pour différentes raisons).
Encore merci.

@lynn : je suis d'accord avec toi concernant network-manager, j'ai du trouver une bidouille juste pour désactiver le wifi automatiquement au démarrage (voir ici pour ceux que ça intéresse).

Dernière modification par Bloug (Le 18/05/2010, à 18:18)

Hors ligne

#73 Le 18/05/2010, à 17:35

lynn

Re : Connexion VPN automatique (NetworkManager)

@ Bloug : Merci pour l'info smile Je pense que ça va me servir quand je suis à l'extérieur.
C'est vrai que vu comme ça, ca n'a l'air de rien, mais c'est ce genre de petits détails qui font qu'une application est réellement fonctionnelle ou non. Et c'est pas le cas de Network-Manager neutral


«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#74 Le 18/05/2010, à 21:31

mastergb

Re : Connexion VPN automatique (NetworkManager)

Alors pour le bloquage des flux j'ai des regles iptables qui font ca a merveille!
Pour le timing en fait j'ai trouvé.. En fait ca affecte les distributions qui ne demande pas de login.
Dans tous les cas il fait juste démarrer le service en 20 et pas 90...
Donc je vais repaqueter tout ca je vais également poster mes regles de firewalling qui ne permettent que de surfer sur le flux VPN a l'exception de certains port qui peuvent passer en clair (comme le 25 qui est souvent bloqué chez les vpns)

Pour ceux qui veulent la modif tout de suite il suffit de faire
sudo update-rc.d -f vpnautoconnect.sh remove

puis
sudo update-rc.d vpnautoconnect.sh defaults
puis redemarrer wink

@lynn : je suis d'accord avec toi concernant network-manager, j'ai du trouver une bidouille juste pour désactiver le wifi automatiquement au démarrage (voir ici pour ceux que ça intéresse).

Je peut l'intégrer au soft si tu veux....

Dernière modification par mastergb (Le 18/05/2010, à 21:46)

Hors ligne

#75 Le 19/05/2010, à 08:41

mastergb

Re : Connexion VPN automatique (NetworkManager)

Oui firestarter ne te sera plus nécessaire puisque sinon les deux vont faire des conneries.
Pour la prochaine version je vais retirer la configuratin du fichier du .deb pour uen raison simple:
Les .deb installé en graphique vont ouvrir une console par defaut caché et donc l'utilisateur final ne verrais pas forcement que le paquet demande une configuration d'origine.
Donc je vais changer quelques trucs et également le README que je vais mettre un peu plus detaillé.
Concernant les deconnexion des FAI. J'ai regardé et "normalement" le vpn s'effondre et se reconnecte avec le soft. Certain evoque un problème venant de networkManager et personnellement je pense pas. Je pense plus a un problème de route pas flushé dans la table de routing. Je vais regardé de plus prêt ce problème. Quoi qu'il en soit vpnautoconnect sais reconnecter une connexion FAI mais d''apres mes test le vpn ne se reconnecte pas avec sous sans vpnautoconnect....

Dernière modification par mastergb (Le 19/05/2010, à 08:41)

Hors ligne