/ IT

Contourner le loopback de la Livebox

This article is meant for the french users of the Orange internet provider


Disposant temporairement d’une Livebox Fibre le temps de recevoir mon routeur pfSense et hébergeant un serveur public sur cette même connexion, j’ai dû faire face comme tous les utilisateurs de Livebox au loopback des adresses publiques hébergées en interne vers le routeur.

Vous avez dit loopback ? Contrairement aux autres solutions de routage mises à disposition par les différents opérateurs, Orange a décidé de ne pas rediriger l’accès à la DMZ en interne lors d’une connexion à l’IP publique. C’est un choix pour le moins étrange et pénalisant, malheureusement depuis les années rien n’a changé.

Voici donc une méthode simple et rapide vous permettant de contourner ce problème :

Le principe des DNS :

Lors de l’accès à une adresse donnée, votre client (mail, ssh, web, etc) va effectuer une résolution du nom.

Par exemple, si je veux me connecter sur : cagedmonster.net la résolution pointra vers : 90.108.214.7 qui est l’IP publique de ma Livebox. Pour un client extérieur aucun problème, la Livebox effectuera la redirection vers la DMZ. En interne la Livebox redirigera automatiquement sur elle même et non votre serveur public.

L’objectif ici va être de biaiser la résolution DNS en forçant votre système à non pas résoudre l’adresse publique mais l’adresse interne.

Mais alors, pourquoi ne pas simplement taper l’IP du serveur interne pour s’y connecter en local ?

Parce que dans le cas où vous hébergeriez un serveur Web comprenant plusieurs VirtualHosts, tels que :

il vous sera impossible d’accéder correctement à vos ressources d’autant plus si vous utilisez des CMS, tels que WordPress, configurés pour utiliser dans leurs liens l’URL publique.

Solution :

Nous allons inclure en dur dans le fichier hosts de notre système les différents alias de notre nom de domaine déclaré et les faire rediriger sur l’adresse locale du serveur.

Le fichier hosts d’un système (Linux/*BSD/Windows/etc) est la toute première source utilisée pour résoudre un nom de domaine. Il est prioritaire. Il reste donc à le configurer correctement de cette manière :

Linux/Unix :

# vi /etc/hosts 

192.168.1.3  lina.cagedmonster.net 
192.168.1.3  cagedmonster.net 
192.168.1.3  blog.cagedmonster.net 
192.168.1.3  mail.cagedmonster.net

Mon serveur local a pour adresse IP : 192.168.1.3 la résolution d’un des noms ci-après pointera directement vers mon serveur en passant par l’adresse locale. Dans le cas d’un accès Web, mon navigateur initiera la connexion vers cette IP et demandera le bon VirtualHost permettant d’accéder à mon serveur de manière transparente comme si je venais de l’extérieur.

Windows :

Lancez un éditeur de texte en mode administrateur et ouvrez le fichier suivant :

c:\windows\system32\drivers\etc\hosts

Ajoutez les lignes de la même manière que précédemment :

ip-locale-de-votre-serveur   votre-domaine.tld