Comment faire : Mode console, scripts BASH, SH...
 Charge moyenne sur 1mn : 0.02 Charge moyenne sur 5mn : 0.14 Charge moyenne sur 15mn : 0.19




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 : Lundi 20 avril 2020

Partager

Traduire la page

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-created : 2018-01-11
010 #       Date-modified : 2020-04-24
011 #
012 #####---------------------------- INFORMATIONS --------------------------------#####
013 
014 #--------------------------------------------------------------------------------
015 # Declaration
016 
017 DEV="ppp0"
018 
019 SEARCH_DEV="`cat /proc/net/dev | grep $DEV`"
020 
021 LOC_IPv4="172.16.5.253"
022 LOC_IPv6="2001:bc8:25bb:ff00:1ab3:3a:c10d:253"
023 
024 CMD_ADD_ADDR_IPv6="/sbin/ip -6 address add 2001:bc8:25bb:ff00:1ab3:3a:c10d:253/112 dev ppp0"
025 
026 CMD_ADD_ROUTE_IPv4_0="/sbin/route add -net 10.1.100.0 netmask 255.255.255.0 dev ppp0"
027 CMD_ADD_ROUTE_IPv4_1="/sbin/route add -net 10.100.10.0 netmask 255.255.255.0 dev ppp0"
028 #CMD_ADD_ROUTE_IPv6_0="/sbin/ip -6 route add default dev ppp0" # exemple : tout le trafic IPv6
029 CMD_ADD_ROUTE_IPv6_0="/sbin/ip -6 route add 2000::/3 dev ppp0" # exemple : tout le trafic Internet IPv6
030 CMD_ADD_ROUTE_IPv6_1="/sbin/ip -6 route add 2001:bc8:25bb:ff70::/64 dev ppp0" # exemple : tout le bloc IPv6::/64 (multicast)
031 CMD_ADD_ROUTE_IPv6_2="/sbin/ip -6 route add 2001:bc8:25bb:ff71:0001:00A0:0000:0000/96 dev ppp0" # exemple : tout le bloc IPv6::/96
032 CMD_ADD_ROUTE_IPv6_3="/sbin/ip -6 route add 2001:bc8:25bb:ff74:0001:00AC:FF00:0000/104 dev ppp0" # exemple : tout le bloc IPv6::/104 (multicast)
033 
034 
035 #SEARCH_IPSEC_OK="/usr/sbin/ipsec status | grep -i 'INSTALLED, TRANSPORT' -B1 -A1"
036 
037 SEARCH_ADDR_IPv6_OK="/sbin/ip -6 a show dev $DEV"
038 SEARCH_ROUTE_IPv6_OK="/sbin/ip -6 route show | grep default"
039 
040 SEARCH_ROUTE_IPv4_OK="/sbin/ip -4 route show dev ppp0 | grep 10.59.199.0"
041 
042 # Declaration
043 #--------------------------------------------------------------------------------
044 
045 #--------------------------------------------------------------------------------
046 # Fonctions
047 
048 ipsec_l2tp()
049 {
050                 /etc/init.d/ipsec $1
051                 /etc/init.d/xl2tpd $1
052 }
053 
054 vpn_check_config()
055 {
056         IPv4="`/sbin/ip -4 address show dev $DEV | grep inet | awk '{print $4}'`"
057         IPv6="`/sbin/ip -6 address show dev $DEV | grep inet | awk '{print $2}'`"
058 
059         echo "+-----------------------------------"
060         echo "|"
061         echo "+ VPN"
062         echo "|"
063         echo "+--+ Iface $DEV exist !"
064         echo "|  |"
065         echo "|  +--+ IPv4 -> $IPv4"
066 
067         # IPv4 : Route
068         echo "|  |  |"
069         if [ "`/sbin/ip -4 route show dev $DEV | grep 10.59.199.0`" ]; then
070                 echo -n "|  |  +-- Route"
071                 echo " -> `/sbin/ip -4 route show dev $DEV | grep 10.59.199.0`"
072         else
073                 echo -n "|  |  +-- Route ADD"
074                 ${CMD_ADD_ROUTE_IPv4_0}
075                 ${CMD_ADD_ROUTE_IPv4_1}
076                 echo " -> `/sbin/ip -4 route show dev $DEV | grep 10.59.199.0`"
077         fi
078 
079         echo "|  |"
080         # IPv6 : Address
081         if [ "`${SEARCH_ADDR_IPv6_OK}`" ]; then
082                 echo "|  +--+ IPv6 -> $IPv6"
083         else
084                 echo -n "|  +-- On ajoute l'address IPv6"
085                 ${CMD_ADD_ROUTE_IPv6_0}
086                 ${CMD_ADD_ROUTE_IPv6_1}
087                 ${CMD_ADD_ROUTE_IPv6_2}
088                 ${CMD_ADD_ROUTE_IPv6_3}
089                 echo " -> `/sbin/ip -6 address show dev $DEV | grep inet | awk '{print $2}'`"
090         fi
091 
092         # IPv6 : Route
093         echo "|     |"
094         if [ "`/sbin/ip -6 route show | grep "default dev $DEV"`" ]; then
095                 echo -n "|     +-- Route"
096                 echo " -> `/sbin/ip -6 route show | grep "default dev ${DEV}"`"
097         else
098                 echo -n "|     +-- Route ADD"
099                 ${CMD_ADD_ROUTE_IPv6}
100                 echo " -> `/sbin/ip -6 route show | grep "default dev ${DEV}"`"
101         fi
102 
103         echo "|"
104         echo "+-----------------------------------"
105 
106 }
107 
108 # Fonctions
109 #--------------------------------------------------------------------------------
110 
111 #--------------------------------------------------------------------------------
112 # Script
113 
114 echo ""
115 
116 if [ "${SEARCH_DEV}" ]; then
117 
118         vpn_check_config
119 
120 else
121         echo "+-----------------------------------"
122         echo "+ VPN"
123         echo "|"
124         echo "+--+ Iface $DEV nexist pas !"
125         echo "   |"
126         echo "   +-- On remonte le VPN...."
127         echo "   |"
128 
129         ipsec_l2tp restart && sleep 2
130 
131         /usr/sbin/ipsec up zw3b.fr && sleep 2
132 
133         echo "c zw3b" >> /var/run/xl2tpd/l2tp-control && sleep 20
134 
135         vpn_check_config
136 
137         echo "|"
138         echo "+-----------------------------------"
139 fi
140 
141 
142 # Script
143 #--------------------------------------------------------------------------------

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


<< VPN IPSec + XL2TP : Routage des sous réseaux clients

Comment-faire un réseau IPv6 ? >>


Liens ZW3B.VPN :

  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
  6. GNU/Linux > Shells > VPN IPSec + XL2TP : IPv(4/6) Remount du client et des routes
  7. Anonymat sur InterNet

Liens : ZW3B.IPv6 : Internet Protocol V6

Liens qui peuvent aussi vous intéresser :


AUTEUR : LAB3W.ORJ Alias de O.Romain Jaillet-ramey (NOTIF LVL 7 - 43 ans) LAB3W.ORJ
CONTACT
- Web - STEAM - Monster - LinkedIn - Viadeo - DailyMotion - FACEBOOK - GOOGLE - Twitter
DROITS SITES : ZW3B.Admin
INSCRIPTION : Le samedi 06 janvier 1 (2001/01/06 15:31)
CONNEXION : il y a bientôt 26 jours (2020/05/12 06:02)
DERNIERE VISITE : il y a bientôt 23 jours (2020/05/15 07:29)

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