Re: Redireccion de ssh con iptables.
El mié, 22-12-2004 a las 04:43 -0700, yokin00@spymac.com escribió:
> No se si ha llegado la anterior respuesta, asi que lo escribo de
> nuevo.
>
> En el "Linux IP Masquerade HOWTO" describe que haciendo MASQ (que creo
> que es lo que tu haces) no esta permitido hacer conexiones desde el
> exterior si estas no estan iniciadas desde el interior. Pero, si no me
> equivoco, creo que dice tambien que sí funcionará si se le asigna un
> puerto específico, como creo que haces tú. Supongo que ya le habrás
> echado un vistazo a este howto, no sé si te ayudará. En todo caso, tu
> post a mí sí que me ayuda. Gracias por ello.
>
> Saludos.
>
>
>
>
> On Wed Dec 22 2:04 , Pablo Braulio <bruli@netparatodos.com> sent:
>
>
>
> Hola.
> Estoy intentando hacer que las conexiones entrantes por ssh se
> redireccionen al equipo con IP 192.168.0.2. Para ello pongo la
> regla
>
> iptables -t nat PREROUTING -i eth0 -p tcp --dport 22 -m state
> --state
> NEW -j DNAT --to 192.168.0.2:22
>
> Pero no lo consigo. Al intentar hacer la conexión desde fuera,
> se queda
> esperando y luego "time out".
>
> Os pego el script.
>
>
> #!/bin/bash
>
> IPTABLES=/sbin/iptables
> # Interfaz conectada a internet
> EXT="eth0"
> # Interfaz conectada a la red interna
> INT="eth1"
>
> case "$1" in
> start)
>
> # Activamos el IP forwarding
> echo -n "Activating IP Forwarding support: "
> echo "1" > /proc/sys/net/ipv4/ip_forward
> echo "done"
>
> # Eliminamos las reglas anteriores
> echo -n "Deleting firewall rules: "
> $IPTABLES -F
> $IPTABLES -X
> $IPTABLES -Z
> $IPTABLES -t nat -F
> echo "done"
>
> ## Establecemos politica por defecto
> #echo -n "Política por defecto: "
> $IPTABLES -P INPUT ACCEPT
> $IPTABLES -P OUTPUT ACCEPT
> $IPTABLES -P FORWARD ACCEPT
> echo "done"
>
> echo -n "Activating NAT: "
> $IPTABLES -t nat -A POSTROUTING -s 192.168.0.0/24 -d
> 0.0.0.0/0 -o $EXT -j MASQUERADE
> echo "done"
>
> echo -n "Activating ICMP echo request: "
> $IPTABLES -A INPUT -i $INT -p ICMP -j ACCEPT
> echo "done"
>
> echo -n "Setting firewall port rules: "
>
> # 21: ftp
> #$IPTABLES -A INPUT -i $EXT -p TCP --dport 21 -m state
> --state NEW -j ACCEPT
> #$IPTABLES -A INPUT -i $EXT -p TCP --dport 2100 -m state
> --state NEW -j ACCEPT
>
> # 22: ssh
> $IPTABLES -t nat -A PREROUTING -i $EXT -p TCP --dport 22
> -m state --state NEW -j DNAT --to 192.168.0.2:22
>
>
> #telnet
> $IPTABLES -A INPUT -i $INT -p TCP --dport 23 -m state
> --state NEW -j
> ACCEPT
>
> # 25: smtp
> #$IPTABLES -A INPUT -i $EXT -p TCP --dport 25 -m state
> --state NEW -j ACCEPT
>
> # 80: apache
> #$IPTABLES -A INPUT -i $EXT -p TCP --dport 80 -m state
> --state NEW -j ACCEPT
>
> #Impedimos entrada a la red.
> #$IPTABLES -A OUTPUT -o $INT -j DROP
>
> echo "done"
>
> echo -n "Final approach: "
> # Aceptamos paquetes de una conexión ya establecida
> $IPTABLES -A INPUT -p TCP -m state --state RELATED -j
> ACCEPT
>
> # Rechazamos los de conexiones nuevas
> $IPTABLES -A INPUT -i $EXT -m state --state NEW,INVALID
> -j DROP
>
> # Rechazamos conexiones de forwarding no establecidas
> $IPTABLES -A FORWARD -i $EXT -m state --state
> NEW,INVALID -j DROP
>
> echo "done"
> ;;
>
> stop)
> echo -n "Stopping firewall: "
> $IPTABLES -F INPUT
> $IPTABLES -F OUTPUT
> $IPTABLES -F FORWARD
> $IPTABLES -F
> $IPTABLES -t nat -F
> echo "done"
> ;;
>
> restart)
> $0 stop
> echo -n "Sleeping a few seconds before setting the rules
> again: "
> sleep 2
> echo "done"
> $0 start
> ;;
>
> status)
> $IPTABLES -L
> $IPTABLES --table nat --list --exact --verbose --numeric
> --line-numbers
> ;;
>
> *)
> echo "Usage: $0 {start|stop|restart|status}"
> exit 1
> esac
> exit 0
>
>
> ¿Alguna ayuda, por favor?
> Gracias a todos.
>
> --
> Saludos.
>
> Pablo Braulio.
>
> Linux user number 354599
> Fingerprint: F8C9 58DB 89A2 1522 D9C9 28F9 4A2D 7C25 0CD9 0907
>
>
> El ladrón mas temido es aquel que roba silenciosamente.
> No descuides tu privacidad.
> ¡Invierte en tu seguridad!
>
>
>
Seguramente entiendo mal. Y contesto a otra cosa.
vos queres que las conexiones a tu firewall/server
por ssh puerto 22 se redireccionen a la maquina que tenes escuchando en
ese puerto?
por eje todo lo que entre a la 200.xxx.xxx.xxx puerto 22 pasa a la
192.168.0.1 (misma maquina, placa de red interna) y de ahi lo manda al
22 de ponele 192.168.0.8, no se sí esta bien depaso llamo a alguien que
sepa y me corrija esto es lo que hice yo:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to
192.168.0.8:22
despues la cadena de forward
iptables -A FORWARD -p tcp -i eth0 -o eth1 -d 192.168.0.8 --dport 22 -m
state --state NEW -j ACCEPT
y con eso anduvo, entra por el firewall redirecciona el 22 a otra
maquina, todos felices. si cambias el puerto arriba te ahorras el
forward. si no me equivoco yo postee un mail a la lista contestandome
solo esa pregunta.
Ahh si en la máquina que corre el servicio tenes fw
iptables -A INPUT -s 0/0 -p tcp --dport 22 -m state --state NEW -j
ACCEPT
Saludos.
--
Javi.
Linux registered number 354635
Reply to: