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
[^] # sans tunnel en Lan, avec Tunnel en WAN/Tor
Posté par EauFroide . 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
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat