PDF de programación - Creando Túneles mediante SSH Tunneling con PUTTY

Imágen de pdf Creando Túneles mediante SSH Tunneling con PUTTY

Creando Túneles mediante SSH Tunneling con PUTTYgráfica de visualizaciones

Publicado el 15 de Enero del 2021
320 visualizaciones desde el 15 de Enero del 2021
108,2 KB
5 paginas
Creado hace 15a (05/09/2008)
Gestión Remota de Redes v.4

Creando Túneles mediante SSH Tunneling con PUTTY



Este documento está basado en algunos artículos bastante interesantes que
han llegado a mis manos, algunos de ellos, gracias al amigo Rubén, que me ha
puesto en el camino.

Objetivo.-

Imaginemos que queremos realizar desde nuestro equipo una conexión
TELNET contra un equipo que está en una red remota y otra HTTP contra otro
que está en esa misma red.

Esta red se conecta a Internet mediante un router que solo tiene abierto el
puerto 22 (SSH) para conectarnos a una máquina linux interna en esa red.

Por lo tanto, al no tener el router mapeados los puerto HTTP y TELNET desde
la Dirección IP Pública a las Direcciones IP internas de estas 2 máquinas, no
podríamos conectarnos directamente desde nuestro equipo.



Este es el típico caso que nos podemos encontrar a la hora de gestionar una
red en remoto.

Bien, pues esto podríamos realizarlo gracias a la capacidad de SSH para hacer
Port-Forwarding, creando un túnel entre nuestro equipo y el Servidor Remoto
con SSH. Una vez en la red remota, realizando el Port-Forwarding a las otras
máquinas desde este servidor.


Esto lo realizaremos con nuestro cliente SSH PUTTY.



Realizado por: Ramses

05/09/2008

Gestión Remota de Redes v.4



Configuración de PUTTY.-


1. En la ficha Session:


Especificamos la IP del servidor remoto al que vamos a conectar y el
puerto:


Host Name (or Ip address): 80.80.80.80
Port: 22
Marcamos SSH

2. En la ficha Connection > SSH > Tunnels >


Configuramos el tunel:

Primero, por ningún motivo en especial, añadiremos la configuración para
el puerto HTTP.


Add new forwarded port:

Source port: 10080

( Este es el puerto local de nuestro ordenador que usaremos para realizar el HTTP
al equipo de la Red Remota)

Destination: 192.168.0.20:80

(Este es la IP y el puerto del ordenador remoto al que realizará el Port-Forwarding
el servidor que recepciona el Túnel SSH)

Seleccionamos Local y pulsamos Add


Y a continuación, añadiremos la configuración para el puerto TELNET.


Add new forwarded port:

Source port: 10023

( Este es el puerto local de nuestro ordenador que usaremos para realizar el
TELNET al equipo de la Red Remota)

Destination: 192.168.0.30:23

(Este es la IP y el puerto del ordenador remoto al que realizará el Port-Forwarding
el servidor que recepciona el Túnel SSH)

Seleccionamos Local y pulsamos Add



Realizado por: Ramses

05/09/2008



Gestión Remota de Redes v.4

Una vez hechos los cambios en la configuración del PUTTY, nos iremos a
la ficha Session y guardaremos esta configuración con un nombre para
poder reconectarnos siempre que sea necesario de una manera rápida.

Cada vez que tengamos que realizar la conexión a los equipos de la Red
Remota, tendremos que arrancar esta conexión desde el PUTTY.

Ni que decir tiene que en el router de acceso a Internet tenemos que
tener mapeado el puerto 22 (SSH) hacia la dirección IP interna
192.168.0.10.


Comprobando la configuración.-

La mejor forma de comprobar la configuración es ejecutando la configuración
en el PUTTY y realizando algunas conexiones de prueba:

- Ejecutamos el PUTTY, nos conectamos con la configuración que hemos

creado y nos validamos.


- Para comprobar la conexión HTTP: Abrimos una página de un navegador y
como dirección o URL le ponemos “http://localhost:10080”. Nos debe
conectar con el equipo de la Red Remota por HTTP.


- Para comprobar la conexión TELNET: Realizamos una conexión con
nuestro cliente de TELNET favorito en la forma “telnet localhost 10023”.
Nos deberá abrir la conexión TELNET contra el equipo de la Red Remota.


Conclusión.-

Esta configuración la hemos realizado para conectarnos a 2 equipos, por HTTP
y por TELNET, de una Red Remota, pero ni que decir tiene que le podemos dar
infinidad de aplicaciones.

Otra ventaja que tiene esto, es que nuestro tráfico viaja encriptado a través de
Internet, solo se realizan desencriptadas las conexiones, en la Red Remota,
desde el Servidor SSH hasta los equipos.

El enlace que pongo a continuación es bastante interesante para leer:

Basado en un artículo de Alfredo Anaya (www.adrformacion.com).
SSH Tunneling ( http://www.e-ghost.deusto.es/docs/articulo.ssh.html )


Consideraciones.-

En la actualidad hay aplicaciones diseñadas específicamente para realizar
ataques de “Fuerza Bruta” hacia el puerto 22 (SSH), llegando a obtener la
password del root de los sistemas.



Realizado por: Ramses

05/09/2008

Gestión Remota de Redes v.4


Si tenemos en cuenta esto, y lo anteriormente comentado, tenemos que si
alguien se hace con la password del root de un sistema con SSH, podría tener
acceso a toda la red interna donde se encuentra ese sistema y que le estuviese
permitido al usuario root.

Para poner algunas barreras a estos sistemas, podemos utilizar, entre otros,
los siguientes procedimientos:

- Cambiar el puerto de escucha de SSH: Por defecto, el puerto donde
escucha SSH es el puerto 22, y el que por defecto atacarían estas
aplicaciones.

Bien, pues para ponérselo un poquito más complicado a éstas, podríamos
configurar nuestro router para que públicamente atienda al puerto 2222 y
haga un reenvío hacia nuestro puerto 22 interno del servidor SSH. Con
esto nos quitaríamos todos los ataques externos que chequean en puerto
22 (SSH), pero si el ataque es interno, seguirían pudiendo atacar este
puerto.

Otra opción es cambiar el puerto real de escucha de SSH en el servidor y
poniendo, por ejemplo, el puerto 2222 como puerto SSH. Esto lo hacemos
cambiando en nuestro servidor el fichero “/etc/ssh/sshd_config” la línea
que dice “Port 22” por “Port 2222”. Puede ser que, por defecto, la línea
“Port 22” aparezca comentada, ya que por defecto va a escuchar en el
puerto 22, en ese caso habría que descomentarla para hacer el cambio.

Una vez hecho esto y guardados los cambios, debemos reiniciar el servicio
en el servidor SSH:


En unos casos podría ser: /etc/int.d/sshd restart

En otros: service sshd restart


Obviamente, nos tendremos que acordar de mapear en nuestro router el
puerto 2222 SSH en vez del puerto 22.

- Retardar el tiempo entre conexiones SSH: Los ataques de Fuerza
Bruta se ejecutan realizando multitud de conexiones para poder ir
mandando infinidad de combinaciones hasta encontrar una que coincida
con la password del root.

Pues este procedimiento consiste en retardar y hacer interminables
estos ataques, hasta tal punto, que desistan.

Tengamos en cuenta que en un minuto un sistema puede realizar
infinidad de conexiones SSH contra nuestro servidor y mandar infinidad
de combinaciones de passwords. Si configuramos nuestro servidor para
que entre conexiones SSH debe transcurrir, por ejemplo, 1 minuto, para
mandar el mismo número de combinaciones de passwords ahora se le
haría larguísimo.


Realizado por: Ramses

05/09/2008



Gestión Remota de Redes v.4


Bueno, pues para ello nos ayudaríamos de iptables y lo haríamos
introduciendo las siguientes líneas:


iptables -A INPUT -p tcp -m state --syn --state NEW --dport 2222 -m limit --limit 1/minute --limit-burst 1 -j ACCEPT



Aclaración sobre la regla:

-A:
INPUT:
-p tcp:
-m state:
--syn:
--state NEW:
--dport 2222:
-m limit:
--limit 1/minute: Establecemos el número de coincidencias que permitiremos para esta regla por minuto.
--limit-burst 1: Establecemos el número de paquetes capaces de cumplir la regla en un tiempo, se usa en conjunto

Añade la regla sin importar el orden.
La regla se aplicará al tráfico entrante.
Se aplica al protocolo TCP.
Se utiliza para cargar el módulo de state y poder comparar estados de conexiones.
Se aplicará la regla a todos los paquetes TCP SYN que no llevan datos.
Paquetes que estén intentando crear una nueva conexión y no pertenezcan a una establecida.
Con destino al puerto 2222.
Cargamos el módulo limit para poder limitar el número de paquetes coincidentes con una regla.

-j ACCEPT:

con la anterior.
Permite el tráfico.



Es decir, cualquier paquete entrante TCP con destino al puerto 2222 que sea para una nueva conexión, si hace más
de 1 minuto que se recibió otro, será dejado pasar. Si no, pasará a la siguiente regla.



iptables -A INPUT -p tcp -m state --syn --state NEW --dport 2222 -j DROP



Aclaración sobre la regla:

-A:
INPUT:
-p tcp:
-m state:
--syn:
--state NEW:
--dport 2222:
-j DROP:

Es decir, cualquier paquete entrante TCP con destino al puerto 2222 que sea para una nueva conexión, si hace
menos de 1 minuto que se recibió otro (ya que no ha cumplido la regla anterior), será desechado. Si no, pasará a la
siguiente regla.

Añade la regla sin importar el orden.
La regla se aplicará al tráfico entrante.
Se aplica al protocolo TCP.
Se utiliza para cargar el módulo de state y poder comparar estados de conexiones.
Se aplicará la regla a todos los paquetes TCP SYN que no llevan datos.
Paquetes que estén intentando crear una nueva conexión y no pertenezcan a una establecida.
Con destino al puerto 2222.
Desecha el tráfico.



Con esto, como yo siempre digo, no evitamos que nos entren, pero sí se lo
pondremos algo más difícil.



Realizado por: Ramses

05/09/2008
  • Links de descarga
http://lwp-l.com/pdf18699

Comentarios de: Creando Túneles mediante SSH Tunneling con PUTTY (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad