• [^] # sans tunnel en Lan, avec Tunnel en WAN/Tor

    Posté par . En réponse au message [Tuto/HowTo] Accéder à son VPN depuis le réseau Tor via SSH Tunneling. Évalué à -3. Dernière modification le 09 mai 2017 à 14:29.

    Que penses-tu de cette version ? :) (je ne l'ai pas encore testé)
    Explication :
    -si réseau connecté et serveur VPN détecté sur LAN, on modifie le fichier hosts afin d'insérer l'IP Lan du serveur en correspondance avec l'hostname du serveur
    -si réseau pas connecté et/ou serveur VPN pas sur le même LAN, on modifie le fichier hosts afin d'insérer 127.0.0.1 comme correspondance a l'hostname du serveur
    -on lance openvpn qui va se connecter directement au serveur en Lan ou à travers SSH + Tor en Wan

    #!/bin/bash
    # -> WTFPL - infos script : https://www.0rion.netlib.re/forum4/viewtopic.php?f=79&t=587&p=1252#p1253
    # -> code by voxdemonix <-
    # -> V0.1 ALPHA <-
    vpnHostname="vpn.monSite.netlib.re"
    IpVpnLocale="192.168.1.42" # enter your Lan IP, the script push 127.0.0.1 when need Tor 
    AdresseServerOnion="torOrWanadress.onion"
    MacVpnLocal="00:00:00:00:00:00" # l'adresse mac du serveur VPN/SSH (tapez ifconfig dans un terminal sur votre server pour la voir)
    UserLocalForSshTunneling="myLocalUser" # l'user a utiliser sur votre ordinateur pour le montage du tunnel (celui qui a exporté sa clés)
    UserRemoteForSshTunneling="proxy-ssh" # l'user a utiliser côté server ( /!\ n'utilisez jamais root !)
    portEntree="1194" # le port sur le pc local, par défaut 1194
    portSortie="1194" # le port sur le serveur, par défaut 1194
    fichierOVPN="myUser.ovpn" # le nom de votre fichier de configuration .ovnp
    if [ ! "$SUDO_USER" ]; then
    echo "!!! i need root !!!"
    exit 0
    fi
     # boucle qui permet d'attendre que le réseau soit connecté
    stop="0"
    while [ $stop -lt 1 ]
    do
    sleep 120 # temps d'attente entre chaque tentative (si le réseau n'est pas connecté après cette boucle le VPN sera connecté à travers Tor)
    _IP=$(hostname -I) || true
    if [ "$_IP" ]; then
     #printf "My IP address is %s\n" "$_IP"
     stop=1
    fi
    done
    ping $IpVpnLocale -c 2 >> /dev/null 2>&1
    macRecover=$(arp -n | grep -i -o $MacVpnLocal)
     # NOTE : SE SERAIT PAS MAL DE REMPLACER PAR UN IF NOT
    if [ "$macRecover" == "$MacVpnLocal" ]; then
    # echo "local"
    # su $UserLocalForSshTunneling -c "autossh -M 0 -q -N -o 'ServerAliveInterval 60' -o 'ServerAliveCountMax 3' -L $portEntree:127.0.0.1:$portSortie $UserRemoteForSshTunneling@$IpVpnLocale -f"
    else
    # echo "tor/wan"
    # on initie un tunnel SSH transitant par Tor
     su $UserLocalForSshTunneling -c "autossh -M 0 -q -N -o 'ServerAliveInterval 60' -o 'ServerAliveCountMax 3' -L $portEntree:127.0.0.1:$portSortie $UserRemoteForSshTunneling@$AdresseServerOnion -f"
     IpVpnLocale="127.0.0.1"
    fi
    sleep 10
     #on modifie le fichier /etc/hosts afin de faire correspondre l'hostame de notre VPN avec l'IP pour le joindre
    sed -i -- "s/$(cat /etc/hosts | grep $vpnHostname)/ /g" /etc/hosts
    echo "$IpVpnLocale $vpnHostname" >> /etc/hosts
     # sur Ubuntu et Raspbian ajoutez --route-nopull à la commande suivante si vous ne voulez pas forcer le trafic à passer par le VPN
    openvpn --daemon --cd /etc/openvpn --config $fichierOVPN
    

    Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat