Holas :-)

 Agradezco tu ayuda pero no tira, mira si finalmende dejo:

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

                        $iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -p 
tcp --destination-port 22 -j MASQUERADE
                        $iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -p 
tcp --destination-port 21 -j MASQUERADE
                        $iptables -t nat -A PREROUTING -s $red_nat -p tcp 
--dport 80 -j REDIRECT --to-port 3128


 Optengo cuando le digo iptables -L -t nat lo siguiente:

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
REDIRECT   tcp  --  localnet/24          anywhere            tcp dpt:www redir 
ports 3128

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  tcp  --  localnet/24          anywhere            tcp dpt:ssh
MASQUERADE  tcp  --  localnet/24          anywhere            tcp dpt:ftp

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

 Pero quiero hacer un ftp a un lugar web, o una conexión ssh no funciona, 
también he intantado poner -i eth0 (mi tarjeta de red) pero me dice iptables 
que no puedo poner -i cuando uso POSTROUTING.


El Jueves, 4 de Noviembre de 2004 14:59, Alexander escribió:
> Rafael F. Rodríguez escribió:
> > Hola Lista.
> >
> >  Bien, estoy intentando hacer lo siguiente, permitir nat pero sólo
> > algunos puertos, y hago lo siguiente:
> >
> >  --- Código ---
> >    echo 1 > /proc/sys/net/ipv4/ip_forward
> >
> >                  $iptables -t nat -A POSTROUTING -s $red_nat -d 0/0 -j
> > MASQUERADE
> >
> >                  $iptables -P FORWARD DROP
> >                  $iptables -A FORWARD -s $red_nat -p all --dport 22 -j
> > ACCEPT $iptables -A FORWARD -s $red_nat -p all --dport 80 -j ACCEPT
> >  ---- Fin código ---
> >
> >  Según mi poco entender con esto quiero conseguir que se haga nat pero
> > sólo pero sólo si se quieren hacen para web y ssh.
>
> La linea MASQUERADE enmascara todo, y como es la plrimera, sale por
> default todo.
> Lo que tendrias que hacer es omitirla, y definir reglas para enmascarar
> la salida haceia cada puerto especificamente:
> iptables -t nat -A POSTROUTING -i eth0 -p tcp \
>  --destination-port 22 -j MASQUERADE
> Para el http, seria lo mismo, pero cambiando el numero de puerto. Nota
> que hay sitios web que usan puertos distintos al 80. Con esta
> configuraiocn tus usuarios no podran acceder a ellos, la solucion seria
> implementar un proxy.
>
> Nota esto:
> No le pongo "-s IP", le pongo "-i eth0". Esto es mas flexible, ya que no
> le importa en que rango de IP's esta tu red, ademas te aseguras que no
> haya una conexion spofeada desde afuera, aunque usar "-s" es muy viable
> (de hecho asi lo tengo)
> Le pongo "-p tcp", es el protocolo que usa ssh y http.
>
> man iptables
>
> >  Pero en cambio me sale lo siguiente iptables v1.2.11: Unknown arg
> > `--dport' Try `iptables -h' or 'iptables --help' for more information.
>
> E intentaste lo que se te sugiere? :)
>
>
> --
> Alexander aka alk[ anoide | olico | ulero | ero | atraz]
> (mi materializacion es fisica, mi escencia es matematica)

Responder a