jueves, 20 de octubre de 2011

REDIRECCIÓN DE TRAFICO ENTRE SERVIDORES INTERNOS

En la constante mejora que se lleva en la empresa a nacido la necesidad de redirigir trafico que llegaba a un servidor, la redirección no solamente es de puertos si no de ip..

entonces el trafico llega a un servidor 192.168.x.20 al puerto 8080 en este servidor no existe servicio en ese puerto. a lo cual hay que redirigir el trafico al servidor 192.168.x.30 al puerto 80

las reglas quedarian de la siguiente forma:

iptables -t nat -A PREROUTING -d 192.168.x.20 -p tcp --dport 8080 -j DNAT --to 192.168.x.30:80
iptables -t nat -A POSTROUTING -d 192.168.x.30 -j MASQUERADE

Es necesario también tener habilitado el reenvío de paquetes (en este caso para ipv4):

echo 1 > /proc/sys/net/ipv4/ip_forward

ó en /etc/sysctl.conf (para que tome los cambios sysctl -p)

agregar o modificar la siguiente linea y dejarla de la siguiente forma:

# Controls IP packet forwarding
net.ipv4.ip_forward = 1

Seguidamente vamos a dejar las reglas para que sean permanentes, en este caso estamos trabajando con CentOS (RedHat) asi que procedemos a modificar el script de inicio de iptables /etc/sysconfig/iptables

y al final del archivo o en su respectiva sección de NAT agregamos (si ya tenemos la sección de nat, debemos omitir desde la linea 1 hasta la 4 y la ultima linea)

*nat
:PREROUTING ACCEPT [114:6773]
:POSTROUTING ACCEPT [628:39550]
:OUTPUT ACCEPT [628:39550]
-A PREROUTING -d 192.168.100.13 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.100.23:80
-A POSTROUTING -d 192.168.100.23 -j MASQUERADE
COMMIT

Una ves hecho esto ya debe redireccionar el trafico que llegue al puerto 8080 al segundo host al puerto 80.


fuentes:
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch14_:_Linux_Firewalls_Using_iptables
http://adminuser.wordpress.com/2008/03/17/redirecting-network-traffic-to-a-new-ip-using-iptables/