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

Posté par  . Licence CC By‑SA.
7
9
mai
2017

Sommaire

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

Introduction

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
sudo nano /etc/openvpn/server.conf
  1. Remplacez proto udp par proto tcp

  2. 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 :

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, ne faites pas un copié-collé du tout ;)

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é *
sudo adduser proxy-ssh
  1. *Générez les clés de sécurité de l'user *
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
  1. Éditez /etc/ssh/sshd/config
sudo nano /etc/ssh/sshd_config
  1. Ajoutez les lignes suivantes en adaptant à vos besoins
Match user proxy-ssh
        PermitOpen 127.0.0.1:*

proxy-ssh votre utilisateur dédié

  1. Redémarrez le serveur SSH
sudo service ssh restart

Mise en place sur le Client

Monter un tunnel SSH cross canal au démarrage puis lancer openvpn

  1. *Installez les pré-requis *
sudo apt-get install openssh-client autossh tor openvpn
  1. Téléchargez sur votre client le fichier de configuration (.ovpn) et placez le dans /etc/openvpn/

  2. Rendez compatible le client ssh avec le réseau Tor

sudo nano /etc/ssh/ssh_config
  1. Et ajoutez ces lignes
         Host *.onion
            ProxyCommand nc -xlocalhost:9050 -X5 %h %p
  1. Exportez votre clés sur votre serveur
ssh-copy-id -i ~/.ssh/id_rsa.pub proxy-ssh@adresseServerSSH
  1. Créez le dossier /opt/scripts
sudo mkdir /opt/scripts
  1. Créez le script
sudo nano /opt/scripts/startSshTunnelingAndVPN.sh
  1. Ajoutez le code suivant en l'adaptant
#!/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 120       # 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 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
  • 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é serveur ( /!\ 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/)
  1. Rendez exécutable le script
sudo chmod +x /opt/scripts/*
  1. Ajoutez le lancement du script au boot en éditant /etc/rc.local
sudo nano /etc/rc.local
  1. Ajoutez la ligne suivante juste avant exit 0
sudo /opt/scripts/startSshTunnelingAndVPN.sh

Ajouter 127.0.0.1 comme IP à l'hostname de votre serveur VPN dans le fichier /etc/hosts

  1. Éditez votre fichier /etc/hosts
sudo nano /etc/hosts
  1. Ajoutez dedans la ligne suivante en l'adaptant
127.0.0.1 hostnameDeVotreVPN
  • # j'ai pas tout compris ?

    Posté par  . Évalué à 3.

    L'objectif de ce tutoriel est de pouvoir joindre un VPN pas forcément accessible depuis le net.

    bon ca, OK, j'imagine que le serveur VPN est derriere TOR

    Lorsque le serveur se trouvera sur le même réseau LAN que le client, alors un tunnel SSH sera établi en LAN.

    s'il est sur le meme LAN, pourquoi monter un tunnel SSH ?

    Lorsque le serveur ne se trouvera pas sur le même LAN que le client, alors un tunnel SSH sera établi à travers Tor.

    ben il est ou ton VPN alors ?

    Les communications entre le serveur VPN et le client seront encapsulées dans le tunnel de données SSH.

    si tu sais monter un tunnel SSH entre le client et le serveur au travers de TOR,
    tu dois pouvoir directement te connecter en VPN

    sinon, tu n'as pas besoin du VPN une fois que tu as le tunnel SSH
    car au travers du tunnel SSH, tu peux creer une redirection vers une autre machine sur le LAN du serveur.

    • [^] # Re: j'ai pas tout compris ?

      Posté par  . Évalué à -3.

      Pour ta compréhension typiquement le cas d'utilisation c'est un serveur VPN derriere un NAT/Firewall injoignable depuis le WAN.
      Comme l'hairpinning est foireux dans mon cas, je suis obligé d'avoir une configuration differente en LAN qu'en WAN. Puis avec cette methode pas besoin d'ouvrir le NAT :)
      Je pense réutiliser la methode pour connecter deux VPN :)

      s'il est sur le meme LAN, pourquoi monter un tunnel SSH ?

      Je me suis penché sur la question (il faut encore que je test, j'éditerai le tuto), en placant un sed qui modifie /etc/hosts dans le if qui choisit si on passe par le Lan ou Tor.

      tu dois pouvoir directement te connecter en VPN

      Peut etre en configurant un proxy torefication mais je ne sais pas encore comment faire et je suppose que ca revient au meme (ssh faisant role de proxy) :)

      Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

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

        Posté par  . É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

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

          Posté par  . Évalué à 3.

          j'ai beau relire, je ne comprend toujours pas pourquoi tu veux te connecter au service OpenVPN quand tu es sur le meme LAN que le serveur qui heberge l'OpenVPN

          un serveur VPN, c'est fait pour connecter deux reseaux disjoints (chez toi, chez tes parents ou ton bureau) et laisser croire à ta machine que les deux reseaux sont les memes (pour acceder à l'imprimante des parents, au serveur NAS du bureau

          si tu es sur le meme LAN, cela n'a aucun interet,

          si tu montes un labo, autant mettre une machine entre les 2 reseaux qui fera du routage et laissera croire que ce sont 2 reseaux disjoints

          alors le coup de monter un tunnel SSH
          pour ensuite monter un tunnel VPN dedans

          je le redis, si tu arrives à faire un tunnel SSH dans le sens Client -> Serveur
          c'est que tu as deja des ports ouverts de l'exterieur vers le serveur,
          autant s'en servir pour directement faire le tunnel VPN (reconfigurer openvpn pour ecouter sur le bon PORT.

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

            Posté par  . Évalué à -3. Dernière modification le 09 mai 2017 à 15:45.

            j'ai beau relire, je ne comprend toujours pas pourquoi tu veux te connecter au service OpenVPN quand tu es sur le meme LAN que le serveur qui heberge l'OpenVPN

            -le LAN n'est pas un espace sécurisé (surtout quand je passerai en IPv6)
            -en finir avec les tunnel SSH qui partent dans tout les sens et qui nécessitent leur lot de configuration
            -sécuriser les communications sans passer par TLS (que je n'apprécie pas), se qui va être utile pour les montages WEBDAV/DAVFS2 pour le raid10 gluster et le cluster MySQL (j'attendais le VPN pour me relancer sur ce sujet)
            -rediriger les flux du reverse proxy plus proprement (par exemple là j'avais une redirection vers un prestashop, qui transitait par un tunnel SSH et prestashop râlait car pour lui hostname:8443 != hostname)
            -faciliter l'accès à mes services (exemple dans firfox je devais taper 127.0.0.1:8080/ pour acceder au service sur server A, 127.0.0.1:8081 pour accéder au service sur server B, maintenant je peux utiliser direct les IP statique dans le VPN que j'ai ajouté en marque page)
            -fixer les IP indépendamment du routeur/DHCP

            je le redis, si tu arrives à faire un tunnel SSH dans le sens Client -> Serveur
            c'est que tu as deja des ports ouverts de l'exterieur vers le serveur,
            autant s'en servir pour directement faire le tunnel VPN (reconfigurer openvpn pour ecouter sur le bon PORT.

            Non, c'est Tor (via l'Hidden Service) qui se charge d'établir la communication avec un relais sur Internet. Ensuite le client contacte ce relais. A aucun moment il n'y a établissement d'un lien "direct" (au sens TCP/IP) entre le client et le serveur.
            Il n'y a pas besoin d'ouvrir le NAT/Firewall pour accéder à un Tor Hidden Service.

            PS : dans mon script précédent j'ai un problème avec le sed, il fonctionne tant qu'il n'y a qu'une seule occurrence mais s'il y en a plusieurs il échoue. Si quelqu'un a une astuce je suis preneur :)

            sed -i -- "s/$(cat /etc/hosts | grep $vpnHostname)/ /g" /etc/hosts >/dev/null 2>&1
            

            (le but c'est de supprimer dans /etc/hosts toutes les lignes contenant la string dans $vpnHostname )

            Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

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

              Posté par  (site web personnel) . Évalué à 1.

              -le LAN n'est pas un espace sécurisé (surtout quand je passerai en IPv6)
              Que veux-tu dire? Je comprends que tu dise que ce n'est pas sécurisé (réseau public par exemple) mais en quoi l'ipv6 diminue la sécurité d'un réseau local?

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

                Posté par  . Évalué à -2.

                Tout les fans d'IPv6 vantent la disparition du NAT (il sera donc plus probable qu'au moins une machine se fasse véroler).

                Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

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

                  Posté par  (site web personnel) . Évalué à 2.

                  Mes machines (ipv6) sont branchées au routeur mais elles ne sont pas accessibles depuis internet pour autant. Le routeur dispose d'un firewall. Je ne comprends pas le lien de cause à effet.

                  http://www.bortzmeyer.org/nat-et-securite.html

                  Avec la plupart des attaques actuelles, c'est la victime qui établis la connexion (en cliquant sur un URL dans une pièce jointe par exemple). Un NAT (ou NAPT) ne peut rien contre ça.

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

                    Posté par  . Évalué à -2.

                    Oui tu as sans doute raison, IPv6 n'apportera probablement pas beaucoup de bouleversements à ce niveau.
                    J'aurais du m'en tenir à "le Lan n'est pas sécurisé" :)

                    Merci pour ton apport en informations ;)

                    PS: je n'ai toujours pas trouvé comment régler le soucis du sed, si l'un de vous a une idée :) J'ai essayé d'adapter la commande indiquée ici mais not work (sed ne semble pas recevoir le fichier)

                    Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

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

                      Posté par  . Évalué à 2.

                      plutot que de toucher au fichier /etc/hosts,

                      tant qu'à monter une usine à gaz,
                      installe un DNS sur ton serveur openvpn,
                      dit lui d'ecouter sur l'IP qui sert de passerelle aux clients VPN
                      et demande à openvpn de mettre à jour le DNS

                      ce sera plus propre
                      plus perenne,
                      plus utile

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

              Posté par  . Évalué à 4.

              -le LAN n'est pas un espace sécurisé (surtout quand je passerai en IPv6)

              le VPN entre 2 machines d'un LAN ne securise rien
              tu chiffres la communication entre ces 2 machines, comme avec SSL, TLS etc

              mais le LAN c'est generalement TON reseau, donc TA securité,
              hormis s'embeter à ajouter des couches de protocole (tunnel VPN(tunnel SSH(contenu)))
              je ne vois toujours pas l'utilité

              -en finir avec les tunnel SSH qui partent dans tout les sens et qui nécessitent leur lot de configuration

              parce que "monter un tunnel SSH qui te permet de monter un tunnel VPN" juste pour simplifier ton usage des tunnels SSH c'est se simplifier la vie ?

              tu vas donc faire plusieurs tunnels VPN vers chacun de tes serveurs, donc autant de fichier de config à gerer, sans compter le tunnel SSH pour ouvrir le "serveur VPN" à ta machine local ?

              -rediriger les flux du reverse proxy plus proprement (par exemple là j'avais une redirection vers un prestashop, qui transitait par un tunnel SSH et prestashop râlait car pour lui hostname:8443 != hostname)

              pourquoi tu passes par un tunnel SSH pour acceder à un serveur local ?

              -faciliter l'accès à mes services (exemple dans firfox je devais taper 127.0.0.1:8080/ pour acceder au service sur server A, 127.0.0.1:8081 pour accéder au service sur server B, maintenant je peux utiliser direct les IP statique dans le VPN que j'ai ajouté en marque page)

              tu peux aussi utiliser les IPs virtuelles 127.0.0.1, 127.0.0.2 127.0.0.3, etc etc

              et sur une machine distance tu peux aussi avoir plusieur IP virtuelle/secondaire (192.168.x.1, 192.168.x.2, 192.168.x.3…)

              -fixer les IP indépendamment du routeur/DHCP

              là aussi tu peux avoir une machine avec un reseau 192.168.1.0/24 fournit par le routeur/dhcp et acceder à internet par celui là

              mais utiliser le reseau 192.168.2.0/24 pour tes maquettes

              donc NON le VPN n'est pas la solution aux problemes que tu te crees

              le VPN pourra par contre te servir quand tu voudras, depuis l'exterieur, te connecter à ton datacenter (serveur VPN1), ou à la maison (serveur VPN2)

              une fois les VPNs ouverts, la magie s'opere, et tes flux transitent comme si tu etais sur ton LAN, pas besoin de tunnel ssh, de redirection de port, de reverseproxy…

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

                Posté par  . Évalué à -2.

                le VPN entre 2 machines d'un LAN ne securise rien

                Avec ettercap je peux aisément récupérer le flux de données entre server Piwik http (ou https autosigné) et le client. Je n'ai pas encore testé, mais je ne pense pas pouvoir faire pareil quand la communication passe par le VPN (vu que les clés de crypto sont insérées directement dans le fichier de configuration .ovpn)

                mais le LAN c'est generalement TON reseau, donc TA securité,

                Dans mon cas ça ne l'est pas. C'est compliqué :)

                parce que "monter un tunnel SSH qui te permet de monter un tunnel VPN" juste pour simplifier ton usage des tunnels SSH c'est se simplifier la vie ?
                tu vas donc faire plusieurs tunnels VPN vers chacun de tes serveurs, donc autant de fichier de config à gerer, sans compter le tunnel SSH pour ouvrir le "serveur VPN" à ta machine local ?

                Pour les machines sur le même LAN, pas besoin de tunnels. Pour les messages hors LAN, j'ouvrirai probablement un port dans le NAT.
                Le tunneling SSH c'est surtout pour les machines mobiles qui parfois sont sur le même LAN, parfois pas (sachant que dans mon cas l'hairpinning n'est pas fonctionnel)

                pourquoi tu passes par un tunnel SSH pour acceder à un serveur local ?

                Alors en gros : dans le reverse proxy apache2 j'ai du lui ajouter un paramètre afin qu'apache2 ne vérifie pas le certificat TLS (= faille de sécurité) car certificat autosigné (le certificat trust étant géré par le frontend/reverse proxy).
                Comme j'avais pas envie que le premier MITM venu arrive à se taper entre le frontend et l'hébergeur => SSH Tunneling (maintenant remplacé par le VPN).

                de reverseproxy

                Je suis en IPv4 si je veux publier des sites sur plusieurs machines je suis obligé soit d'ouvrir plusieurs ports sur le NAT (méthode facile) soit passer par le reverse proxy. Sachant que les certificats TLS ne sont valide que pour les ports 80, 443, 8080 et 8443 (avant qu'on viennent encore me dire "meuh moi je l'utilise sur un autre port pour du XMPP" => testez avec un navigateur Web et pas avec un logiciel de XMPP, vous aurez une belle alerte de sécurité que Michu n'est pas capable de passer).
                Le VPN a ce niveau ne va rien changer :)

                Après je pense l'avoir mis dans le tuto mais les seuls intérêt de faire du tunneling SSH over Tor pour joindre un VPN c'est d'outrepasser l'hairpinning foireux sans modifier le NAT et/ou s'amuser à créer un tunnel de crypto monstrueux.
                Il va de soit que je déconseilles cette utilisation (complexe) à ceux qui ont de l'hairpinning fonctionnel.

                Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

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

                  Posté par  . Évalué à 2.

                  tu verras avec ton DNS ce sera tout simple

                  quand tu es dehors ton service.eaufroide.com pointe sur ton IP publique (DNS externe)
                  quand tu es dedans (LAN) service.eaufroide.com pointe sur l'IP LAN de ton serveur (ou sur l'IP LAN du reverse proxy)

                  et tu n'as alors plus de probleme de hairpinning

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

                    Posté par  . Évalué à -2.

                    Oui ton idée est fort intéressante, je vais très probablement traiter ce sujet prochainement, merci pour ton astuce.

                    Un serveur DNS consomme beaucoup de ressources? (un RPI type 1B+ serait-il suffisant?)
                    La communication entre les clients et le serveur DNS est-elle chiffrée? (je vais me retaper la conf de S.Bortzmeyer sur la sécurité des DNS ^ ^ )

                    Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

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

                      Posté par  . Évalué à 3.

                      La communication entre les clients et le serveur DNS est-elle chiffrée

                      non, mais c'est pas grave car ce sera DANS le VPN
                      donc client <=> service VPN <=> Serveur VPN <=> Service DNS

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

                        Posté par  . Évalué à 2.

                        non, mais c'est pas grave car ce sera DANS le VPN

                        En "pushant" l'adresse du DNS dans les options du VPN pour remplacer son IP privé par l'IP dans le VPN?

                        C'est ingénieux, j'aime beaucoup ton idée NeoX ;)

                        Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

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

                          Posté par  . Évalué à 3. Dernière modification le 11 mai 2017 à 15:45.

                          C'est ingénieux, j'aime beaucoup ton idée NeoX ;)

                          ce n'est pas "ingenieux"
                          c'est comme ca qu'on fait quand on est dans le metier,

                          tout comme on ne reinvente pas la securité par des tunnels ssh pour monter un VPN dedans, alors qu'on est dans un LAN

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

                            Posté par  . Évalué à 2. Dernière modification le 11 mai 2017 à 16:21.

                            tout comme on ne reinvente pas la securité par des tunnels ssh pour monter un VPN dedans, alors qu'on est dans un LAN

                            Les tunnels SSH sont la seule méthode fonctionnelle que j'ai actuellement trouvé pour faire passer du trafic réseau par Tor si le besoin s'en fait ressentir :)
                            En effet Ubuntu/Debian n'est pas capable, par défaut, de faire communiquer n'importe quel logiciel client avec un .onion (faudrait que je me penche du côté des proxy)
                            Ce mécanise m'évite aussi de dépendre des fournisseurs de nom de domaine (je n'ai certes eu aucun soucis avec netlib.re jusqu'à maintenant, mais j'ai bien retenu la leçon de no-ip qui me bloquait mon nom de domaine régulièrement :P )

                            PS: je trouve aussi con l'idée du tunnel SSH en LAN pour faire transiter la communication VPN, s'était la solution de facilité (l'idée du fichier /etc/hosts dynamique me trotte dans la tête depuis un moment mais je n'avais pas encore tenté de scripter quelque chose :) )

                            Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

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

                      Posté par  (site web personnel, Mastodon) . Évalué à 4.

                      Un Raspberry Pi B+ suffira amplement. Personnellement, j'en ai 2 d'entre eux qui font DNS+DHCP, sous NetBSD. J'en ai deux pour faire de la tolérance aux pannes, mais un est largement suffisant d'un point de vue charge.

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

                    Posté par  . Évalué à 1.

                    Bête question :
                    comment on fait, en ligne de commande, pour spécifier un serveur DNS sur un réseau filaire et conserver le mode automatique sur les autres réseaux filaire (sur la même carte réseau)

                    Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

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

                      Posté par  . Évalué à 2.

                      ben tu fais une config reseau statique pour quand tu es "chez toi"
                      et une config reseau DHCP pour quand tu n'es pas chez toi

                      donc je ne sais pas comment tu geres tes reseaux habituellement, mais à l'ancienne c'etait

                      • sur debian
                        /etc/network/interfaces

                      • sur redhat/centos
                        /etc/sysconfig/network-script/ifcfg-tacarte

                      de maniere moderne, ce serait avec Network-Manager
                      tu crees des profils "chezmoi" ou "automatique"
                      tu met ce que tu veux dedans.

                      perso c'est la methode network-manager que j'utilise,
                      ainsi que je peux etre sur un hotspot en automatique, et ouvrir automatiquement le VPN vers le bureau,
                      ou bien etre chez le client en IP fixe car son firewall a des autorisations speciales pour moi
                      ou bien etre chez moi, en DHCP sans le VPN (usage perso)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.