Reconnexion vpn : solution radicale

Forum traitant de la distribution sécurisée montante nommée IP cop et basée sur la distribution Smoothwall. C'est à l'heure actuelle le forum le plus actif du site.

Modérateur: modos Ixus

Reconnexion vpn : solution radicale

Messagepar nl » 02 Mai 2007 16:55

Malheureusement, tous les scripts de reconnexions actuels se basent sur la disponibilité de l'adresse distante.

Mon provider change fréquemment d'adresse et la redistribue directement à un autre utilisateur, ce qui fait qu'aucun des scripts de reconnexion vpn automatique ne fonctionne pour moi, car l'adresse est toujours disponible.

C'est pourquoi, j'ai créer deux petits scripts batch sur mes serveur en utilisant Putty. (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)

Je vous les mets à disposition :

***************
::check_vpn.bat
set server=10.0.1.2

:: Si Ping pas OK
PING %server% -n 1 |find "TTL=" || call restart_vpn.bat

***************
::restart_vpn.bat

echo ********************************
echo ***** Restarting VPN *********
echo ********************************

::Mise à jour DNS
plink ADRESSE_LOCALE -ssh -P 222 -l root -batch -pw MOTDEPASSE /usr/local/bin/setddns.pl

:: Reconnexion VPNs
plink ADRESSE_LOCALE -ssh -P 222 -l root -batch -pw MOTDEPASSE /usr/local/bin/ipsecctrl S
plink ADRESSE_DISTANTE1 -ssh -P 222 -l root -batch -pw MOTDEPASSE /usr/local/bin/ipsecctrl S
plink ADRESSE_DISTANTE2 -ssh -P 222 -l root -batch -pw MOTDEPASSE /usr/local/bin/ipsecctrl S
plink ADRESSE_DISTANTE3 -ssh -P 222 -l root -batch -pw MOTDEPASSE /usr/local/bin/ipsecctrl S


Pour que cela fonctionne correctement, faite d'abord un "plink ADRESSE_LOCALE -ssh -P 222 -l root" sur toutes vos destinations, afin qu'il mette en registre la clef publique.
Puis exécuter ces scripts sur vos serveurs respectifs à intervalles réguliers.

Attention, ne pas programmer l'exécutions des scripts à la même heure sur vos serveurs.

Si cela peut aider quelqu'uns ....
Avatar de l’utilisateur
nl
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 254
Inscrit le: 19 Déc 2002 01:00
Localisation: Suisse

Messagepar Franck78 » 03 Mai 2007 16:12

et un de plus qui s'essaye au problème... Tant mieux si tu es satisfait.

Mais plutôt que de commettre un nouveau script, j'eu préféré que tu décrivasses la manière de prendre en défaut le script intégré dans IPCop :lol:
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar nl » 03 Mai 2007 16:26

Le problème, c'est que le script ne peut pas détecter le changement d'adresse ip si celle-ci reste "pinguable".

Il faudrait que le script vpnwatch tente de se connecter à une page bien particulière d'ipcop (genre www.xxx.dyndns.org/check.cgi) au lieu de pinguer simplement xxx.dyndns.org.

Cela doit être faisable avec wget.

De plus il serait intéressant de lancer la reconnexion distante en cas de détection d'un changement d'adresse ip (wget www.xxx.dyndns.org/reconnect.cgi)

Malheureusement, je n'ai pas le temps de me pencher là dessus tout de suite.

Ma proposition de scripts fonctionne, mais c'est la manière "bourrin" en attendant une solution propre. De plus, c'est null au niveau sécurité, car les scripts contiennent les mots de passe en clair :oops:

J'essayerais de trouver une solution adéquate prochainement.

Cordialement
Avatar de l’utilisateur
nl
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 254
Inscrit le: 19 Déc 2002 01:00
Localisation: Suisse

Messagepar Franck78 » 03 Mai 2007 17:55

Je pense que tu n'as absolument pas prété attention au script vpn-watch d'IPCop (1.4.13 mini).

Il ne n'utilise pas le ping, qui comme tu l'as bien compris n'identifie rien.

Il resout simplement le nom 'dns' du peer et quand cette adresse change, il déclenche la reconnexion.

Car il est bien évident que si le peer est en IP dynamique, le peer est obligé d'updater son adresse dns pour être retrouvé.
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris

Messagepar nl » 03 Mai 2007 18:22

Code: Tout sélectionner
if which arp >/dev/null 2>&1; then
         RESULT=$(arp "$1" 2>/dev/null | awk '{ print $2 }' | tr -d '()')
      elif which traceroute >/dev/null 2>&1; then
         RESULT=$(traceroute -m1 -q1 "$1" 2>/dev/null | head -n1 | awk '{ print $4 }' | tr -d '(),')
      else
         RESULT=$(ping -q -c1 -w2 -s0 "$1" 2>/dev/null | head -n1 | awk '{ print $3 }' | tr -d '()')
      fi

(vpn-watch 1.6.2)



arp, traceroute ou ping ... De toute façon, je pense que je ne suis pas le seul à prétendre que vpnwatch ne fonctionne pas à 100% et ce n'est pas parce que l'hôte distant est disponible et à jour que le tunnel est up.

Parfois même, ipcop affiche "Ouvert" (il détecte "IPSEC SA Established") et le tunnel ne fonctionne pas....

Donc je pense qu'il faut vérifier la promptitude du tunnel ipsec au lieu de la disponibilité de l'hôte ipcop.
Avatar de l’utilisateur
nl
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 254
Inscrit le: 19 Déc 2002 01:00
Localisation: Suisse

Messagepar Franck78 » 04 Mai 2007 02:19

cet extrait de code ne correspond pas à ce qu'il y a dans ipcop...
Franck
L'art de poser une question sur ce site afin d'obtenir la réponse
A LIRE
Avatar de l’utilisateur
Franck78
Amiral
Amiral
 
Messages: 5625
Inscrit le: 20 Fév 2004 01:00
Localisation: Paris


Retour vers IPCop

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron