Comment puis-je redirect le trafic sortant vers le port 80 en utilisant iptables localement?

J'essaie de redirect localement des ports sur ma machine Ubuntu en utilisant iptables . Similaire au proxy transparent. Je veux attraper n'importe quoi en essayant de quitter mon système sur le port 80 et redirect vers un hôte distant et le port.

Puis-je y parvenir en utilisant les fonctions NAT et pré-routing d' iptables ?

Essayez cette règle iptables :

 $ sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination IP:80 

Ce qui précède dit à:

  • Ajoutez la règle suivante à la table NAT ( -t nat ).
  • Cette règle sera ajoutée ( -A ) au trafic sortant ( OUTPUT ).
  • Nous ne sums intéressés que par le trafic TCP ( -p tcp ).
  • Nous ne sums intéressés que par le trafic dont le port de destination est 80 ( --dport 80 ).
  • Lorsque nous avons une correspondance, passez à DNAT ( -j DNAT ).
  • Apathez ce trafic vers le port IP @ d'un autre server 80 ( --to-destination IP:80 ).

Qu'est-ce que le DNAT?

 DNAT This target is only valid in the nat table, in the PREROUTING and OUTPUT chains, and user-defined chains which are only called from those chains. It specifies that the destination address of the packet should be modified (and all future packets in this connection will also be mangled), and rules should cease being examined. 

Les references

  • Page de manuel d'iptables

Cela peut vous permettre de traduire les ports vers toutes les adresses IP. La principale différence ici est l'absence d'une adresse IP dans le --to-destination .

 iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination :80