[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: