DD-WRT: le port ne fonctionne pas lors de la connexion avec l'IP publique depuis le LAN

J'ai un problème où je ne peux pas me connecter à mon serveur domestique depuis mon réseau local lorsque j'utilise l'adresse IP publique du routeur DD-WRT. J'ai essentiellement le même problème que celui décrit ici: DD-WRT: Comment autoriser le renvoi de port à s'appliquer aux demandes provenant de l'intérieur du réseau local? ; Cependant, aucune des solutions fournies ne fonctionne pour moi. Je suis certain que j'ai modifié les valeurs correctes pour qu'il s'applique à ma configuration LAN. Le routeur est un Netgear WNR834B v2 et il exécute DD-WRT v24-sp2 18777. J'utilise l'IP par défaut (192.168.1.1) pour cela et je sais que le domaine et le port redirige le travail habituellement.

EDIT: Got it! J'ai trouvé que je devais activer le DNS local et utiliser cette réponse à partir de la question liée.

DD-WRT n'est probablement pas configuré pour le routage en épingle à cheveux. La connexion à l'IP publique depuis le réseau local est généralement une mauvaise idée, et vous ne pourrez pas identifier la source de connexion. La meilleure option est de se connecter directement au serveur souhaité à l'intérieur du réseau.

La FAQ 2 de Shorewall couvre la configuration du routeur afin qu'il fonctionne. Shorewall construit un pare-feu iptables à partir d'un ensemble de fichiers de spécifications, de sorte que les étapes ne sont pas les commandes iptables requises, mais la carte est assez simple pour iptables. Je crois que vous devriez pouvoir exécuter shorewall-lite sur DD-WRT, auquel cas vous devrez construire tout votre pare-feu dans Shorewall plutôt que l'outil DD-WRT.

L'utilisation de DNS fractionné est beaucoup plus facile et je recommanderais cette approche. Un outil comme dnsmasq peut fournir le DNS interne nécessaire à partir d'un fichier /etc/hosts . Il sert de serveur de mise en cache pour les adresses sur Internet. Il fournit également DHCP, si vous ne l'exécutez pas sur votre routeur DD-WRT, vous voudrez décider quel serveur DHCP doit être activé. Si vous avez la mémoire que vous pouvez installer sur DD-WRT en remplacement du serveur DHCP par défaut.

EDIT: si vous choisissez d'utiliser dnsmasq il est préférable de le configurer comme serveur DHCP actif. Si vous ne l'exécutez pas sur votre routeur, désactivez DCHP sur les routeurs. Alternativement, utilisez des adresses fixes en dehors de la plage d'adresses DHCP pour les serveurs auxquels vous souhaitez acheminer. L'utilisation d'adresses fixes est une bonne idée pour les serveurs de toute façon. Ajoutez les adresses des serveurs au fichier /etc/hosts sur l'hôte exécutant dnsmasq et redémarrez dnsmasq . Si vous configurez dnsmasq avec un domaine, vous pouvez également rechercher des clients DHCP par leur nom.

Déterminez l'adresse de l'hôte dnsmasq . (Cela devrait être une adresse réseau privée comme 192.168.0.10.) Configurez votre serveur DHCP pour répertorier cette adresse en tant que premier serveur de noms DNS. Pour les hôtes linux et autres avec un fichier /etc/resolve.conf , utilisez cette adresse pour l'entrée du premier nameserver . Pour les autres serveurs avec des entrées de serveur de noms statiques, faites de cette adresse la première adresse spécifiée.

Les clients DHCP devront avoir leurs données DNS mises à jour. Le déclenchement d'un renouvellement DHCP devrait mettre à jour les données. De nombreux systèmes disposent de caches DNS internes, de sorte que les modifications peuvent ne pas être visibles immédiatement. Le redémarrage des clients après que toute la configuration du serveur a été effectuée doit effacer toutes les caches et recharger la configuration spécifiée par DHCP.