Comment faire : Mode console, scripts BASH, SH...
 Charge moyenne sur 1mn : 0.24 Charge moyenne sur 5mn : 0.53 Charge moyenne sur 15mn : 0.94




VPN IPSec + XL2TP : IPv(4/6) Remount du client et des routes

  • VPN IPSec + XL2TP : IPv(4/6) Remount du client et des routes
Script client VPN : On vérifie que la connexion IPSEC + XL2TP est ESTABLISHED ou on la relance.

Informations

Dates
  • Création : Jeudi 11 janvier 2018
  • Publication : Jeudi 11 janvier 2018
  • Modification : Jeudi 11 janvier 2018

Partager

Je souhaite relancer mon VPN (IPSEC + XL2TP) si la connexion cliente se coupe. Puis je vérifie que l'adresse IPv6 et que les routes sont actives.

Le script vpn-remount.sh :

001 #!/bin/bash
002 
003 #####---------------------------- INFORMATIONS --------------------------------#####
004 #
005 #       Name : vpn-remount.sh
006 #       Desc : Script qui remount les address IPv(4/6) et ajoute des routes IPv(4/6)
007 #       Auteur : O.Romain JAILLET-RAMEY alias Kss*
008 #       Mail : orj AT lab3w DOT fr
009 #       Date : 2018-01-11
010 #
011 #####---------------------------- INFORMATIONS --------------------------------#####
012 
013 #--------------------------------------------------------------------------------
014 # Declaration
015 
016 DEV="ppp0"
017 
018 SEARCH_DEV="`cat /proc/net/dev | grep $DEV`"
019 
020 LOC_IPv4="172.16.5.253"
021 LOC_IPv6="2001:bc8:25bb:ff00:1ab3:3a:c10d:253"
022 
023 CMD_ADD_ADDR_IPv6="/sbin/ip -6 address add 2001:bc8:25bb:ff00:1ab3:3a:c10d:253/112 dev ppp0"
024 
025 CMD_ADD_ROUTE_IPv4="/sbin/route add -net 10.59.199.0 netmask 255.255.255.0 dev ppp0"
026 CMD_ADD_ROUTE_IPv6="/sbin/ip -6 route add default dev ppp0"
027 
028 #SEARCH_IPSEC_OK="/usr/sbin/ipsec status | grep -i 'INSTALLED, TRANSPORT' -B1 -A1"
029 
030 SEARCH_ADDR_IPv6_OK="/sbin/ip -6 a show dev $DEV"
031 SEARCH_ROUTE_IPv6_OK="/sbin/ip -6 route show | grep default"
032 
033 SEARCH_ROUTE_IPv4_OK="/sbin/ip -4 route show dev ppp0 | grep 10.59.199.0"
034 
035 # Declaration
036 #--------------------------------------------------------------------------------
037 
038 #--------------------------------------------------------------------------------
039 # Fonctions
040 
041 ipsec_l2tp()
042 {
043                 /etc/init.d/ipsec $1
044                 /etc/init.d/xl2tpd $1
045 }
046 
047 vpn_check_config()
048 {
049         IPv4="`/sbin/ip -4 address show dev $DEV | grep inet | awk '{print $4}'`"
050         IPv6="`/sbin/ip -6 address show dev $DEV | grep inet | awk '{print $2}'`"
051 
052         echo "+-----------------------------------"
053         echo "|"
054         echo "+ VPN"
055         echo "|"
056         echo "+--+ Iface $DEV exist !"
057         echo "|  |"
058         echo "|  +--+ IPv4 -> $IPv4"
059 
060         # IPv4 : Route
061         echo "|  |  |"
062         if [ "`/sbin/ip -4 route show dev $DEV | grep 10.59.199.0`" ]; then
063                 echo -n "|  |  +-- Route"
064                 echo " -> `/sbin/ip -4 route show dev $DEV | grep 10.59.199.0`"
065         else
066                 echo -n "|  |  +-- Route ADD"
067                 ${CMD_ADD_ROUTE_IPv4}
068                 echo " -> `/sbin/ip -4 route show dev $DEV | grep 10.59.199.0`"
069         fi
070 
071         echo "|  |"
072         # IPv6 : Address
073         if [ "`${SEARCH_ADDR_IPv6_OK}`" ]; then
074                 echo "|  +--+ IPv6 -> $IPv6"
075         else
076                 echo -n "|  +-- On ajoute l'address IPv6"
077                 ${CMD_ADD_ADDR_IPv6}
078                 echo " -> `/sbin/ip -6 address show dev $DEV | grep inet | awk '{print $2}'`"
079         fi
080 
081         # IPv6 : Route
082         echo "|     |"
083         if [ "`/sbin/ip -6 route show | grep "default dev $DEV"`" ]; then
084                 echo -n "|     +-- Route"
085                 echo " -> `/sbin/ip -6 route show | grep "default dev ${DEV}"`"
086         else
087                 echo -n "|     +-- Route ADD"
088                 ${CMD_ADD_ROUTE_IPv6}
089                 echo " -> `/sbin/ip -6 route show | grep "default dev ${DEV}"`"
090         fi
091 
092         echo "|"
093         echo "+-----------------------------------"
094 
095 }
096 
097 # Fonctions
098 #--------------------------------------------------------------------------------
099 
100 #--------------------------------------------------------------------------------
101 # Script
102 
103 echo ""
104 
105 if [ "${SEARCH_DEV}" ]; then
106 
107         vpn_check_config
108 
109 else
110         echo "+-----------------------------------"
111         echo "+ VPN"
112         echo "|"
113         echo "+--+ Iface $DEV nexist pas !"
114         echo "   |"
115         echo "   +-- On remonte le VPN...."
116         echo "   |"
117 
118         ipsec_l2tp restart && sleep 2
119 
120         /usr/sbin/ipsec up zw3b.fr && sleep 2
121 
122         echo "c zw3b" >> /var/run/xl2tpd/l2tp-control && sleep 20
123 
124         vpn_check_config
125 
126         echo "|"
127         echo "+-----------------------------------"
128 fi
129 
130 
131 # Script
132 #--------------------------------------------------------------------------------

Vous remarquerez que la route par default IPv6 passe par le VPN pour ressortir depuis une des adresse IPv6 de mon serveur LAB3W (ONLINE). Cela est un fait exprès vu que je n'ai pas d'IPv6 chez mon Fournisseur d'Accès InterNet (Orange (contrat non pro)).

Pour tester on lance le script de cette façon : sh vpn-remount.sh ou on le met en tâche planifiée toutes les N minutes.

Par exemple :

001 */3 * * * *     sh /root/vpn-remount.sh 1>>/var/log/syslog 2>/dev/null 2>&1

La sortie du script va dans syslog et les erreurs ne sont pas affichées ;)

Sortie du script :

001 +-----------------------------------
002 |
003 + VPN
004 |
005 +--+ Iface ppp0 exist !
006 |  |
007 |  +--+ IPv4 -> 172.16.5.199/32
008 |  |  |
009 |  |  +-- Route -> 10.59.199.0/24 scope link
010 |  |
011 |  +--+ IPv6 -> 2001:bc8:25bb:ff00:1ab3:3a:c10d:253/112
012 |     |
013 |     +-- Route -> default dev ppp0 metric 1024  pref medium
014 |
015 +-----------------------------------

Bon Virtual Private Network ;)

Cordialement,
Romain

ZW3B.Links :

  1. Virtual Private Network (VPN)
  2. GNU/Linux > Sécurité > Howto VPN serveur : IPSec + XL2TP
  3. GNU/Linux > Sécurité > Howto VPN client : IPSec + XL2TP
  4. Windows > Sécurité > Configurer un VPN client : IPSec + XL2TP
  5. GNU/Linux > Shells > VPN IPSec + XL2TP : Routage des sous réseaux clients

LAB3W.ORJ Alias de O.Romain JAILLET-RAMEY (NOTIF LVL 7 - 41 ans) LAB3W.ORJ
CONTACT
- Web - STEAM - Monster - LinkedIn - Viadeo - DailyMotion - FB - G+ - Twitter
DROITS SITES : ZW3B.Admin
INSCRIPTION : à l'aube du site, le samedi 06 janvier 1 (2001/01/06 15:31)
CONNEXION : avant-hier à 23h23 (2018/04/18 23:23)
DERNIERE VISITE : avant-hier à 23h47 (2018/04/18 23:47)

les réactions des ZW3B.Nautes (0 note)

Ajouter un commentaire

Avatar par default
Pseudo :
Email :
 
Ajouter la chaine de caractères (le code) ci-dessous dans le champ du dessous.
Captcha
Code :





Valid XHTML 1.0 Strict CSS Valide !

ipv6 ready