Navegar de forma segura mediante túneles SSH

Iniciado por madpitbull_99, 16 Septiembre 2011, 19:22 PM

0 Miembros y 1 Visitante están viendo este tema.

madpitbull_99

 Mediante los túneles SSH podemos asegurar casi todo tipo de protocolos, al conectarnos a una red insegura, como puede ser la red WiFi de un hotel, restaurante o las típicas redes públicas que algunos ayuntamientos ofrecen de forma gratuita (que por cierto, no sé cuanto durará), estamos expuesto a diferentes ataques por parte de otros usuarios conectados a la misma red.

El escenario por norma general es poner la tarjeta en modo “promiscuo” y estar mirando todos los paquetes que pasan por nuestra tarjeta de red, que puede tratarse de información sensible, desde usuarios y claves hasta números de cuentas bancarias.

Para éste ejemplo he usado un servidor VPS de tipo “budget” (precios bajos - prestaciones bajas) para realizar el artículo. Lo primero será asegurarnos de que el servidor SSH, en mi caso OpenSSH, está correctamente configurado para soportar los túneles.

Procedemos a mirar la configuración del servicio SSH en /etc/ssh/sshd_config y buscamos las siguientes directivas:

AllowTcpForwarding yes
GatewayPorts yes
TCPKeepAlive yes


Donde el primer parámetro activa el redireccionamiento y encapsulación de los diferentes protolocos basado en TCP y el segundo hace que la conexión se mantenga de forma continua, normalmente después de un tiempo, que suele ser aproximadamente unas dos horas, la conexión TCP se desconecta de forma automática.

Una vez editado el fichero de configuración, procedemos a reiniciar el servicio:

/etc/init.d/ssh restart
En otros sistemas operativos como CentOS, los demonios se encuentran en rc.d.

El siguiente paso es conectarnos y crear el túnel en el puerto que pasaremos como argumento al cliente ssh:

ssh -D 8080 mad@servidor-personal.com


Con el comando de arriba, estamos creando un túnel en el puerto 8080 de nuestro propio equipo hacia el servidor SSH. Si queremos aprovechar el puerto y navegar de forma segura, tendremos que configurar nuestro navegador para al conectarse a los servidores web, use como servidor SOCKS nuestro propio equipo local y el puerto 8080.

En Firefox esto se hace en la Configuración de Red:



Después de guardar los cambios, es recomendable reiniciar el navegador. El proceso es similar en la mayoría de los demás navegadores, para crear el túnel SSH, si estamos en Windows, en la parte final de artículo encontrarás otros artículos de apoyo para hacerlo desde Windows mediante el cliente SSH PuTTy.

Podemos ver un claro ejemplo si empleamos un sniffer, en éste caso WireShark, las diferencias entre el envío de datos cifrados y en claro.



En el ejemplo de arriba los datos están cifrados, mientras que en el de abajo no.



El uso de túneles no se limita sólo al ámbito web, podemos tunelizar cualquier protocolo, si queremos acceder de forma segura a nuestro servidor de correo, también podemos tunelizar POP, SMTP, IMAP y demás.

ssh -f usuario@servidor-personal.com -L 2000:smtp.gmail.com:25 -N


En éste ejemplo, estamos haciendo un túnel desde el puerto 2000 del servidor-personal al puerto 25 del servidor SMTP de gmail.com. El uso es ilimitado, sólo depende de nuestra imaginación.



Recursos y Documentación:

_SSH Port Forwarding [Symantec]

_Port Forwarding [The SSH Definitive Guide]

_How to tunnel Web Traffic with SSH Secure Shell [Using PuTTy]

_Breaking Firewalls with OpenSSH and PuTTy



Nota:

No hace falta tener un VPS o un servidor dedicado, podemos usar nuestro propio equipo que tenemos en casa, claro está, que habrá que mantenerlo encendido continuamente.



«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red

^DeMoN^

Muy pero muy interesante... solo queda ponerlo en practica!

Muchas gracias compa!

Ustedes controlan nuestras vidas, nosotros sus sistemas.

Server: irc.ex-terra.us 6667 Canal:#Terra

el-brujo

#2





¿Porqué o dónde debo navegar de forma segura o privada?

- En el trabajo (por privacidad).
- Para navegar libremente y proxys y restricciones de contenido web (Fortinet, Panda Gate Defender, McAffe Site Advisor, etc)
- En una red wifi pública o abierta y sin cifrado (OPN) (por seguridad y privacidad)




En Windows podemos usar el cliente SSH llamado Putty

1) Creamos el túnel:

Pestaña Tunnels Putty

   Seleccionamos Dynamic
   Source port: 1234
   Destination:dejar en blanco

Añadir (Add)

Opcional --> Marcar opción "Enable Compression".


2) Nos conectamos al servidor SSH

Host: miservidorssh (ip)
Port: 22

(recordar guardar (Save) la sesión para que no pierda el tunel y el resto de opciones la próxima vez que abrimos el Putty)

Open (conectar)


3) En el Firefox o cualquier navegador que permita uso Socks 4,5

Servidor Socks: localhost
Puerto: 1234


Extra:

Si queremos que las peticiones DNS del navegador también pasen por el proxy socks para mayor seguridad:

En el Firefox:

about:config

network.proxy.socks_remote_dns --> true

Para transimitir ficheros de manera sencilla y segura de Windows a Linux podemos usar WinSCP, un cliente que soporta SFTP.


Instalación y Configuración de un servidor SSH en Windows
http://wiki.elhacker.net/redes/windows/instalacion-y-configuracion-de-un-servidor-ssh-en-windows

Miscognitoss

.
#3
.




urvreak

basicamente convendria para conectarse con servidores privados como el banco? osea da tan algo nivel de seguridad?

Garcad

En vuestra opinión dentro de la seguridad que puede ofrecer ssh/ssl/vpn

Con cual os quedáis.

Salu2

el-brujo

#6
Cita de: Raftrack en 21 Septiembre 2011, 23:40 PM
2 preguntas:

1-con un tunnel SSH se puede checar por ejemplo gmail, facebook, hotmail?

2-Para acceder a un tunnel cifrado de SSH necesitas montar un servidor? :/


1) Si podrías acceder a gmail, facebook y hotmail aunque estuviera prohibido por el firewall o proxy de la empresa.

2) Necesitas un ordenador con conexión a internet, puede ser linux (ssh) o Windows (cgywin ssh o similares), no hace falta que sea un servidor, simplemente debe estar on-line, tener conexión a internet y poderte conectar remotamente al puerto dónde escucha el ssh

Cita de: urvreak
basicamente convendria para conectarse con servidores privados como el banco? osea da tan algo nivel de seguridad?

Si estás en casa conectado con un cable de red y navegas por https no necesitas más seguridad que la que ya te ofrece el banco por https. Pero si estás en una Wifi abierta deberías usar https todo el rato, y no todas las páginas webs tienen https, entonces es dónde usando tunel ssh navegarías todo el rato como si fuera por https.

Grave

Cita de: Raftrack en 21 Septiembre 2011, 23:40 PM
2-Para acceder a un tunnel cifrado de SSH necesitas montar un servidor? :/

Puedes usar tambien una shell gratuita, yo uso la de http://shellmix.com
"y el conocimiento os hara libres"

Module Console1
   Console.Write("Hello Word")
   Console.ReadLine()
End Module
http://aion.cr0n0triger.operaunite.com/

Miscognitoss

.
#8
.




madpitbull_99

En este caso, el termino shell se refiere a una cuenta en un sistema Linux/Unix al que puedes conectarte vía SSH.

El compañero Grave ya ha mencionado una página que ofrece ese servicio, otra que conozco y que he probado es Anapnea.

Cita de: Garcad en 22 Septiembre 2011, 02:01 AM
En vuestra opinión dentro de la seguridad que puede ofrecer ssh/ssl/vpn

En los tres casos la información va cifrada, en el caso de las VPN depende del tipo de software utilizado, aunque los nuevos van todos cifrados.





«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red