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

Redireccion de ssh con iptables.



Desconozco si es tu caso, porque estos dias estoy solo empezando con el tema de iptables. De hecho, quiero hacer NAT o mejor dicho, IP MASQ segun lo llaman en el "IP Masquerade HOWTO" y a lo mejor me vale con este post tuyo.
Una de las cosas que dice en este HOWTO es que las conexiones desde el exterior no estan permitidas si no son iniciadas desde el interior, pero creo que tambien habla de una excepcion, que es cuando se asigna un puerto especifico, que es lo que creo que tu haces.
Asi que te digo esto por si te vale de algo, estando casi seguro de que ya lo sabias.



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!




Reply to: