Forum Freedom-IP VPN

Forum d'entraide de la communauté Freedom-IP VPN

Vous n'êtes pas identifié(e).

#26 2014-01-20 07:30:05

ljere
Membres de confiance
Inscription : 2012-04-22
Messages : 460

Re : démon vpn de reconnexion

Bonjour,
nouvelle mise à jour sur «script-vpn.sh» faites dans le premier message, elle permet de supporter toutes les valeurs possible / 1000 Mbits, / 200 Mbits, etc...

tab=(`awk -F">" 'BEGIN{} $5 ~ " / [0-9]* Mbits" {printf "%d\n", $4} END{}' /tmp/fip_occupation | head -n6`)

Amicalement,
ljere

Dernière modification par ljere (2014-01-20 07:31:16)


AMD 3000+, nvidia FX5200 et 2 giga de ram sur Voyager 12.04 LTS en 32 bit
et TOSHIBA satellite_c670d-11l sur openbox/xubuntu 14.04 en 64 bit

Hors ligne

#27 2014-07-19 05:10:44

coolni
Membre
Inscription : 2012-05-23
Messages : 121

Re : démon vpn de reconnexion

Bonjour Ljere,
Tout continue de bien fonctionner chez moi, je garde ton script + log sous le coude wink

Cordialement,

Hors ligne

#28 2014-07-31 16:39:52

anonyme1405461600
Banni(e)
Inscription : 2014-07-16
Messages : 65

Re : démon vpn de reconnexion

Bonjour !,
Comme le script de ljere ne fonctionne pas (sûrement des nouveaux nom des VPN), j'en ai fait un à ma sauce. smile
C'est mon 1er script sous linux !
Donc je me suis aidé des originaux et j’essaierais de les améliorer. smile
Il n'est pas aussi développé mais fait le minimum. big_smile
Il fonctionne mieux que vpnautoconnect !

/!\ Important :
Remplacer "00.00.00.00" par votre "vraie ip externe"
Remplacer "NOM_DU_RESEAU_WIFI" par votre nom de réseau wifi si vous en avez ou supprimer cette ligne.
Remplacer "Connexion filaire 1" par votre nom connexion filaire si vous en avez ou supprimer cette ligne.
remplacer "NOM_DU_VPN" par le nom que vous avez donné à votre vpn. (fonctionne pour le pptp et openvpn ; ex : "NL-(Pays-Bas)" )



[== Indéfini ==]
#!/bin/bash
# FREEDOM-IP AUTO CONNECT SCRIPT
# Script par adelo inspiré par celui de ljere et Didier-T

nmcli con up id "Connexion filaire 1"
nmcli con up id "NOM_DU_RESEAU_WIFI"

while true
do
echo
echo ----- VÉRIFICATION DE VOTRE ADRESSE IP...
ipnonprotege="00.00.00.00"
CURRENT_IP=`dig +short myip.opendns.com @resolver1.opendns.com`
echo Adresse IP actuelle: $CURRENT_IP
if [ "$CURRENT_IP" = "$ipnonprotege" ]; then
	echo
	echo "/!\ ip non protégée"		
	notify-send ' Message alerte VPN ' 'Votre adresse ip est non protégée' -i dialog-error
	echo connexion aux réseaux vpn
	nmcli con up id "NOM_DU_VPN"	
fi
sleep 10
done

Hors ligne

#29 2014-08-05 02:45:53

coolni
Membre
Inscription : 2012-05-23
Messages : 121

Re : démon vpn de reconnexion

Bonjour smile

Effectivement, quelques jours après mon dernier post le script de Ljere ne fonctionnait plus.
Merci à toi pour ton script, adelo, qui effectivement lance la connexion, et la reconnexion, très simplement, et rapidement au service VPN de FIP smile
Bravo pour ton 1er script, j'adhère ! smile

Dernière modification par coolni (2014-08-05 02:48:12)

Hors ligne

#30 2014-08-05 07:34:59

ljere
Membres de confiance
Inscription : 2012-04-22
Messages : 460

Re : démon vpn de reconnexion

Bonjour,
j'avais oublié de mettre à jour cette discussion, c'est donc chose faite les deux scripts ont été remis à jour,
si vous rencontrez le moindre souci n'hésitez pas à me le dire.

Cordialement,
ljere


AMD 3000+, nvidia FX5200 et 2 giga de ram sur Voyager 12.04 LTS en 32 bit
et TOSHIBA satellite_c670d-11l sur openbox/xubuntu 14.04 en 64 bit

Hors ligne

#31 2014-08-05 10:10:02

anonyme1405461600
Banni(e)
Inscription : 2014-07-16
Messages : 65

Re : démon vpn de reconnexion

#!/bin/bash
# FREEDOM-IP AUTO CONNECT SCRIPT V2
# Script par adelo inspiré par celui de ljere et Didier-T

ipnonprotege="00.00.00.00"
nomdureseau="NOM_DU_RESEAU"
nomduvpn="NOM_DU_VPN"

while true
do
echo `date "+%d/%m/%y %H:%M:%S"` >> /tmp/ip.log 2>&1
echo `date "+%d/%m/%y %H:%M:%S"` ----- VÉRIFICATION DE VOTRE ADRESSE IP... >> /tmp/ip.log 2>&1
CURRENT_IP=`dig +short myip.opendns.com @resolver1.opendns.com` >> /tmp/ip.log 2>&1
echo `date "+%d/%m/%y %H:%M:%S"` "Adresse IP actuelle  ": $CURRENT_IP >> /tmp/ip.log 2>&1
CURRENT_IP2=$(wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//') >> /tmp/ip.log 2>&1
echo `date "+%d/%m/%y %H:%M:%S"` "Adresse IP actuelle 2": $CURRENT_IP2 >> /tmp/ip.log 2>&1
nb_essais="0"
if [ "$CURRENT_IP" = "$ipnonprotege" ] || [ "$CURRENT_IP2" = "$ipnonprotege" ]; then
	while [ "$CURRENT_IP" = "$ipnonprotege" ]
	do
	max_essais="3"
	echo `date "+%d/%m/%y %H:%M:%S"` >> /tmp/ip.log 2>&1
	echo `date "+%d/%m/%y %H:%M:%S"` "/!\ ip non protégée" >> /tmp/ip.log 2>&1		
	`notify-send "Message d'alerte VPN" 'Votre adresse ip est non protégée' -i dialog-warning` >> /tmp/ip.log 2>&1

	if [ "$nb_essais" -gt "$max_essais" ]
	then
		echo `date "+%d/%m/%y %H:%M:%S"` "$nb_essais" /3 >> /tmp/ip.log 2>&1
		echo `date "+%d/%m/%y %H:%M:%S"` déconnexion et reconnecxion aux réseaux internet >> /tmp/ip.log 2>&1
		`nmcli con up down id "$nomdureseau"` >> /tmp/ip.log 2>&1
		sleep 5
		`nmcli con up up id "$nomdureseau"` >> /tmp/ip.log 2>&1
		nb_essais="0"
		sleep 10

	fi
	echo `date "+%d/%m/%y %H:%M:%S"` connexion aux réseaux vpn ... >> /tmp/ip.log 2>&1
	`nmcli con up id "$nomduvpn"` >> /tmp/ip.log 2>&1
	sleep 5
	let "nb_essais = nb_essais + 1" >> /tmp/ip.log 2>&1
	CURRENT_IP=`dig +short myip.opendns.com @resolver1.opendns.com` >> /tmp/ip.log 2>&1
	echo `date "+%d/%m/%y %H:%M:%S"` Adresse IP actuelle: $CURRENT_IP >> /tmp/ip.log 2>&1
	done
	echo `date "+%d/%m/%y %H:%M:%S"` Connexion au vpn réussie ! >> /tmp/ip.log 2>&1
	`notify-send "Message d'information" 'Connexion au vpn réussie' -t 5000 -i dialog-information` >> /tmp/ip.log 2>&1
fi
if [ "$CURRENT_IP" = "" ]; then
	`nmcli con down id "$nomdureseau"` >> /tmp/ip.log 2>&1
	while [ "$CURRENT_IP" = "" ]
	do
	echo `date "+%d/%m/%y %H:%M:%S"` >> /tmp/ip.log 2>&1
	echo `date "+%d/%m/%y %H:%M:%S"` "/!\ Pas d'internet" >> /tmp/ip.log 2>&1
	`notify-send "Message d'alerte" 'Connexion internet non fonctionnelle' -t 5000 -i dialog-error` >> /tmp/ip.log 2>&1
	sleep 5
	echo `date "+%d/%m/%y %H:%M:%S"` Connexion à internet ... >> /tmp/ip.log 2>&1
	`notify-send "Message d'alerte" 'Connexion à internet ...' -t 5000 -i dialog-information` >> /tmp/ip.log 2>&1
	`nmcli con up id "$nomdureseau"` >> /tmp/ip.log 2>&1
	sleep 10
	CURRENT_IP=`dig +short myip.opendns.com @resolver1.opendns.com` >> /tmp/ip.log 2>&1
	echo `date "+%d/%m/%y %H:%M:%S"` Adresse IP actuelle: $CURRENT_IP >> /tmp/ip.log 2>&1
	if [ "$CURRENT_IP" = "" ]
	then
	sleep 10
	CURRENT_IP=`dig +short myip.opendns.com @resolver1.opendns.com` >> /tmp/ip.log 2>&1
	fi
	done
echo `date "+%d/%m/%y %H:%M:%S"` Connexion à internet établie >> /tmp/ip.log 2>&1
`notify-send "Message d'information" 'Connexion à internet établie' -t 5000 -i dialog-information` >> /tmp/ip.log 2>&1
fi
sleep 10
done

Hors ligne

#32 2014-08-07 09:22:12

ljere
Membres de confiance
Inscription : 2012-04-22
Messages : 460

Re : démon vpn de reconnexion

Bonjour,
merci de tes retours, pour fr la méthode la plus simple reste de ne pas l'activer dans network-manager
pour NL4 que tu veux favoriser je te propose de modifier le premier script ainsi
d'abord tu ajoutes au début l'ip de nl4 en variable
$IP_NL4=00.000.000.00
puis

    sleep 5
        nmcli con down id "Connexion filaire 1"
    sleep 5
        nmcli con up id "Connexion filaire 1"
    sleep 5
        nmcli con up id "freedom-ip(NL4)"
    sleep 5
        if [[ $(dig +short myip.opendns.com @resolver1.opendns.com) != $IP_NL4 ]]; then     ## si l'ip n'est pas celle de nl4 on lance le second script
            echo "lancement du second script"
            sh -c '~/script/script-vpn'
    ) 2>&1 | tee -a $log

je pense que ça devrait fonctionner mais il faut tester, sinon pour fr si tu ne veux pas le retirer de network-manager,
il faudrait ajouter une exception dans la liste qui est créé dans le second script avec la commande

nmcli -t -f NAME con

je te laisse réfléchir au piste que je t'ai donné

pour le PPTP c'est un script à part qu'il faudrait créer.

pour ton script il y a beaucoup de répétition regarde mon script 1, j'y englobe tout et j'envoie le tout vers  /tmp/ip.log 2>&1
et n'hésite pas à utiliser des variables.


AMD 3000+, nvidia FX5200 et 2 giga de ram sur Voyager 12.04 LTS en 32 bit
et TOSHIBA satellite_c670d-11l sur openbox/xubuntu 14.04 en 64 bit

Hors ligne

#33 2014-08-07 10:38:14

anonyme1405461600
Banni(e)
Inscription : 2014-07-16
Messages : 65

Re : démon vpn de reconnexion

Bonjour,
Oui je viens de comprendre comment tu englobe tout en tu le met dans le log mais j'aimerais avoir la date avec et de préférence au début de chaque lignes. tongue
Si tu savais comment faire ce serait super !
Merci pour tes indications mais comme j'utilise plus le pptp je vais garder mon script mais le tien est vraiment  super ! (si tu pouvais en faire un autre pour le pptp je suis preneur ! big_smile)

Hors ligne

#34 2014-08-07 11:19:53

ljere
Membres de confiance
Inscription : 2012-04-22
Messages : 460

Re : démon vpn de reconnexion

le plus simplement du monde, je te donne un indice devil

12:13 linaro linaro-ubuntu-desktop 3.4.75-sun7i+ ~ $
echo `date "+%d/%m/%y %H:%M:%S"`
07/08/14 12:13:28
12:14 linaro linaro-ubuntu-desktop 3.4.75-sun7i+ ~ $
la_date=`date "+%d/%m/%y %H:%M:%S"`
12:15 linaro linaro-ubuntu-desktop 3.4.75-sun7i+ ~ $
echo $la_date
07/08/14 12:14:54

mais tu peux aussi aller plus vite en mettant juste

date

AMD 3000+, nvidia FX5200 et 2 giga de ram sur Voyager 12.04 LTS en 32 bit
et TOSHIBA satellite_c670d-11l sur openbox/xubuntu 14.04 en 64 bit

Hors ligne

#35 2014-08-07 11:39:45

anonyme1405461600
Banni(e)
Inscription : 2014-07-16
Messages : 65

Re : démon vpn de reconnexion

Oui ça je sais le faire mais on peut le mettre automatiquement au début de chaque lignes ? smile

Par exemple la commande :
echo bonjour !
donne dans le log
07/08/14 12:41:00 bonjour !

Hors ligne

#36 2014-08-09 21:21:21

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : démon vpn de reconnexion

Bonsoir adelo,
tu peut essayer ceci

echo $(date) bonjour !

par exemple, qui te retournera

samedi 9 août 2014, 22:17:39 (UTC+0200) bonjour !

ou encore

echo $(date "+%d/%m/%y %H:%M:%S") bonjour !

qui devrait répondre a tout tes souhaits.

Hors ligne

#37 2014-08-09 21:41:34

anonyme1405461600
Banni(e)
Inscription : 2014-07-16
Messages : 65

Re : démon vpn de reconnexion

Oui mais est-ce qu'on peut "englober" le script comme pour le demon-vpn avec :
(
script
) 2>&1 | tee -a $log
merci wink

Hors ligne

#38 2014-08-09 21:58:56

David
Bof !!!
Inscription : 2012-01-30
Messages : 6 132

Re : démon vpn de reconnexion

Bonsoir ...

Bah ... pourquoi pas smile

Par exemple :

(
  for n in 1 2 3 4 5 6; do
    echo "Message $n"
    sleep $n
  done
  echo "FINI"
) | while read l; do
  echo "$(date) : $l"
done

Ce qui affichera :

samedi 9 août 2014, 22:54:12 (UTC+0200) : Message 1
samedi 9 août 2014, 22:54:13 (UTC+0200) : Message 2
samedi 9 août 2014, 22:54:15 (UTC+0200) : Message 3
samedi 9 août 2014, 22:54:18 (UTC+0200) : Message 4
samedi 9 août 2014, 22:54:22 (UTC+0200) : Message 5
samedi 9 août 2014, 22:54:27 (UTC+0200) : Message 6
samedi 9 août 2014, 22:54:33 (UTC+0200) : FINI

Donc rien ne vous empêche de "piper" ce que vous voulez et de lire chacune des lignes de résultat pour les formater à votre guise smile

Cordialement, David.

Hors ligne

#39 2014-08-09 22:55:19

anonyme1405461600
Banni(e)
Inscription : 2014-07-16
Messages : 65

Re : démon vpn de reconnexion

Et pour tout mettre dans le log, je fais :
...
done 2>&1 |tee -a $log

Mais j'ai un doute, il faut peut être remettre des parentèses non ?
Sinon vous m'avez donné une très bonne idée, merci !

Hors ligne

#40 2014-08-09 23:05:29

David
Bof !!!
Inscription : 2012-01-30
Messages : 6 132

Re : démon vpn de reconnexion

(
  for n in 1 2 3 4 5 6; do
    echo "Message $n"
    sleep $n
  done
  echo "FINI"
) 2>&1 | while read l; do
  echo "$(date) : $l"
done | tee -a $log

Hors ligne

#41 2014-08-10 09:37:02

Didier-T
Contributeurs Confirmés
Lieu : Argenteuil
Inscription : 2014-02-01
Messages : 323

Re : démon vpn de reconnexion

Bonjour David,
j'aime beaucoup la dernière solution que tu proposes.
Si je me décide un jour à faire un fichier log dans l'un de mes scripts j'utiliserais cette méthode.

A+,
Didier.

Hors ligne

#42 2014-08-10 10:39:18

anonyme1405461600
Banni(e)
Inscription : 2014-07-16
Messages : 65

Re : démon vpn de reconnexion

Bonjour,
Merci David, c'est exactement ce que j'avais besoin.
Je vais l'utiliser dans mon script. big_smile

Hors ligne

#43 2014-08-25 12:08:15

anonyme1405461600
Banni(e)
Inscription : 2014-07-16
Messages : 65

Re : démon vpn de reconnexion

#!/bin/bash
# FREEDOM-IP AUTO CONNECT SCRIPT V3
# Script par adelo
# Sous license GPL

################### VARIABLES A MODIFIER ###################
ipnonprotege="00.000.000.00"
nomdureseau="NOMDURESEAU"
nomduvpn="NOMDUVPN"
+log=~/log/"ip-`date +%d-%m-%y`.log"
############################################################


mkdir ~/log

############################################## DEBUT FONCTIONS ###########################################

# Vérifie l'adresse ip
function verif_ip(){
CURRENT_IP=`dig +short myip.opendns.com @resolver1.opendns.com`
}

# déconecte et reconnecte le réseau
function decoreco_reseau(){
	echo déconnexion et reconnexion aux réseaux internet
	`nmcli con up down id "$nomdureseau"`
	sleep 3
	`nmcli con up up id "$nomdureseau"`
	sleep 10
}

# tente une reconnexion au réseau
function connexion_reseau(){
while [ "$CURRENT_IP" = "" ]
	do
	echo 
	echo "/!\ Pas d'internet"
	`notify-send "Message d'alerte" 'Connexion internet non fonctionnelle' -t 3000 -i dialog-error`
	echo Connexion à internet ...
	`notify-send "Message d'alerte" 'Connexion à internet ...' -t 3000 -i dialog-information`
	`nmcli con up id "$nomdureseau"`
	sleep 10
	verif_ip
	if [ "$CURRENT_IP" = "" ]
	then
	sleep 10
	verif_ip
	fi
	echo Adresse IP actuelle: $CURRENT_IP
	done
}

# tente la reconnexion au vpn
function connexion_vpn(){
	echo 
	echo "/!\ ip non protégée"	
	`notify-send "Message d'alerte VPN" 'Votre adresse ip est non protégée' -t 3000 -i dialog-warning`
	echo connexion aux réseaux vpn ...
	`nmcli con up id "$nomduvpn"`
	sleep 10
	verif_ip
	echo Adresse IP actuelle: $CURRENT_IP
}

function boucle_vpn(){
while [ "$CURRENT_IP" = "$ipnonprotege" ]
do
connexion_vpn
if [ "$CURRENT_IP" = "$ipnonprotege" ]
	then
	connexion_vpn
	if [ "$CURRENT_IP" = "$ipnonprotege" ]
		then
		connexion_vpn
		if [ "$CURRENT_IP" = "$ipnonprotege" ]
			then
# Déconnecte et reconnecte le réseau
			decoreco_reseau
			connexion_vpn
		fi
	fi
fi
done
}

############################################## FIN FONCTIONS ##############################################



while true
do
(
echo 
echo VÉRIFICATION DE VOTRE ADRESSE IP...
verif_ip
echo "Adresse IP actuelle  ": $CURRENT_IP

# Vérifie si l'adresse ip actuelle est la vraie ou celle du vpn
if [ "$CURRENT_IP" = "$ipnonprotege" ]
	then
	boucle_vpn
	echo Connexion au vpn réussie !
	`notify-send "Message d'information" 'Connexion au vpn réussie' -t 3000 -i dialog-information`
fi

# Vérifie s'il y a du réseau
if [ "$CURRENT_IP" = "" ]
	then
	`nmcli con down id "$nomdureseau"`
	connexion_reseau
	echo Connexion à internet établie
	`notify-send "Message d'information" 'Connexion à internet établie' -t 3000 -i dialog-information`
fi
sleep 10
) 2>&1 | while read l; do
echo "`date "+%d/%m/%y %H:%M:%S"` : $l"
done | tee -a $log

done

Dernière modification par anonyme1405461600 (2014-08-26 10:10:18)

Hors ligne

#44 2014-08-25 12:19:48

hmz
Administrateur
Inscription : 2013-03-21
Messages : 2 139

Re : démon vpn de reconnexion

Bonjour,

Il est très facile de fausser le fonctionnement de ton script ... il suffit de sauter la default gateway du VPN, et de mettre une route spécifique pour 208.67.222.222 et ton script n'y verra que du feu  devil

Cheers, hmz


If privacy is outlawed, only outlaws will have privacy.

Hors ligne

#45 2014-08-25 14:07:37

anonyme1405461600
Banni(e)
Inscription : 2014-07-16
Messages : 65

Re : démon vpn de reconnexion

Heu ...  ops
C'est quoi la gateway du VPN ?
J'ai pas très bien compris ou est la faille et d’où elle provenait. hmm
Est-ce ce que tu pourrais m'expliquer ce qu'il faut changer ?
Merci lol

Hors ligne

#46 2014-08-25 15:46:56

hmz
Administrateur
Inscription : 2013-03-21
Messages : 2 139

Re : démon vpn de reconnexion

Re ...

Gateway du VPN = Passerelle de votre connexion VPN = Serveur utilisé

Enfaite, c'est très bête en soit. Il me suffit de demander au serveur de configurer ton client VPN (qui accepte ce qu'on lui demande) pour ne rediriger que le trafic uniquement à destination d'OpenDNS (pour ton test d'IP) vers le VPN et ton test sera faussé, et ton script n'y verra que du feu.

Cheers, hmz


If privacy is outlawed, only outlaws will have privacy.

Hors ligne

#47 2014-08-25 16:28:03

anonyme1405461600
Banni(e)
Inscription : 2014-07-16
Messages : 65

Re : démon vpn de reconnexion

Re
Donc c'est quoi la solution ? ops
Si j'ai bien compris, mon script ne peut être faussé que si tu modifie le serveur FIP, non ?
Sinon il n'y as pas de problème ?

Je crois que je vais remettre la ligne : lol

CURRENT_IP2=$(wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//')

Dernière modification par anonyme1405461600 (2014-08-25 16:29:15)

Hors ligne

#48 2014-08-26 00:02:39

hmz
Administrateur
Inscription : 2013-03-21
Messages : 2 139

Re : démon vpn de reconnexion

En modifiant la configuration de ton client VPN, ou si tu utilises "OpenVPN", le fichier OVPN, bah une personne malveillante pourra faire croire à ton client VPN qu'il est connecté alors que non. Je te conseille de toujours utiliser au moins 2 sources distinctes pour la vérification d'informations "cruciales" comme dans ton cas.


If privacy is outlawed, only outlaws will have privacy.

Hors ligne

#49 2014-08-26 00:23:36

anonyme1405461600
Banni(e)
Inscription : 2014-07-16
Messages : 65

Re : démon vpn de reconnexion

wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1

Hors ligne

#50 2014-08-26 00:28:49

hmz
Administrateur
Inscription : 2013-03-21
Messages : 2 139

Re : démon vpn de reconnexion

Au lieu d'utiliser DynDNS, pourquoi pas utiliser ça ?

curl https://freedom-ip.com/scripts/check_ip.php

Sinon, tu peux très bien utiliser les trois sources, ou bien faire une tournante en utilisant deux. Tu fais 2 randoms (tirage aléatoire) sur ta liste de sources et tu vérifies avec les résultats des 2 sources tirés au sort.


If privacy is outlawed, only outlaws will have privacy.

Hors ligne

Pied de page des forums