Insérer une solution nat dans un réseau alors que ce n'est pas la passerelle

J'ai essayé ceci de différentes manières. En train d'essayer avec pf sur freebsd 8.2

J'essaye d'insert une solution nat dans un réseau existant qui redirecta le trafic d'une adresse ip extérieure vers une adresse IP interne sur tous les ports (static nat) mais je veux aussi traduire l'adresse source.

Réseau actuel.

hosta 192.168.1.2/24 gw 192.168.1.1/24 outsidehost 10.0.0.1/24 natbox em0 192.168.1.3/24 (used to manage the box) em1 10.0.0.2/24 (outside address same lan as outsidehost) em0_alias0 192.168.1.4/24 (inside address same lan as hosta) route 192.168.1.0/24 192.168.1.1 route 0.0.0.0 0.0.0.0 10.0.0.1 

Je veux que outsidehost soit capable de telnet à 192.168.1.3 par telneting (sp) à 10.0.0.2

Pour que cela fonctionne, je suppose que je vais devoir changer la source du package car il quitte em0 ou il sera perdu sur le path du return à em1.

Donc le stream va comme ça:

  • de l'extérieur de telhost telnet 10.0.0.2
  • changer l'adresse source en 192.168.1.4
  • redirect le trafic de 10.0.0.2 vers 192.168.1.2
  • le package part avec src 192.168.1.4 va à 192.168.1.2 puis est renvoyé à 192.168.1.4 revient à tout ce que la source addy était dans ce cas 10.0.0.1

Je continue à penser que cela peut être fait avec

binat et rdr mais je ne peux pas comprendre la syntaxe.

Comment puis-je faire cela?

J'ai fini par aller avec iptables sous Linux pour accomplir ceci.

Pour, le transfert IP doit être activé:

 echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf 

Et définissez les règles suivantes:

 iptables -F -t nat # flush the NAT Table. iptables -t nat -P INPUT DROP # set the input chain on the NAT table to DROP by default. # This way any traffic not allowed by defining a source address gets dropped. # If you don't provide a -s address below it will allow all hosts from anywhere # to reach the inside address via the outside ip. iptables -t nat -A PREROUTING -s 10.0.0.1 -d 10.0.0.2 \ -j DNAT --destination-address 192.168.1.3 # define the source and destination of the traffic allowed through. # Change the dest address to our inside host. iptable -t nat -A INPUT -s 192.168.0.0/24 -J ALLOW # Drop all traffic on sourcing from inside subnet. # This won't apply to traffic that matches the rule above # as the source address will change in the next rule. iptables -t nat -A POSTROUTING -d 192.168.1.3 \ -j SNAT --source-address 192.168.1.4 # here is the insert magic. Change the source address of any traffic destined # for our inside host to our vip or owned inside address. # This way the traffic is routed back to us at the FW.