Comment NAT d'un PC Windows via un serveur Linux?

2

Je dois NAT un PC Windows avec IP 10.10.10.10 via un serveur Linux avec deux cartes réseau. Les adresses IP des cartes réseau sont 20.20.20.50 (connectées à un réseau externe) et 10.10.10.9. La deuxième carte réseau est connectée au PC Windows. Mon exigence est que je sois en mesure d’atteindre le PC Windows à partir du réseau externe. Je dois donc utiliser NAT 20.20.20.40 (il s’agit de l’IP via laquelle le réseau externe doit pouvoir accéder au PC Windows) jusqu’au 10.10.10.10.

Comment dois-je configurer iptables sur le serveur Linux pour accomplir cela?

utilisateur2007247
la source

Réponses:

1

@John Siu n'est que partiellement correct - alors que les étapes qu'il a indiquées sont nécessaires pour que la sauce NAT magique soit réellement nécessaire, il est absolument nécessaire, car 20.20.20.50 est une véritable adresse IP, mais pas 10.10.10.x.

Pour la connectivité sortante (ce qui semble être déjà le cas)

En supposant que l’interface externe soit eth0 et que l’interface interne soit eth1, vous avez également besoin d’une règle comme

/ sbin / iptables -t nat -A-POSTROUTING -o eth0 -j MASQUERADE

ou similaire, mais avec un contrôle beaucoup plus strict

/ sbin / iptables -t nat -A POSTROUTING -s 10.10.10.10 -o eth0 -j SNAT --à 20.20.20.40

Pour la connectivité entrante du monde vers votre PC

/ sbin / iptables -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.10.10.10:80

Cela permettra aux demandes provenant du monde entier sur le port TCP 80 de votre PC Windows. (Vous pouvez bien sûr modifier les ports et le protocole si nécessaire)

Davidgo
la source
LOL, je n'ai pas fait attention, 20.20.20.50c'est une adresse IP publique, ça a l'air si "privé" pour moi: P. Je vais juste enlever le mien et voter le vôtre +1.
John Siu