Accès SSH sur serveur linux connecté à un VPN
Bonjour,
J'ai besoin d'aide pour accéder à mon serveur en ssh...
A la maison, j'ai un servuer linux (raspberry), qui est connecté à ma Freebox. Sur ma Freebox, j'ai l'ouverture du port 22 pour une redirection sur mon raspberry, et ça me permet d'accéder à mon serveur depuis mon téléphone par exemple.
Cependant, j'ai ajouté récemment openvpn, mon raspberry est donc maintenant connecté tout le temps sur le VPN. Du coup, mon accès en SSH ne fonctionne plus.
Ce qui m'étonne, car depuis mon serveur connecté en VPN (VPN à l'étranger), j'ai quand même l'accès à tout mon réseaux privé (j'accède à mon NAS, ma Freebox etc.. ). Lorsque je suis connecté en local, j'accède bien à mon raspberry en SSH en utilisant l'ip privée du Raspberry. Même lorsque j'utilise l'ip de ma Freebox avec la redirection ssh, la connection en SSH se fait correctement.
Par contre, dès que je sors de mon réseaux privé, plus d'accès.
Y aurait il un moyen pour que je puisse accéder à mon serveur en SSH, meme connecté en VPN ?
Merci,
Baptiste
J'ai besoin d'aide pour accéder à mon serveur en ssh...
A la maison, j'ai un servuer linux (raspberry), qui est connecté à ma Freebox. Sur ma Freebox, j'ai l'ouverture du port 22 pour une redirection sur mon raspberry, et ça me permet d'accéder à mon serveur depuis mon téléphone par exemple.
Cependant, j'ai ajouté récemment openvpn, mon raspberry est donc maintenant connecté tout le temps sur le VPN. Du coup, mon accès en SSH ne fonctionne plus.
Ce qui m'étonne, car depuis mon serveur connecté en VPN (VPN à l'étranger), j'ai quand même l'accès à tout mon réseaux privé (j'accède à mon NAS, ma Freebox etc.. ). Lorsque je suis connecté en local, j'accède bien à mon raspberry en SSH en utilisant l'ip privée du Raspberry. Même lorsque j'utilise l'ip de ma Freebox avec la redirection ssh, la connection en SSH se fait correctement.
Par contre, dès que je sors de mon réseaux privé, plus d'accès.
Y aurait il un moyen pour que je puisse accéder à mon serveur en SSH, meme connecté en VPN ?
Merci,
Baptiste
A voir également:
- Accès SSH sur serveur linux connecté à un VPN
- Se connecter à gmail sur téléphone - Guide
- Acces rapide - Guide
- Changer serveur dns - Guide
- Appareil connecté facebook - Guide
- Accès refusé - Guide
3 réponses
Bonjour,
Les éléments que tu donnes sont un peu restreints pour qu'in puisse répondre.
Il faudrait regarder si ta route par défaut passe ou non par ton interface vpn, et si la passerelle vpn que tu atteins est en mesure de router l'ip du serveur ssh.
Plus simplement tu pourrais aussi ne router en vpn que les IP du réseau concerner, mais faire en sorte que la route qui te permet d'atteindre ton serveur ssh n'utilise pas ton interface vpn.
Si tu veux plus de détails, il faudrait nous reporter l'IP du serveur ssh, de la passerelle vpn, et les routes du client et de la passerelle vpn.
Bonne chance
Les éléments que tu donnes sont un peu restreints pour qu'in puisse répondre.
Il faudrait regarder si ta route par défaut passe ou non par ton interface vpn, et si la passerelle vpn que tu atteins est en mesure de router l'ip du serveur ssh.
Plus simplement tu pourrais aussi ne router en vpn que les IP du réseau concerner, mais faire en sorte que la route qui te permet d'atteindre ton serveur ssh n'utilise pas ton interface vpn.
Si tu veux plus de détails, il faudrait nous reporter l'IP du serveur ssh, de la passerelle vpn, et les routes du client et de la passerelle vpn.
Bonne chance
(Je dis peut-être une connerie, corrigez moi si c'est le cas)
Déja d'après ce que j'ai compris, le serveur VPN est en dehors de ton réseau privé ? (je considère que oui pour ce qui suit)
Considérons :
A = ton pc
B = ton serveur
C = le (serveur) VPN
En temps normal une connexion ssh va de ton pc au serveur, et du serveur à ton pc :
A <==> B
donc ton pc (A) sait qu'il doit recevoir des données de B, la connexion est déja établie.
En ajoutant le VPN, la connexion ssh va ton pc au serveur, et la réponse du serveur passe par le VPN, donc ton PC doit recevoir des données du VPN et non du serveur. La connexion entre ton PC et le VPN n'étant pas établie, peut-être que le pare-feu de ton PC bloque la connexion entrante venant de ton VPN.
Est ce qu'il ne faudrait pas ajouter une règle sur le pare-feu de ton pc pour pouvoir recevoir les connexion entrante venant du VPN,pour le protocol SSH ?
Déja d'après ce que j'ai compris, le serveur VPN est en dehors de ton réseau privé ? (je considère que oui pour ce qui suit)
Considérons :
A = ton pc
B = ton serveur
C = le (serveur) VPN
En temps normal une connexion ssh va de ton pc au serveur, et du serveur à ton pc :
A <==> B
donc ton pc (A) sait qu'il doit recevoir des données de B, la connexion est déja établie.
En ajoutant le VPN, la connexion ssh va ton pc au serveur, et la réponse du serveur passe par le VPN, donc ton PC doit recevoir des données du VPN et non du serveur. La connexion entre ton PC et le VPN n'étant pas établie, peut-être que le pare-feu de ton PC bloque la connexion entrante venant de ton VPN.
Est ce qu'il ne faudrait pas ajouter une règle sur le pare-feu de ton pc pour pouvoir recevoir les connexion entrante venant du VPN,pour le protocol SSH ?
Merci pour ce retour,
Le VPN est en dehors du réseaux, c'est un fournisseur payant.
Dailleur, par rapport la description du reseaux, je vais rajouter quelques infos
A = ton pc => En dehors du réseaux domestique et VPN (en fait, c'est mon Téléphone, donc un réseaux bien distinct)
B = ton serveur => relié à ma freebox
C = le (serveur) VPN => Fournisseur payant
Donc en effet, lorsque j'accède à mon serveur en ssh, la connexion au serveur commence, mais je pense que mon serveur renvoie les paquets au VPN et non pas à ma Freebox, donc le VPN voit ces paquets arriver, il ne sait pas quoi en faire car il connait pas l'équipement à qui il doit renvoyer les infos, donc il les supprime.
Le but serait donc de forcer le routage des paquets :
Tous paquets qui arrivent sur le port 22, à rediriger sur le port 22 de ma Freebox et non pas du VPN.
Mais ça, je ne sais pas encore si c'est techniquement possible avec mon serveur qui est un raspberry...
Le VPN est en dehors du réseaux, c'est un fournisseur payant.
Dailleur, par rapport la description du reseaux, je vais rajouter quelques infos
A = ton pc => En dehors du réseaux domestique et VPN (en fait, c'est mon Téléphone, donc un réseaux bien distinct)
B = ton serveur => relié à ma freebox
C = le (serveur) VPN => Fournisseur payant
Donc en effet, lorsque j'accède à mon serveur en ssh, la connexion au serveur commence, mais je pense que mon serveur renvoie les paquets au VPN et non pas à ma Freebox, donc le VPN voit ces paquets arriver, il ne sait pas quoi en faire car il connait pas l'équipement à qui il doit renvoyer les infos, donc il les supprime.
Le but serait donc de forcer le routage des paquets :
Tous paquets qui arrivent sur le port 22, à rediriger sur le port 22 de ma Freebox et non pas du VPN.
Mais ça, je ne sais pas encore si c'est techniquement possible avec mon serveur qui est un raspberry...
Bonjour,
Vu que ton serveur VPN est extérieur tu devrais avoir tes routes classiques, qui permettent de le router, typiquement si tu as une box quelque chose de ce genre :
Passons aux routes VPN.
De deux choses l'une :
1) soit tu veux router via tun0 uniquement les adresses du VPN
2) soit tu veux en plus que ton trafic traverse ce VPN
Cas 1 :
Il n'y a qu'une route VPN, dont la gateway est l'IP publique du serveur VPN (mettons 11.22.33.44), et le couple (destination, genmask) qui définit la plage d'adresse qui doit être routée via tun0.
Cette route signifie que 172.21.92.0/255.255.254.0 (noté aussi 172.21.92.0/31) est accédé via la passerelle VPN 11.22.33.44.
Tu continues à router tout ce qui est en dehors de cette plage d'adresse normalement.
Personnellement c'est ce que je préconise, sinon ton trafic internet fait au préalable un détour via le réseau VPNisé avant d'atteindre sa destination (et réciproquement).
Cas 2 :
Il faut se placer du point de vue d'une machine qui serait dans le réseau 172.21.92.0/31. Elle aurait typiquement une gateway permettant d'accéder à Internet (au même titre que 192.168.0.254 le permet dans le réseau 192.168.0.0/24). Supposons que cette gateway soit 172.21.92.1, la nouvelle route par défaut serait alors du genre :
Reste à concilier l'ancienne route par défaut et la nouvelle. Surtout, il faut pouvoir continuer à router la passerelle VPN. Du coup j'ajouterais au préalable la route :
Il devient alors possible de remplacer l'ancienne route par défaut par la nouvelle.
Bonne chance
Vu que ton serveur VPN est extérieur tu devrais avoir tes routes classiques, qui permettent de le router, typiquement si tu as une box quelque chose de ce genre :
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
0.0.0.0 192.168.0.254 0.0.0.0 UG 600 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlan0
Passons aux routes VPN.
De deux choses l'une :
1) soit tu veux router via tun0 uniquement les adresses du VPN
2) soit tu veux en plus que ton trafic traverse ce VPN
Cas 1 :
Il n'y a qu'une route VPN, dont la gateway est l'IP publique du serveur VPN (mettons 11.22.33.44), et le couple (destination, genmask) qui définit la plage d'adresse qui doit être routée via tun0.
172.21.92.0 11.22.33.44 255.255.254.0 U 0 0 0 tun0
Cette route signifie que 172.21.92.0/255.255.254.0 (noté aussi 172.21.92.0/31) est accédé via la passerelle VPN 11.22.33.44.
Tu continues à router tout ce qui est en dehors de cette plage d'adresse normalement.
Personnellement c'est ce que je préconise, sinon ton trafic internet fait au préalable un détour via le réseau VPNisé avant d'atteindre sa destination (et réciproquement).
Cas 2 :
Il faut se placer du point de vue d'une machine qui serait dans le réseau 172.21.92.0/31. Elle aurait typiquement une gateway permettant d'accéder à Internet (au même titre que 192.168.0.254 le permet dans le réseau 192.168.0.0/24). Supposons que cette gateway soit 172.21.92.1, la nouvelle route par défaut serait alors du genre :
0.0.0.0 172.21.92.1 0.0.0.0 U 0 0 0 tun0
Reste à concilier l'ancienne route par défaut et la nouvelle. Surtout, il faut pouvoir continuer à router la passerelle VPN. Du coup j'ajouterais au préalable la route :
11.22.33.44 192.168.0.254 255.255.255.255 U 0 0 0 eth0
Il devient alors possible de remplacer l'ancienne route par défaut par la nouvelle.
Bonne chance
J'ai réussi à ajouter une route ce qui me permet de faire fontionner mon accès à distance.
En effet, j'ai ajouté la route suivante :
ip route add 37.0.0.0/8 via 192.168.1.254
J'ai remarqué que mon ip de mon téléphone commence toujours par 37, donc tout ce qui vient de l'ip 37 je redirige sur la route par défaut de ma freebox.
Je vais commencer ça voir si ça me suffit, sinon je ferai l'autre cas.
Merci encore pour ton aide
En effet, j'ai ajouté la route suivante :
ip route add 37.0.0.0/8 via 192.168.1.254
J'ai remarqué que mon ip de mon téléphone commence toujours par 37, donc tout ce qui vient de l'ip 37 je redirige sur la route par défaut de ma freebox.
Je vais commencer ça voir si ça me suffit, sinon je ferai l'autre cas.
Merci encore pour ton aide
Si tu passes par un script pour activer ton VPN, tu peux simplement récupérer dans ton script ton adresse IP et ainsi mettre une route spécifique, c'est le plus propre. Sinon tu vas mal router toutes les autres IP commençant par 37.
toto.sh :
Puis pour lancer ton script :
Bonne chance
toto.sh :
#!/bin/sh ip_telephone=`/sbin/ifconfig | grep "inet 37\." | awk '{print $2}'` ip route add $ip_telephone/255.255.255.255 via 192.168.1.254 # et les autres routes
Puis pour lancer ton script :
chmod a+x toto.sh
sudo ./toto.sh
Bonne chance
Voici quelques infos en plus :
192 => Réseaux Freebox (eth0)
172 => Réseaux VPN (tun0)
=> route
=> ifconfig