Mode console, scripts BASH, SH

 Charge moyenne sur 1mn : 0.00 Charge moyenne sur 5mn : 0.02 Charge moyenne sur 15mn : 0.03


Blocs utilisateurs du site : Infos du compte / droits utilisateurs / récapitulatif

Identifiez-vous

Authentifiez-vous avec votre compte ZW3B et profitez des services membres.

Identifiant :
Mot de passe :
  
  

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

  • VPN IPSec + XL2TP : Routage des sous réseaux clients
Routage des sous réseaux clients pour le serveur VPN : IPSec + XL2TP.

Informations

Dates
  • Publication : Jeudi 18 septembre 2014
  • Modification : Vendredi 24 avril 2020

J'écris un script pour ajouter des (ou les) routes possibles vers les réseaux clients VPN au serveur.

Script qui ajoute des routes vers les sous-reseaux des tunnels

Ici c'est un peu différent, on fait plusieurs choses :

  1. On cherche une adresse IP particulière ici la 172.16.5.253 pour connaître l'interface réseau (ex: ppp0, ppp1),
  2. et on assigne les routes du client (du réseau chez le client) au serveur (pour qu'ils puissent communiquer).
  3. Ensuite on ajoute une tache planifiée (crontab) sur ce script (vpn-add-routes-clients.sh) toutes les minutes par exemple.
#!/bin/sh

#####---------------------------- INFORMATIONS --------------------------------#####
#
#       Name : vpn-add-routes-clients.sh
#       Desc : Script qui ajoute des routes vers les sous-reseaux des tunnels
#       Auteur : O.Romain Jaillet-ramey alias Kss*
#       Mail : orj AT lab3w DOT fr
#       Date-created : 2018-01-11
#       Date-modified : 2020-04-24
#
#####---------------------------- INFORMATIONS --------------------------------#####

#####---------------------------- CONFIG VPN LOC ------------------------------#####

HOSTNAME=`/bin/hostname`
NOW=$(date +"%b %d %H:%M:%S")

LOCAL_IPv4="172.16.5.199"
LOCAL_IPv6="2001:0bc8:25bb:ff5e:5000:0000:0000:0199/128"

SITE_A_LOCAL_IPv6="2001:0bc8:25bb:ff5e:8000:003a:0:0199/92"

#####---------------------------- CONFIG VPN SITE_N ------------------------------#####

#------------------------
SITE_A=true
SITE_A_NAME="NOM DE CHEZ TOI"
SITE_A_IP="172.16.5.253"
#------------------------
declare -a SITE_A_NETWORKS
SITE_A_NET_V4=('10.1.100.0' '10.100.10.0')
declare -a SITE_A_BROADCAST
SITE_A_CAST_V4=('24' '24')
#------------------------
declare -a SITE_A_NET_V6
SITE_A_NET_V6=('2001:0bc8:25bb:ff70::' '2001:bc8:25bb:ff71:0001:00A0::' '2001:bc8:25bb:ff74:0001:00AC:FF00::')
declare -a SITE_A_CAST_V6
SITE_A_CAST_V6=('64' '96' '104')
#------------------------

SITE_A_SEARCH_IP=`/sbin/ifconfig |/bin/grep "${SITE_A_IP}"|/usr/bin/cut -d":" -f2|/usr/bin/cut -d" " -f1`
SITE_A_SEARCH_IF=`/sbin/ifconfig |/bin/grep -B 1 "${SITE_A_IP}" |/usr/bin/cut -d" " -f1 |/bin/sed '/^$/d'`

#####---------------------------- CONFIG VPN SITE_A ------------------------------#####

#####---------------------------- SCRIPT VPN SITE_A ------------------------------#####

if [ "${SITE_A}" = true ];
then
if [ "${LOCAL_IPv4}" = "${SITE_A_SEARCH_IP}" ];
then
        echo "$NOW $HOSTNAME VPN $SITE_A_NAME: Iface $SITE_A_SEARCH_IF + IPv4 ${LOCAL_IPv4} <> $SITE_A_IP OK";

        #-----------------------------------------------------------------
        for i in "${!SITE_A_NET_V4[@]}"
        do
                SITE_A_SEARCH_ROUTE=`/sbin/ip -4 route show|/bin/grep "${SITE_A_SEARCH_IF}"|/usr/bin/cut -d" " -f1|/bin/grep "${SITE_A_NET_V4[$i]}"`
                if [ "${SITE_A_SEARCH_ROUTE}" != "${SITE_A_NET_V4[$i]}/${SITE_A_CAST_V4[$i]}" ]
                then
#                       echo -n IPV4 $i
#                       echo " "${SITE_A_NET_V4[$i]}/${SITE_A_CAST_V4[$i]}

                        /bin/echo "$NOW $HOSTNAME VPN $SITE_A_NAME: Iface $SITE_A_SEARCH_IF |+ Ajout de la route ${SITE_A_NET_V4[$i]}/${SITE_A_CAST_V4[$i]}";
                        /sbin/ip -4 route add "${SITE_A_NET_V4[$i]}/${SITE_A_CAST_V4[$i]}" dev "${SITE_A_SEARCH_IF}"
                else
                        /bin/echo "$NOW $HOSTNAME VPN $SITE_A_NAME: Iface $SITE_A_SEARCH_IF |+ Route ${SITE_A_NET_V4[$i]}/${SITE_A_CAST_V4[$i]} OK";
                fi
        done
        #-----------------------------------------------------------------

        #-----------------------------------------------------------------
        SITE_A_SEARCH_IPv6=`/sbin/ifconfig |/bin/grep "${SITE_A_LOCAL_IPv6}"`
        if [ "${SITE_A_SEARCH_IPv6}" ]
        then
                echo "$NOW $HOSTNAME VPN $SITE_A_NAME: Iface $SITE_A_SEARCH_IF + IPv6 $SITE_A_LOCAL_IPv6 OK";
        else
                /bin/echo "$NOW $HOSTNAME VPN $SITE_A_NAME: Ajout de laddress IPv6 $SITE_A_LOCAL_IPv6 sur $SITE_A_SEARCH_IF";
                CMD=`/sbin/ip -6 address add "${SITE_A_LOCAL_IPv6}" dev $SITE_A_SEARCH_IF`
        fi

        for i in "${!SITE_A_NET_V6[@]}"
        do
                SITE_A_SEARCH_ROUTE=`/sbin/ip -6 route show|/bin/grep "${SITE_A_SEARCH_IF}"|/usr/bin/cut -d" " -f1|/bin/grep "${SITE_A_NET_V6[$i]}"`
                if [ "${SITE_A_SEARCH_ROUTE}" != "${SITE_A_NET_V6[$i]}/${SITE_A_CAST_V6[$i]}" ]
                then
#                       echo -n IPV6 $i
#                       echo " "${SITE_A_NET_V6[$i]}/${SITE_A_CAST_V6[$i]}

                        /bin/echo "$NOW $HOSTNAME VPN $SITE_A_NAME: Iface $SITE_A_SEARCH_IF |+ Ajout de la route ${SITE_A_NET_V6[$i]}/${SITE_A_CAST_V6[$i]}";
                        /sbin/ip -6 route add "${SITE_A_NET_V6[$i]}/${SITE_A_CAST_V6[$i]}" dev "${SITE_A_SEARCH_IF}"
                else
                        /bin/echo "$NOW $HOSTNAME VPN $SITE_A_NAME: Iface $SITE_A_SEARCH_IF |+ Route ${SITE_A_NET_V6[$i]}/${SITE_A_CAST_V6[$i]} OK";
                fi
        done
        #-----------------------------------------------------------------


else
#        exit 2;
        echo "SITE : $SITE_A_NAME DOWN";
fi


fi
#####---------------------------- SCRIPT VPN SITE_A ------------------------------#####

Puis on met le script en crontab -e.

*/1 * * * * /bin/sh /root/vpn-add-routes-clients.sh 1>>/var/log/syslog 2>/dev/null 2>&1

<< Configurer un VPN client : IPSec + XL2TP

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



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 :




Autheur de la page

LAB3W.ORJ

LAB3W.ORJ

  • Prénom : Olivier Romain Luc
  • Nom : Jaillet-ramey
  • Arrivé le mardi 19 octobre 1976 (1976/10/19 00:00)
    43 ans d'activité !

Firefox Nighlty

Nos amis de Framasoft s'intéressent à Mozilla et leur ont posé des questions à propos de Nightly : Firefox Night-club, entrée libre !






Valid XHTML 1.0 Strict CSS Valide !

ipv6 ready