Accès au serveur depuis le réseau local (avec VPN configuré)

Bonjour,

Il ne s’agit pas vraiment d’un problème, plus d’une demande d’un conseil afin de savoir si la solution que je compte mettre en œuvre est bien celle recommandée.

Ce que je veux : quand j’accède à mon serveur depuis le réseau local, ne pas passer par le bout de mon VPN.

Ma configuration : Yunohost à jour sur un RPi 4 branché en Ethernet sur une Freebox Revolution avec VPN Client installé et configuré grâce au .cube de mon fournisseur VPN (Aquilenet).

Ce que j’ai fait :

Sur ma Freebox :

  1. J’ai mis un bail DHCP permanent pour fixer l’adresse locale de mon Yunohost.
  2. J’ai indiqué cette IP locale en tête de liste des serveurs DNS

Sur mon Yunohost, j’ai modifié /etc/resolv.conf qui pointait vers 8.8.8.8 en lien symbolique vers /etc/resolvconf/run/resolv.conf

Pourtant, quand je fais un traceroute vers mon nom de domaine depuis mon PC, je vois que je passe toujours par le bout du VPN. Du coup, j’ai modifié mon fichier /etc/hosts comme il faut sur mon PC, ce qui me permet de contourner le problème, mais ce n’est pas très élégant surtout que c’est un PC portable et que cette page semble indiquer que ce n’est pas nécessaire.

Ce que j’envisage de faire : modifier le /etc/hosts de mon Yunohost pour y ajouter ip.locale.du.yunohost mon.domaine.tld et modifier /etc/dnsmasq.conf pour y ajouter la directive strict-order

Je pense que cela va marcher, mais je voudrais savoir s’il s’agit bien de la bonne manière de faire, ou si je devrais chercher l’origine du problème ailleurs.

Question subsidiaire qui pourrait m’aider : où peut-on trouver sur le dépôt Github les fichiers de conf (comme /etc/resolv.conf) dans l’état où ils sont censés se trouver à l’issue de l’installation ?

Merci d’avance.

Perso c’est ce qui me serait venu en tête en premier … pas sur de savoir pourquoi c’est pas “élégant” :wink: D’un point de vue pratique : 1) ça peut être “pas ouf” si tu souhaites prendre ton PC portable a l’extérieur de chez toi et contacter ton serveur depuis un autre connexion (dans ce cas il faut défaire la bidouille dans /etc/hosts) et 2) il faut faire la bidouille sur chaque autre machine via lesquelles tu souhaites accéder à ton serveur sans passer par le VPN

Je connais pas suffisament les options et comportements de dnsmasq pour dire :s (N.B. : en soi c’est pas un problème que ca passe par le VPN, c’est juste le comportement attendu : ton nom de domaine pointe sur l’IP de ton VPN, et quand tu cheches à contacter tondomaine.tld, ton ordinateur trouve l’IP associé (donc celle du VPN), etc…

C’est pas évident car certains fichiers sont fourni par des paquets debian, d’autres sont géré / généré par des services ~indépendants de yunohost, et d’autres sont généré dynamiquement par Yunohost.

En l’occurence pour /etc/resolv.conf, c’est un fichier censé être généré par le service resolvconf, de sorte à ce qu’il contienne normalement juste “nameserver 127.0.0.1” (et un pâté de commentaire). Seulement dans plein de cas c’est pas le cas et je pige pas trop pourquoi (m’enfin ce fichier /etc/resolv.conf c’est toujours la guerre car il y a au moins 2 ou 3 programmes/services qui se battent pour le gérer…)

Merci @Aleks pour ta réponse. Je me rends compte que j’ai oublié d’inclure un lien dans mon précédent post, qui t’aurait permis de mieux comprendre pourquoi je trouve la solution du fichier /etc/hosts peu satisfaisante (en plus des deux points que tu soulèves, qui sont essentiels). Pour moi, l’élégance en informatique est un horizon orienté vers l’absence de redondance du travail humain et la frugalité du travail machine : vers une forme de double efficacité humaine et matérielle donc. Mais bon, peut-être que le terme élégance n’est pas le plus adéquat. :slight_smile:
En fait, sur cette page, il est indiqué qu’une solution pour contourner le problème la fonctionnalité du passage obligatoire par le bout du VPN est d’utiliser Yunohost comme DNS resolver quand on est à la maison :

utiliser le serveur YunoHost comme résolveur DNS lorsque l’on est chez soi, de façon à rediriger les noms de domaines du serveur l’ip locale plutôt que l’ip publique. Cette opération peut se faire soit sur chaque équipements, soit sur le routeur (si ce dernier le permet).

Comme aucun renseignement supplémentaire n’est donné, j’imaginais qu’il n’y avait aucune configuration particulière à faire sur le serveur Yunohost. Cependant, comme cela ne fonctionnait pas, je me demandais si cela n’était pas dû à des fichiers de configuration de dnsmasq modifiés par un quelconque paquet (en l’occurrence, je sais que le .cube de mon fournisseur de VPN en a modifié certains).

Bon, puisque tu me dis que tu aurais simplement modifié le fichier /etc/hosts, je ne vais me contenter de ça : je ne vais pas me faire plus perfectionniste que les devs :wink: Si jamais je vois que cela me pose des problèmes assez régulièrement, j’aviserai.

Salut,

C’est faisable et ça prend 5 minutes.

Je suppose que tes appareils sont connectés grace au Hotspot de Yunohost ?

Si oui, tu peux faire ça :

Sur ton Yunohost, en root, modifier le fichier /etc/dnsmasq.conf pour y mettre en écoute l’adresse IP de l’interface wifi : 10.0.242.1 en rajoutant cette ligne :
listen-address=10.0.242.1

Ce qui devrait donner quelque chose du genre :

omain-needed
expand-hosts
listen-address=127.0.0.1
listen-address=10.0.242.1
resolv-file=/etc/resolv.dnsmasq.conf
cache-size=256

Toujours sur ton serveur Yunohost, tu modifies le fichier /etc/hosts afin de rajouter ton nom de domaine et l’adresse IP de l’interface wifi :

vi /etc/hosts

Et rajouter ton (ou tes) nom de domaine :

127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters
10.0.242.1      mondaomaine.com www.mondomaine.com

Ensuite tu redémarres le service DNS (dnsmasqu)
systemctl restart dnsmasq

Après il faut s’occuper du Hotspot de Yunohost.
Dans l’interface de l’application Yunohost, tu clique sur l’onglet IPV4 et tu indique l’adresse IP de ton interface Wifi pour les 2 résolveurs DNS :

Tu sauvegardes, cela va relancer le hotspot, ensuite cela devrait fonctionner.depuis n’importe quel appareil connecté au wifi du hotspot.
Tiens moi au courant du résultat stp.

A +

2 Likes

Ou bien faire ça depuis l’interface web … Car éditer les fichiers de settings à la main c’est pas fifou

Tu as raison.
J’ai mis à jour le poste.

Merci !

1 Like

Merci à tous les deux,

En fait non… J’ai plusieurs appareils branchés en Ethernet sur la box et j’ai besoin qu’ils soient sur le même réseau local que mon hotspot wifi (pour du DLNA, essentiellement). Du coup, la solution que tu proposes est intéressante mais je ne peux pas la mettre en application car elle est incompatible avec mes usages actuels. Ceci dit je me trompe peut-être : les appareils connectés au hotspot de Yunohost sont-ils toujours reconnus comme appartenant au réseau local par la box ?
Si tu me dis que oui, je m’empresserai d’essayer ta solution :wink:

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.