J'ai actuellement un boîtier NAS fonctionnant sous le port 80. Pour accéder au NAS de l'extérieur, j'ai mappé le port 8080 au port 80 sur le NAS comme suit:
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 10.32.25.2:80
Cela fonctionne comme un charme. Cependant, cela ne fonctionne que si j'accède au site Web depuis l'extérieur du réseau (au travail, dans une maison différente, etc.). Donc, lorsque je tape mywebsite.com:8080
, IPTables fait le travail correctement et tout fonctionne bien.
Maintenant, le problème que j'ai est, comment puis-je rediriger ce port de l'intérieur du réseau? Mon nom de domaine mywebsite.com
pointe vers mon routeur (mon serveur Linux) de l'intérieur (10.32.25.1) mais je veux rediriger le port 8080 vers le port 80 sur 10.32.25.2 de l'intérieur.
Un indice?
Éditer # 1
En essayant d'aider à faciliter cette question, j'ai assemblé ce diagramme. N'hésitez pas à mettre à jour s'il est incorrect ou dénaturé ce que vous recherchez.
iptables
| .---------------.
.-,( ),-. v port 80 |
.-( )-. port 8080________ | |
( internet )------------>[_...__...°]------------->| NAS |
'-( ).-' 10.32.25.2 ^ 10.32.25.1 | |
'-.( ).-' | | |
| '---------------'
|
|
__ _
[__]|=|
/::/|_|
10.32.25.1:8080
rediriger vers10.32.25.2:80
. Ma règle ci-dessus fonctionne de l'extérieur, mais pas de l'intérieur de mon réseau. Donc, si je suis au bureau, je peux accéder à mon NAS depuis website.com:8080 et c'est complètement transparent. De chez moi, website.com:8080 pointe vers 10.32.25.1 parce que c'est mon routeur aka serveur Linux. Je veux rediriger le port 8080 vers le NAS également sur le port 80 mais encore une fois, de manière transparente.eth0 10.32.25.2
, afin que nous puissions écrire l'utilisation d'iptables basée sur l'interface entranteRéponses:
J'ai finalement trouvé un guide pratique. Tout d'abord, j'ai dû ajouter
-i eth1
à ma règle "extérieure" (eth1 est ma connexion WAN). J'ai également dû ajouter deux autres règles. Voici finalement ce que je suis venu avec:la source
Vous avez également oublié de mentionner que le transfert de package doit être activé pour pouvoir effectuer le NAT de destination. Par défaut, il est généralement désactivé, donc les règles iptables ne fonctionneront pas. Il peut être activé en émettant:
la source
Autorisez d'abord le transfert avec
Ensuite, définissez des règles iptables avec
Vous pouvez mettre ces lignes
/etc/rc.local
par exemple. Remarque: étant donné que Debian Jessie le rend exécutable et active le service rc.local viala source
Vous devez d'abord vérifier que le transfert est activé:
cat /proc/sys/net/ipv4/ip_forward
Sinon
1
, exécutezecho 1 > /proc/sys/net/ipv4/ip_forward
.Si vous souhaitez que le trafic atteignant 10.32.25.1 sur les ports 80 et 443 soit transféré vers le port 80 de 10.32.25.2, vous devez utiliser la règle ci-dessous:
la source