2. Agenda
Protocolo TELNET
● Caracteristicas.
● Uso.
● Seguridad.
● Funcionamiento.
● Estructura de comandos interno.
Protocolo SSH
● Características.
● Uso.
● Seguridad y funcionamiento.
● Autenticación de usuarios.
● Configuración de OpenSSH.
3. TELNET
Características
● Viene de la frase TELetype NETwork, y fue producto de los RFC (request for comment) de Jon
Postel y Joyce Reynolds.
● El RFC 15 extendido en el RFC 854 describe la especificación del protocolo mientras que el RFC
855 describe las especificaciones opcionales.
● Es un protocolo del tipo TCP/IP.
● El puerto por defecto es el 23 y envía datos en formatos ASCII codificados en 8 bits.
● Sigue el modelo Cliente / Servidor.
Uso
● Permite conectarse a otra máquina o terminal para manejarla remotamente como si se estuviera
sentado frente a ella. Además permite la conexión con aplicaciones de Internet.
● Para que se de la conexión la computadora a la que se quiere conectar debe contar con una
aplicación que reciba y gestione las conexiones, ya que permite abrir simultáneamente y trabajar
en el mismo ordenador desde diferentes usuarios.
● Esta disponible en todos los sistemas operativos y permite la interoperabilidad en redes.
● Tiene un fuerte uso en los sistemas UNIX – LINUX y equipos de comunicaciones (configuración
de routers).
4. TELNET
Seguridad
● Telnet, por defecto, no cifra ninguno de los datos enviados sobre la conexión (contraseñas
inclusive). Todo viaja por la red como texto plano sin cifrar.
● Cualquiera que espíe el tráfico de la red mediante un sniffer, puede obtener los nombres de
usuario y contraseñas, y así acceder él también a las máquinas.
Funcionamiento
● Protocolo basado en las siguientes ideas:
1. El concepto de NVT(Network Virtual Terminal). Una NVT es un dispositivo imaginario que posee
una estructura básica común a una amplia gama de terminales reales. Cada host mapea las
características de su propia terminal sobre las de su correspondiente NVT, y asume todos los
demás hosts harán lo mismo.
2. Una perspectiva simétrica de las terminales y los procesos.
3. Negociación de las opciones de la terminal. El protocolo TELNET usa el principio de opciones
negociadas, ya que muchos host pueden desear suministrar servicios adicionales, más allá de
los disponibles en la NVT. Se pueden negociar diversas opciones.
5. TELNET
Estructura de comandos internos
El cliente y el servidor utilizan una serie de convenciones para establecer las características
operacionales de su conexión TELNET a través de los mecanismos "DO, DON'T, WILL, WON'T"
("hazlo, no lo hagas, lo harás, no lo harás").
La comunicación entre cliente y servidor es manejada por comandos internos, que no son
accesibles a los usuarios. Todos los comandos internos de TELNET consisten en secuencias de 2
o 3 bytes, dependiendo del tipo de comando.
El carácter IAC("Interpret As Command"; Interpretar Como Comando) es seguido de un código de
comando. Si este comando trata con opciones de negociación, el comando tendrá un tercer byte
para mostrar el código asociado a la opción indicada.
6. SSH
Características
● En 1995, Tatu Ylönen fundó la SSH Communications Security Corporation, la cual
desarrolló el protocolo.
● Elimina la transmisión de información comos contraseñas en texto plano que era
regularmente víctimas de ataques de análisis de paquetes.
● Es un protocolo del tipo TCP/IP (IPv4 ó Ipv6).
● Sigue el modelo cliente/servidor.
● Utiliza técnicas de cifrado que hacen que la información que viaja por el medio de
comunicación vaya de manera no legible.
● El puerto por defecto es el 22.
Uso
● Se suele utilizar para iniciar sesión en una máquina remota y ejecutar comandos.
● Es compatible con un tunneling, el reenvío de puertos TCP y conexiones X11.
● Se puede transferir archivos mediante la transferencia de archivos asociado SSH (SFTP) o
protocolos de copia segura (SCP).
● Está presente en la mayoría de los sistemas operativos modernos. Incluyendo Mac OS X,
la mayoría de las distribuciones de GNU / Linux, OpenBSD, FreeBSD, NetBSD, Solaris y
OpenVMS. Cabe destacar que Windows es uno de los pocos sistemas operativos modernos
escritorio / servidor que no incluye SSH por defecto.
● Sin embargo, en Windows se puede usar SSH como cliente con aplicaciones como WinSCP
para transferencia, copia, borrado de archivos. Para usar Windows como servidor SSH se
usan aplicaciones como Cygwin.
7. SSH
Seguridad y funcionamiento
● El cliente abre una conexión TCP al puerto 22 del host servidor.
● El cliente y el servidor acuerdan la versión del protocolo a utilizar, de acuerdo a su
configuración y capacidades.
● El servidor posee un par de claves pública/privada de RSA (llamadas “claves de host”). El
servidor envía al cliente su clave pública.
● El cliente compara la clave pública de host recibida con la que tiene almacenada, para
verificar su autenticidad. Si no la conociera previamente, pide confirmación al usuario para
aceptarla como válida.
● El cliente genera una clave de sesión aleatoria y selecciona un algoritmo de cifrado
asimétrico.
● El cliente envía un mensaje conteniendo la clave de sesión y el algoritmo seleccionado,
cifrado con la clave pública de host del servidor usando el algoritmos RSA.
● En adelante, para el resto de la comunicación se utilizará el algoritmo de cifrado asimétrico
seleccionado y clave compartida de sesión.
● Luego se realiza la autenticación del usuario. Aquí pueden usarse distintos mecanismos.
● Finalmente se inicia la sesión, por lo general, interactiva.
En este momento la sesión se mantiene cifrada por lo que provee un canal seguro de paso
de la información.
8. SSH
Autenticación de usuarios
1 - Autenticación con contraseña
Es el método más simple (y común) de autenticación. El cliente solicita al usuario el ingreso
de una contraseña (password) y la misma es enviada al servidor, el cuál validará la misma
utilizando los mecanismos configurados en el sistema (generalmente, utilizará la
autenticación del sistema Unix para validar la contraseña contra el contenido del archivo
“/etc/shadow”, de la misma manera que lo hace el login).
Las desventajas de este sistema son varias:
El usuario debe tipear su contraseña cada vez que se conecta al servidor.
La contraseña del usuario es enviada hacia el servidor.
2 - Autenticación con clave pública
Para poder llevarse a cabo, el usuario debe tener un par de claves pública/privada, y la clave
pública debe estar almacenada en el servidor.
Luego de establecida la conexión, el servidor genera un número aleatorio llamado “desafío”
(challenge) que es cifrado con la clave pública del usuario usando RSA o DSA . El texto
cifrado es enviado al cliente, que debe descifrarlo con la clave privada correspondiente y
devolverlo al servidor, demostrando de esta manera que el usuario es quien dice ser.
Las ventajas de este método respecto del anterior son:
El usuario no debe tipear (ni recordar) ninguna contraseña.
Ninguna contraseña secreta (en este caso, la clave privada del usuario) es enviada al servidor.
9. SSH
Configuración de OpenSSH
Se trata de la configuración de archivos que se encuentran alojados normalmente en el
directorio “/etc/ssh/”.
Archivo sshd_config
En este archivo se describe la configuración del servidor SSH. Las opciones más relevantes:
Port: Esta opción permite especificar el puerto TCP que utilizará el servidor. El valor usual es 22.
Protocol: Versión del protocolo a utilizar. Regularmente se usa el valor 2.
HostKey: Clave privada de RSA o DSA del host. Normalmente las claves de host son generadas en
el momento de la instalación de OpenSSH, y el valor de esta opción es /etc/ssh/ssh_host_rsa_key.
PubkeyAuthentication: Si el valor de esta opción es yes, entonces se permite la autenticación
de usuarios mediante clave pública.
AuthorizedKeysFile: Mediante esta opción se indica al servidor en donde están almacenadas
las claves públicas de los usuarios. El valor por defecto es %h/.ssh/authorized_keys, e indica
que deben buscarse en el archivo authorized_keys, del directorio .ssh dentro del directorio
home de cada usuario.
PasswordAuthentication: Si el valor de esta opción es yes, se permite la autenticación de
usuarios mediante contraseñas.
X11Forwarding: Si el valor de esta opción es yes, se habilita el reenvío de X11 a través de la
conexión SSH.
10. SSH
Archivo ssh_config
En este archivo se describe la configuración del cliente SSH. Las opciones más importantes
son:
Host: Esta opción actúa como un divisor de sección. Puede repetirse varias veces en el archivo de
configuración. Su valor, que puede ser una lista de patrones, determina que las opciones
subsiguientes sean aplicadas a las conexiones realizadas a los hosts en cuestión. El valor * significa
“todos los hosts”.
Port: Es el puerto de TCP que utiliza el servidor (normalmente, 22).
Protocol: Es la versión del protocolo utilizada (normalmente 2,1, pero se recomienda solamente 2) .
PubkeyAuthentication: Autenticación mediante clave pública (se recomienda yes).
IdentityFile: Archivo que contiene la clave pública (en caso de usar RSA, lo usual es ~/.ssh/id_rsa).
PasswordAuthentication: Autenticación mediante contraseñas (yes o no).
StrictHostKeyChecking: Define que hará el cliente al conectarse a un host del cual no se dispone
de su clave pública. El valor no hace que sea rechazara la clave del servidor (y por lo tanto,
se aborte la conexión), el valor yes hace que se acepte automáticamente la clave recibida, y el valor
ask hace que se pida confirmación al usuario.
Ciphers: Algoritmos de cifrado simétrico soportados para su uso durante la sesión.
ForwardX11: Reenvío de aplicaciones X11 (los posibles valores son yes o no).
11. SSH
En la Ruta “/etc/ssh” vemos todos los archivos de configuración
14. SSH Keys
Generación de Llave Públia SSH
Claves SSH son una manera de identificar las computadoras de confianza, sin la
participación de las contraseñas. Los pasos a continuación le guiará a través de la
generación de una clave SSH y añadir la clave pública
El comando ssh-keygen se utiliza para generar la llave pública
-b: Significa la cantidad de bytes de longitud de la llave
-t rsa indica el tipo de cifrado a utilizar
15. SSH Keys
Generación de Llave Públia SSH
Damos Enter para generar la llave pública, se nos preguntará el archivo donde se
guardará la llave pr defecto es la ruta:
“/root/.ssh/id_rsa”
16. SSH Keys
Generación de Llave Públia SSH
Podemos ver la llave generada en la siguiente imagen:
17. SSH Keys
Generación de Llave Públia SSH
La llave pública la podemos ver abriendo el archivo donde lo generamos
Vi /root/.ssh/id_rsa
18. SSH Keys
Generación de Llave Públia SSH
Por ultimo copiamos la llave pública de nuestro cliente al servidor con el siguiente
comando:
ssh-copy-id root@192.168.1.100
El ip es el ip del servidor y se nos pedirá la contraseña de acceso por ultima vez
19. SSH Keys
Generación de Llave Públia SSH
En la siguiente conexión al servidor nos pedirá la frase clave que intoducimos con
anterioridad evitando el estar introduciendo la contraseña del servidor
20. Bibliografía
● Telnet, Consultado el 20 de Junio de 2015. Disponible en: www.ecured.cu
● Capa de Aplicación, Consultado el 20 de Junio de 2015. Disponible en: http://fundamentos-
redes.wikispaces.com
● Security Hardening, Consultado el 20 de Junio de 2015. Disponible en: http://blog.mattbrock.co.uk
● Protect SSH Logins with SSH & MOTD Banner Messages, Consultado el 20 de Junio de 2015.
Disponible en: http://www.tecmint.com
● Top 20 OpenSSH Server Best Security Practices, Consultado el 20 de Junio de 2015. Disponible
en: http://www.cyberciti.biz
● Para qué se utiliza Telnet, Consultado el 20 de Junio de 2015. Disponible en:
http://culturacion.com
● Configura conexiones SSH sin password en solo 3 pasos, Consultado el 20 de Junio de 2015.
Disponible en: http://blog.desdelinux.net
● Protocolo TELNET, consultado el 24 de junio de 2015. Disponible en:
http://infohistoriamorato.blogspot.com/2014/10/protocolo-telnet.html
● Introducción a SSH, consultado el 24 de junio de 2015. Disponible en:
http://es.tldp.org/Tutoriales/doc-ssh-intro/introduccion_ssh-0.2.pdf (Escrito porÑ JavierSmaldone
(http://www.smaldone.com.ar)Versión 0.2-20 de enero de 2004).