NO LOGRO REDIRECCIONAR DNAT IPTABLES
Juan Martínez
jeugenio en cide.cl
Sab Dic 25 23:41:51 CLST 2004
> Hola el asunto es el siguiente necesito redireccionar
> las peticiones al puerto 3306 (MySQL) a un pc de la
> LAN 192.168.1.4 que corre MySQL sobre un Win 98, El
> servidor donde tengo el firewall es un Debian y su
> Firewall es el siguiente:
>
> #!/bin/sh
>
> iptables -F
> iptables -X
> iptables -Z
> iptables -t nat -F
>
> iptables -F INPUT
> iptables -P INPUT DROP
> iptables -F OUTPUT
> iptables -P OUTPUT ACCEPT
> iptables -F FORWARD
> iptables -P FORWARD DROP
> iptables -t nat -P PREROUTING ACCEPT
> iptables -t nat -P POSTROUTING ACCEPT
>
>
> ### Creamos chains de estado
> /sbin/iptables -N allowed-connection
> /sbin/iptables -F allowed-connection
> /sbin/iptables -A allowed-connection -m state --state
> ESTABLISHED,RELATED -j ACCEPT> /sbin/iptables -A allowed-connection -m state --state NEW -i ppp0 -p tcp
> --dport 3306 -j ACCEPT> /sbin/iptables -A allowed-connection -i ppp0 -p tcp -m
> state --state NEW --dport www -j ACCEPT
> /sbin/iptables -A allowed-connection -i ppp0 -p tcp -m
> state --state NEW --dport smtp -j ACCEPT
> /sbin/iptables -A allowed-connection -i eth1 -p tcp -m
> state --state NEW --dport 995 -j ACCEPT
>
>
>
> #Trafico que entra
> /sbin/iptables -N allow-ssh-traffic-in
> /sbin/iptables -F allow-ssh-traffic-in
> /sbin/iptables -A allow-ssh-traffic-in -i ppp0 -p tcp
> -m state --state NEW --dport ssh -j ACCEPT
> /sbin/iptables -A allow-ssh-traffic-in -p tcp --sport
> ssh -j ACCEPT
>
> ### Tráfico que sale
> /sbin/iptables -N allow-ssh-traffic-out
> /sbin/iptables -F allow-ssh-traffic-out
> /sbin/iptables -A allow-ssh-traffic-out -p tcp --dport
> ssh -j ACCEPT
> /sbin/iptables -A OUTPUT -m state --state NEW -o ppp0
> -p TCP --dport 25 -j ACCEPT
>
>
> /sbin/iptables -A INPUT -i ppp0 -p ICMP --icmp-type 8
> -j DROP
>
> /sbin/iptables -A INPUT -i lo -j ACCEPT
> /sbin/iptables -A INPUT -s 192.168.1.0/24 -i eth1 -j
> ACCEPT
> /sbin/iptables -A INPUT -s 192.168.0.0/16 -i vpn -j
> ACCEPT
>
>
> /sbin/iptables -A INPUT -i ppp0 -p tcp --dport 655 -j
> ACCEPT
> /sbin/iptables -A INPUT -i ppp0 -p udp --dport 655 -j
> ACCEPT
>
> /sbin/iptables -A INPUT -j allow-ssh-traffic-in
> /sbin/iptables -A INPUT -j allowed-connection
> /sbin/iptables -A INPUT -s 0.0.0.0 -i ppp0 -p tcp
> --dport 5432 -j DROP
> /sbin/iptables -A INPUT -s 0.0.0.0 -i ppp0 -p udp
> --dport 5432 -j DROP
> /sbin/iptables -A INPUT -p TCP -m state --state NEW !
> --syn -j DROP
> /sbin/iptables -A INPUT -j LOG --log-prefix
> "[iptables-test]"
>
> echo "...VPN"
>
> /sbin/iptables -A FORWARD -i ppp0 -o eth1 -d
> 192.168.1.0/24 -j ACCEPT
> /sbin/iptables -A FORWARD -i eth1 -o ppp0 -s
> 192.168.1.0/24 -j ACCEPT
> /sbin/iptables -A FORWARD -i vpn -o eth1 -s
> 192.168.0.0/16 -d 192.168.1.0/24 -j ACCEPT
> /sbin/iptables -A FORWARD -i eth1 -o vpn -s
> 192.168.1.0/24 -d 192.168.0.0/16 -j ACCEPT
>
> echo "...hecho"
>
> /sbin/iptables -A FORWARD -o lo -j ACCEPT
Esta no la entiendo mucho...
> #/sbin/iptables -A FORWARD -j allow-ssh-traffic-in
> #/sbin/iptables -A FORWARD -j allowed-connection
> /sbin/iptables -A FORWARD -i eth1 -j ACCEPT
> /sbin/iptables -A FORWARD -i ppp0 -d 192.168.1.0/24 -j
> ACCEPT
>
>
> echo 1 > /proc/sys/net/ipv4/ip_forward
> /sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24
> -o ppp0 -j MASQUERADE
Te sugiero que solo le redirecciones por IP y no la red completa...a no
ser que sea necesario...
> /sbin/iptables -t nat -A PREROUTING -s 0.0.0.0/0 -p
> tcp --dport 3306 -j DNAT --to-destination
> 192.168.1.4:3306
En general, creo que estas dando acceso a toda tu red y la idea es
redireccionar solo una ip verdad?Falta una regla del tipo:
/sbin/iptables -A FORWARD -d 192.168.1.4 -p tcp -m tcp --dport 3306 -j ACCEPT
En el fondo las reglas anteriores, con respecto a el
redireccionamiento...le estas diciendo al firewall...si llega algo a la
red 192.168.1.0/24 entonces aceptelo, luego si el origen es cualquiera y
el puerto destino es el de Mysql entonces el destino final es
192.168.1.4...pero no le das permiso para que haga el encaminamiento del
paquete...ahora puedo estar equivocado si es que no he entendido bien cuales son tus
redes...Te sugiero que trabajes con direcciones ip en vez de interfaces, es mas
facil de entender y administrar (claro que en el caso de ppp0 no es
posible seguramente)
Saludos
>
>
> Les doy la tabla nat
>
> Chain PREROUTING (policy ACCEPT)
> target prot opt source destination
> DNAT tcp -- anywhere anywhere
> tcp dpt:www to:192.168.1.4:3306
>
> Chain POSTROUTING (policy ACCEPT)
> target prot opt source destination
> MASQUERADE all -- 192.168.1.0/24 anywhere
>
> Chain OUTPUT (policy ACCEPT)
> target prot opt source destination
>
> El problema es que no se por que no me lo redirecciona
> al pc 192.168.1.4.
>
>
>
>
>
> ______________________________________________
> Renovamos el Correo Yahoo!: ¡250 MB GRATIS!
> Nuevos servicios, más seguridad
> http://correo.yahoo.es
_____
/ __ \
/ / \ \
\ \ _/ /
\ \___/
\ Juan Martínez
\ jeugenio en cide.cl
\ Nº de usuario Linux: 375857 - http://counter.li.org/
Más información sobre la lista de distribución Linux