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

Redireccion de ssh con iptables.



 

Investigando un poco (fuente: "Linux Server Hacks", libro de O'Reilly, facilmente obtenible desde emule), dice:

<" La regla siguiente se puede usar para enviar peticiones HTTP a un sistema (10.0.0.3) de la red interna:

#Use DNAT to port forward http

iptables -t nat -A PREROUTING ! -i $INT_IFACE -p tcp --destination-port 80 -j DNAT --to 10.0.0.3:80

Esto solo funcionará si la red destino está directamente conectada (o sea, no está en redes remotas). Echa un vistazo a rinetd o nportredird si necesitas hacer forwarding desde redes remotas. ">

Y, echando un vistazo a rinetd (http://www.boutell.com/rinetd/), dice que es tan sencillo como poner
[Source Address] [Source Port] [Destination Address] [Destination Port]
Permitiendose sentencias como
0.0.0.0 80 my.server.es 80
216.218.203.211 22 10.0.0.3 22

Creo que esta solucion podria serte util.




On Wed Dec 22 4:43 , <yokin00@spymac.com> sent:

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!





Reply to: