He intentado esto de diferentes maneras. Actualmente intento con pf en freebsd 8.2
Estoy tratando de insertar una solución nat en una red existente que redirigirá el tráfico desde una dirección IP externa a una dirección IP interna en todos los puertos (nat estática), pero también quiero traducir la dirección de origen.
Red actual.
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
Quiero que outsidehost pueda hacer telnet a 192.168.1.3 haciendo telnet (sp) a 10.0.0.2
Para que esto funcione, supongo que tendré que cambiar la fuente del paquete cuando sale de em0 o se perderá en el camino de regreso a em1.
Así que el flujo es así:
- desde outsidehost telnet 10.0.0.2
- cambiar la dirección de origen a 192.168.1.4
- redirigir el tráfico de 10.0.0.2 a 192.168.1.2
- el paquete se va con src 192.168.1.4 va a 192.168.1.2 y luego se envía de vuelta a 192.168.1.4 se traduce de nuevo a la fuente addy en este caso 10.0.0.1
Sigo pensando que esto se puede hacer con
binat y rdr pero no puedo descifrar la sintaxis.
¿Cómo puedo hacer esto?
Respuesta aceptada:
Terminé optando por iptables en Linux para lograr esto.
Para ello, el reenvío de IP debe estar activado:
echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
Y establece las siguientes reglas:
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.