redireccionamientod e puertos con iptables

rvr en vtr.net rvr en vtr.net
Vie Nov 6 18:35:30 CLST 2009


On Fri, 06 Nov 2009 10:53:34 -0300
  Yonathan Dossow <ydossow at inf.utfsm.cl> wrote:
> On Fri, 2009-11-06 at 00:55 -0300, Aldrin Martoq wrote:
>> 2009/11/5  <rvr at vtr.net>:
>> > El cuento es el siguiente, tengo un proveedor (Telmex) el cual vamos a dar
>> > de baja a fin de mes. Todo me funciona bien, mi red interna (usuarios y
>> > servidores) sales por mi linux con iptables, cuento corto, ningún 
>>problema.
>> > El proveedor nuevo instalo el cablerio nuevo y su aparato (obviamnete hay 
>>IP
>> > nueva GTD ) y ahí viene el problema.
>> > Acá alojamos varios sitios y mientras no se haga el cambio de todos los
>> > sitios a la IP nueva no podemos llegar y cambiar el enlace, por lo que 
>>monté
>> > otro equipo con Linux + iptables, y lo que quería hacer era redireccionar
>> > todas las peticiones al puerto 80 en la IP nueva hacia mi servidor apache.
>> 
>> > La ip interna del servidor web es 192.168.0.1, y el Linux + iptables nuevo
>> > tiene la 192.168.0.3., por lo que entre ellos se ven sin problemas. El
>> > problema viene cuando llega la petición a la IP nueva y la reenvía bien
>> > hacia adentro con una regla PREROUTING,
>> 
>> No no no: la _tabla_ es PREROUTING, probablemente estás usando DNAT
>> para redirigir a tu servidor en su IP interna.
> 
> PREROUTING es una cadena, las tablas son filter, nat, mangle y raw

oh verdad

> 
>> 
>> > pero el server viejo 192.168.0.1 ve
>> > que le llego una peticion desde la IP nueva, puerto 80 y por ende trata de
>> > contestar usando el GW del proveedor viejo (gateway por defecto) , por lo
>> > que la conexión se queda esperando eternamente.
>> 
>> No no no: en realidad ve que la petición llega desde una IP de
>> internet (y el puerto origen no es 80). Si la IP de origen dice
>> internet, la respuesta se irá por TELMEX en vez de volver por la IP
>> interna, y por eso el DNAT no funciona como una espera... Una solución
>> para tu configuración es cambiar la IP de origen... algo como esto:
>> 
>> iptables -N MITABLA
>> iptables -A PREROUTING -p tcp --dport 80 -j MITABLA
>> iptables -A PREROUTING -p tcp --dport 25 -j MITABLA
>> [... etc con el resto de los servicios ...]
>> 
>> iptables -A MITABLA -j DNAT --to-destination 192.168.0.1
>> iptables -A MITABLA -j SNAT --to-source 192.168.0.3
> 
> esto deberia ir en la tabla nat... en filter eso no deberia funcionar.


lo probé en la tabla nat y tampoco me funciona..

ando medio mariado pero no logro dar con la solución

> 
> -- 
> Yonathan H. Dossow Acun~a
> Unidad de Servicios de Computacion e Internet  Fono: +56 32 2654367
> Universidad Tecnica Federico Santa Maria          Valparaiso, Chile

Rodrigo Valenzuela


Más información sobre la lista de distribución Linux