Tabla de Contenidos

Protocolos de Transporte Seguro

Esta página da cuenta de algunos protocolos de transporte y de autenticación relativamente conocidos y de cómo se relacionan con los contenidos del curso y cómo son de utilidad para un estudiante de Informática decente1).

IPsec

TOBEDONE IPSec

SSL (Secure Socket Layer)

Resumen de SSL
  • Secure Sockets Layer (“SSL”) / Transfer Layer System (TLS)
  • Capa 5 del Modelo OSI (gestión y cifrado)
  • Protocolo de autenticación y cifrado de contenidos por encabezados sobre conexiones HTTP.
Agradecimientos al profesor Roberto Leal por habernos dado la oportunidad de estudiar este protooclo durante el curso de Matemáticas Discretas 2006.I.

SSH/OpenSSH

Resumen de SSH
  • Secure Shell (“SSH”)
  • Capa 5,6,7 del Modelo OSI (sesión, encriptación e interface)
  • Conectar remotamente y de forma protegida a un shell UNIX.

SSH es un protocolo de comunicación que se sienta al menos Capa 7 (Aplicación) del Modelo OSI, y que provee una interface “segura” para acceder al intérprete de comandos (shell de UNIX) de una máquina en forma remota. En estricto rigor SSH cubre las capas 5—7 del OSI, porque provee la interface de conexión de la aplicación (capa 7), un procedimiento para (de)encriptación y transferencia (capa 6) y gestión de autenticación de sesión con/sin encriptación por canales especiales (capa 5).

Esto significa que con SSH es posible loguear a una máquina remota que usa Linux y operar con ella como si estuviéramos físicamente sentados frente a ella, en cuanto a lo que a líneas de comandos respecta. O sea, mientras no hagamos sudo ifdow eth0 o cualquier cosa que desconecte la red, la terminal es nuestra.

Bajo distribuciones de Linux, para obtener SSH se instala el paquete OpenSSH, bajo el nombre usual de ssh-client. Esto permite conectarse a otras máquinas. Para instalar el servidor, que permite conectarse a la máquina local desde otros puntos de red, se instala el paquete del servidor llamado ssh-server en distribuciones RedHat como Fedora, o openssh-server en distribuciones como (X/K/Edu)Ubuntu.

Ejemplo

Para conectarse a una máquina remota el protocolo SSH hace uso del puerto 22, y provee de aplicaciones que permiten ejecutar transacciones SSH a la máquina remota:

Por ejemplo:

Acceder a nuestra terminal de usuario en la máquina remota remoto.cl:

[yo@mipc ~]> ssh usuario@remoto.cl
remoto.cl - usuario·s password: _
Welcome.
[usuario@remoto.cl ~]> 

Por ejemplo:

Copiar un himno nacional a mi cuenta en la máquina remota remoto.cl:

[yo@mipc ~]> scp /media/cdrom/La_Marseillaise.ogg usuario@remoto.cl:mimusica/himnos
usuario·s password: 
Copying [===========35%                   ] 01:20   1646 KiB 
[yo@mipc ~]>

Opciones

Algunas opciones interesantes de ssh:

Túnel

Opción Argumento Descripción
Túnel dinámico ssh -Dnnnn Crear un puente SOCKS por el puerto nnnn
local Puerto local en el cual abrir la conexión.
target:port Máquina y puerto remotos a los cuales conectar, resueltos desde el host SSH.
Concepto de Túnel
Concepto de “túnel SSH”, muy bien explicado.
Fuente: BlogRicardo [1]

Establece una conexión a nuestro destino utilizando un puente el cual es la máquina target en la cual tenemos acceso a una cuenta. Con esto se puede tunelear la conexión, es decir pasar la responsabilidad al target para que derive las conexiones SSH que hacemos hacia ella. De este modo se puede por ejemplo, acceder a la red interna de la cual target es un gateway, o derivar tráfico de un servicio TCP como mensajería instantánea o navegación web usando una máquina target cuyo tráfico no está bloqueado.

La utilidad de un túnel es variada, permitiendo cosas como por ejemplo redirigir seguramente un servicio crítico entre dos firewalls. Es también una manera de saltar las restricciones de cortafuegos en instituciones “antilibertarias”.

Hay que tomar en cuenta que el destino del puente (target:port) se resuelve desde el host al que nos estamos conectando, por tanto los nombres e IPs se resuelven desde su red, no desde la nuestra. Por ejemplo, el siguiente comando:

ssh -L 9990:192.168.20.131:5906 myremoteuser@192.168.5.80

Abre una conexión desde nuestro puerto local 9990 a la máquina con IP 192.168.20.131, pero no a la que responde a nosotros con esa IP, sino a la que responde al servidor 192.168.5.80. Por tanto si estamos en una red distinta a la del servidor SSH, estamos abriendo puertos a las máquinas de su red, no de la nuestra. De esta forma es posible conectar por SSH a servicios de red que están localizados detrás de un router o en una intranet (provisto, claro, que tengamos acceso al router o a una IP p´ublica).

TOBEDONE Ejemplo de túnel

SOCKS

Opción Argumento Descripción
Túnel dinámico ssh -Dnnnn Crear un puente SOCKS por el puerto nnnn
nnnn Un puerto remoto desocupado en la máquina local.

Al cambiar el tipo de conexión a un puente SOCKS (usando -Dnnnn), es posible conectar directamente a esa máquina remota y usarla como proxy en cualquier aplicación que sopore SOCKS, por ejemplo Firefox. Este tipo de proxy tiene la ventaja que no es necesario que la aplicación que usa el proxy sepa que está siendo tunelizada.

Por ejemplo, si hacemos:

ssh -D4321 miusuario@remoto.cl

Y luego procedemos a configurar Firefox como sigue:

Configurando Firefox con un Proxy SOCKS
Configurando Firefox con un proxy SOCKS
(clic para ver con más detalle)

Podremos conectarnos a Internet como si estuviéramos físicamente conectados a remoto.cl.

Llaves de Autenticación

Opción Argumento Descripción
Autenticar ssh -i llave_priv Antenticar usando una llave privada (RSA/DSA) en vez de un par usuario-contraseña

Con ssh -i podemos utilizar nuestras propias claves de autenticación o identificadores en la forma de archivos de texto que contienen una clave pública (o privada) RDA/DSA. Estos archivos son en realidad pares de claves privada/pública en sistema RSA o DSA. Simplemente nos quedamos nosotros con la llave privada, y otorgamos acceso a la clave pública a la máquina a la cual nos queremos conectar, almacenando la llave pública bajo /home/usuario/.ssh/. Cuando tratemos de conectarnos con SSH usando la cuenta de usuario usuario, el sistema remoto nos lanzará un “desafío” en la forma de un mensaje encriptado con la clave pública que le hemos provisto. Como nosotros y sólo nosotros tenemos la clave privada, nuestro cliente SSH puede desencriptar el mensaje y “responder” al desafío remoto, demostrando que somos quien decimos ser para que el servidor remoto nos autorice el acceso.

[Llave USB] Este método de autenticación por medio de un desafío de un sistema público es el método para el cual los pendrives, originalmente llamados usb keys (llaves USB) fueron inventados originalmente.

TOBEDONE Procedimiento para crear una llave SSH

Conexión Sin Login (Conexión por Comando)

Con el método anterior es posible crear cuentas de usuario accesibles sólo vía SSH para ejecutar tareas de red por este medio, por ejemplo: backup de directorios a un servidor principal, sin necesidad de conectar a la máquina con una contraseña. De este modo es posible usar este proceso en forma desatentida (automatizada).

Los pares de claves se crean con la utilidad especial ssh-keygen.

Tener cuidado al usar esta característica si se otorga al login sin contraseña muchos privilegios

Puente Reverso

sshfs (SSH FileSystem)

:!: Ver ⇒ ssh-remote-mount

Resumen de SSHFS
  • Capa 5 y 6 del Modelo OSI
  • Permite montar una carpeta de un host remoto como si fuera un sistema de archivos estándar, pero usando SSH para la transmisión de datos.

"cloop" FS Layer

Resumen de cloop
  • Sistema de Archivos compress-loop
  • Capa 6 del Modelo OSI
  • Acceso a imágenes comprimidas con almacenamiento y decompresión en tiempo real

TOBEDONE Colocar más información e imágenes.

Ver También

indexmenu_n_58

1)
ej.:que use Opera, Linux, etc…