redireccionamientod e puertos con iptables

Aldrin Martoq amartoq en dcc.uchile.cl
Sab Nov 7 02:34:40 CLST 2009


2009/11/6  <rvr en vtr.net>:
> On Fri, 06 Nov 2009 10:53:34 -0300
>  Yonathan Dossow <ydossow en inf.utfsm.cl> wrote:
>> On Fri, 2009-11-06 at 00:55 -0300, Aldrin Martoq wrote:
>>> 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

Me equivoqué, Yonathan tiene razón.

>>> 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..

Bien, Yonatham tiene razón nuevamente. Debiera ser algo así:

iptables -N MICHAIN
iptables -t nat -A PREROUTING - tcp --dport 80 -j MICHAIN

iptables -A MICHAIN -j DNAT --to-destination 192.168.0.1
iptables -A MICHAIN -j SNAT --to-source 192.168.0.3


A menos que esté nuevamente equivocado...

-- 
Aldrin Martoq
http://aldrin.martoq.cl/



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