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.
Por ejemplo en Firefox 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.
Podeis usar tambien una shell gratuita, yo uso la de http://shellmix.com

Acá escogeré la tercera opción, «Manually edit partition table». El particionador manual se ve así:
Ahora aparece el espacio vacío en el particionador:
Cuando selecciono el espacio vacío, Ubuntu pregunta qué deseo hacer con él.
Respondo «Create a new partition» y me pide que le diga cuánto espacio dedicarle a la partición. Ofrece usar todo el espacio (8.6 GB, en este caso).
Como mi idea es usar 0.5 GB para memoria virtual, bajo lo que ofrece a 8.1 GB
El tipo de partición es «Primary»
y deseo que lo cree al principio del disco duro.
Tras crear la partición, debemos decirle a Ubuntu el rol que esta tendrá. Por default, Ubuntu ofrece usar la partición para el sistema operativo.

Falta decirle que esta partición es booteable. Presiona enter sobre «bootable flag».
Esta partición está lista. Presiona «Done setting up the partition».
Ahora el disco duro tiene una partición creada, y espacio libre. Crearemos otra partición primaria en el resto del espacio. El uso será physical volume for RAID, no booteable. Presiona Enter sobre «FREE SPACE» y sigue los mismos pasos de nuevo. Recuerda aceptar usar todo el espacio restante, y cambiar el rol de la partición a «physical volume for RAID». Cuando termines, la parte relevante de la ventana principal del particionador debiera verse más o menos así (como se vea exactamente dependerá de tus discos duros):

Antes de continuar, debemos confirmar que queremos guardar los cambios a las tablas de partición. Responde «Yes».


Luego hay que decirle cuántos de éstos estarán en standby por si hay fallas (los «spares»). En este caso, 0, que es lo que ofrece por default (ya que el mínimo de dispositivos para un RAID 1 son 2, todos estarán ocupados).
Una vez que el arreglo está creado, el instalador muestra la pantalla inicial de la configuración de RAID de nuevo.
Los dispositivos RAID se comportan como discos duros, y
Escoge «Use as: do not use» y presiona Enter. Elige usar un sistema de archivos Ext3:
y presiona Enter. Aún falta un paso más, decirle al instalador que queremos usar esta partición para el sistema de archivos. Mueve el cursor a «Mount point: none» y presiona Enter.
Dile que quieres usar esta partición para «/ – the root file system»
y, por último, confirma que terminaste de configurar esta partición. Apreta Enter sobre «Done setting up the partition». La partición debiera verse así antes de confirmar:
En la pantalla principal del particionador, los cambios están guardados (dice en forma muy compacta que será un sistema de archivos ext3, para montar /). Es hora de particionar el otro arreglo RAID.

Una vez que la partición esté configurada, elige «Done setting up the partition» y el particionador mostrará los dos dispositivos RAID con su configuración lista:
Una vez más debemos confirmar los cambios a las tablas de partición:
Elige «Yes» y presiona Enter. El resto de la instalación de Ubuntu server es normal y no tiene relación con los discos. Si todo sale bien, el sistema bootea correctamente desde su arreglo RAID.