[Tuto/HowTo] [GNU/Linux] Accéder à son VPN depuis le réseau Tor via SSH Tunneling

Avatar du membre
voxdemonix
Messages : 1336
Enregistré le : lun. févr. 02, 2015 7:28 pm

[Tuto/HowTo] [GNU/Linux] Accéder à son VPN depuis le réseau Tor via SSH Tunneling

Message par voxdemonix » dim. mai 07, 2017 11:07 pm

musique d'entrain : DJ Antoine - Sky Is The Limit | Mix #1
Ce tutoriel fonctionne sur : Ubuntu, Debian, Raspbian.

[_precheurori_] Introduction
Note pour la rédaction : ajouter petites images animées pour facilité la compréhension Légende
  1. Introduction
  2. Mise en place sur le Serveur OpenVPN
  3. Mise en place sur le Client

Farm Link
Modifié en dernier par voxdemonix le lun. mai 22, 2017 1:16 am, modifié 4 fois.
~ Infernalis Creatorem ~
  • Rejoins le côté obscure, on a des cookies !
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Donation Dash : XmowiBRku3tsEREp7PhpheY4TgeLLDyKdM

Avatar du membre
voxdemonix
Messages : 1336
Enregistré le : lun. févr. 02, 2015 7:28 pm

Re: [Tuto/HowTo] [GNU/Linux] Accéder à son VPN depuis le réseau Tor via SSH Tunneling

Message par voxdemonix » dim. mai 07, 2017 11:07 pm

[_precheurori_] Mise en place sur le Serveur OpenVPN
Changer le port UDP d'OpenVPN par un port TCP
Note : si vous vous interrogez sur le pourquoi il faut changer de protocole, c'est car Tor ne supporte pas l'UDP.
  1. Éditez le fichier /etc/openvpn/server.conf
  2. Remplacez proto udp par proto tcp
  3. Recommencez l'opération pour tout vos fichiers de configurations clients
    • sur PiVPN éditez les fichiers dans /home/pivpn/ovpns/, voici une ligne de commande qui le fait pour vous :
      • Code : Tout sélectionner

        sudo sed -i -- 's/proto udp/proto tcp/g' /home/pivpn/ovpns/*.ovpn
        Adaptez éventuellement l'utilisateur pivpn par celui que vous avez utilisé. Pensez à répéter l'opération sur les machines clientes où vous avez déjà exporté les fichiers de configurations client d'openvpn (.ovpn).
Installer le serveur SSH et configurer un Tor Hidden Service
  • Note : lancez chaque commande à la fois, faites pas un copié-collé du tout ;)

    Code : Tout sélectionner

    sudo su
    apt-get install tor openssh-server -y
    mkdir -p /var/lib/tor/hidden_service/ssh
    echo "HiddenServiceDir /var/lib/tor/hidden_service/ssh" >> /etc/tor/torrc
    echo "HiddenServicePort 22 127.0.0.1:22" >> /etc/tor/torrc
    chown debian-tor:root -R /var/lib/tor/hidden_service/
    chmod 700 -R /var/lib/tor/hidden_service/
    service tor restart
    cat /var/lib/tor/hidden_service/ssh/hostname
    • Pensez à conserver le retour de la dernière commande (vous affichant l'adresse.onion) car elle vous sera utile pour l'installation du client.

Créer l'utilisateur dédié pour recevoir le tunnel SSH
  1. Créez votre utilisateur dédié
  2. Générez les clés de sécurité de l'user
    • Code : Tout sélectionner

      su proxy-ssh
      ssh-keygen -t ed25519 -o -a 666
      ssh-keygen -t rsa -b 4096 -o -a 666
      exit
      
      • proxy-ssh le pseudo de votre utilisateur sur le serveur
        -o -a 666 : permet de faire boucler l’algorithme 666 fois
        -b 4096 : précise qu'on veut une clés a 4096 bits
        -t rsa : on utilise l’algorithme RSA
        -t ed25519 : on utilise l'algorithme EdDSA
  3. Éditez /etc/ssh/sshd/config
  4. Ajoutez les lignes suivantes en adaptant à vos besoins
    • Code : Tout sélectionner

      Match user proxy-ssh
              PermitOpen 127.0.0.1:1194
      • proxy-ssh votre utilisateur dédié
        PermitOpen 127.0.0.1:1194 Hostname:Port, ajoutez autant de valeur que vous le souhaitez; utilisez le caractère * pour signifier "tous".
  5. Redémarrez le serveur SSH
Modifié en dernier par voxdemonix le mer. juil. 19, 2017 11:35 pm, modifié 9 fois.
~ Infernalis Creatorem ~
  • Rejoins le côté obscure, on a des cookies !
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Donation Dash : XmowiBRku3tsEREp7PhpheY4TgeLLDyKdM

Avatar du membre
voxdemonix
Messages : 1336
Enregistré le : lun. févr. 02, 2015 7:28 pm

Re: [Tuto/HowTo] [GNU/Linux] Accéder à son VPN depuis le réseau Tor via SSH Tunneling

Message par voxdemonix » dim. mai 07, 2017 11:08 pm

[_precheurori_] Mise en place sur le Client
Monter un tunnel SSH cross canal au démarrage puis lancer openvpn
  1. Installez les pré-requis
  2. Téléchargez sur votre client le fichier de configuration (.ovpn) et placez le dans /etc/openvpn/
  3. Rendez compatible le client ssh avec le réseau Tor
  4. Si vous ne l'avez jamais fait, générez les clés de sécurité
    • Code : Tout sélectionner

      su jeSuisUnUser
      ssh-keygen -t ed25519 -o -a 100
      ssh-keygen -t rsa -b 4096 -o -a 100
      
  5. Exportez votre clés sur votre server
  6. Créez le dossier /opt/scripts
  7. Créez le script
  8. Ajoutez le code suivant en l'adaptant
    • Code : Tout sélectionner

      #!/bin/bash
      #  -> WTFPL - infos script : https://www.0rion.netlib.re/forum4/viewtopic.php?f=79&t=587&p=1252#p1253
      # -> code by voxdemonix <-
      # -> V1.3 <-
      #su monUser -c 'autossh -M 0 -q -N -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -L 8080:127.0.0.1:80 proxy-ssh@torOrWanadress.onion -f'
      
      
      if [ ! "$SUDO_USER" ]; then
      echo "!!! i need root !!!"
      exit 0
      fi
      
      
      IpVpnLocale="192.168.1.42" # l'adresse IP locale de votre serveur VPN/SSH
      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
      
      
              # boucle qui permet d'attendre que le réseau soit connecté
      stop="0"
      while [ $stop -lt 1 ]
      do
      sleep 30       # temps d'attente entre chaque tentative
      
      _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)
      
      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"
              su $UserLocalForSshTunneling -c "autossh -M 0 -q -N -o 'ServerAliveInterval 60' -o 'ServerAliveCountMax 3' -L $portEntree:127.0.0.1:$portSortie $UserRemoteForSshTunneling@$AdresseServerOnion -f"
      fi
      sleep 10
      
      	# sur Ubuntu 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
      
      • IpVpnLocale="192.168.1.42" => l'adresse IP locale de votre serveur VPN/SSH
        AdresseServerOnion="monTorHiddenService.onion" l'hostname WAN ou l'adresse Tor Hidden Service au choix
        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="myUserLocal" => l'user a utiliser sur votre ordinateur pour le montage du tunnel (celui qui a exporté sa clés)
        UserRemoteForSshTunneling="myUserServer" => 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 pour le client openvpn (il doit obligatoirement se trouver dans /etc/openvpn/)
  9. Rendez exécutable le script
  10. Ajoutez le lancement du script au boot en éditant /etc/rc.local
Ajouter 127.0.0.1 comme IP à l'hostname de votre serveur VPN dans le fichier /etc/hosts
  1. Éditez votre fichier /etc/hosts
  2. Ajoutez dedans la ligne suivante en l'adaptant
Modifié en dernier par voxdemonix le lun. mai 15, 2017 12:31 am, modifié 3 fois.
~ Infernalis Creatorem ~
  • Rejoins le côté obscure, on a des cookies !
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Donation Dash : XmowiBRku3tsEREp7PhpheY4TgeLLDyKdM

Avatar du membre
voxdemonix
Messages : 1336
Enregistré le : lun. févr. 02, 2015 7:28 pm

Re: [Tuto/HowTo] [GNU/Linux] Accéder à son VPN depuis le réseau Tor via SSH Tunneling

Message par voxdemonix » lun. mai 08, 2017 11:18 pm

Foire Aux Questions
~ Infernalis Creatorem ~
  • Rejoins le côté obscure, on a des cookies !
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Donation Dash : XmowiBRku3tsEREp7PhpheY4TgeLLDyKdM

Avatar du membre
voxdemonix
Messages : 1336
Enregistré le : lun. févr. 02, 2015 7:28 pm

Re: [Tuto/HowTo] [GNU/Linux] Accéder à son VPN depuis le réseau Tor via SSH Tunneling

Message par voxdemonix » mar. mai 09, 2017 7:22 pm

Nouveau script en cours de finalisation

  • Code : Tout sélectionner

    #!/bin/bash
    #  -> WTFPL - infos script : https://www.0rion.netlib.re/forum4/viewtopic.php?f=79&t=587&p=1252#p1253
    # -> code by voxdemonix <-
    # -> V1.0 <-
    
    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 >/dev/null 2>&1
    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
~ Infernalis Creatorem ~
  • Rejoins le côté obscure, on a des cookies !
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Donation Dash : XmowiBRku3tsEREp7PhpheY4TgeLLDyKdM

Qui est en ligne

Utilisateurs parcourant ce forum : CommonCrawl [Bot] et 0 invité