Conexiones Remotas en Linux

Algunas veces es necesario administrar de forma remota un servidor y para ello debemos establecer una comunicación segura entre dicho host y el sistema desde el cual establecemos la conexión. Las sesiones telnet no ofrecen mucha seguridad, ya que los datos viajan a traves de la red sin ningún tipo de encriptamiento y son potencialmente supceptibles de ser interceptadas por un atacante.

Actualmente las Redes de Computadoras son los medios digitales más usados en todos los ámbitos de la sociedad para la transferencia de información. Normalmente estos medios se encuentran en redes públicas, por lo cual están expuestas a intervenciones de una u otra forma.

Cuando se realiza una conexión a un servidor remoto usando por ejemplo el comando telnet o ftp, el login(usuario) y password(contraseña) son transmitidos en la red de forma clara, lo cual representa un gran riesgo si llega a existir sobre la red un programa que capture la información, basándose en el modo promiscuo de las redes ethernet (comúnmente llamado sniffer), ocasionado obtener tanto el login como el password y pudiendo posteriormente irrumpir en el servidor con esta información.

Este tipo de problemáticas ha llevado al diseñode herramientas que permitan evitar estas situaciones siendo el caso de Secure Shell (ssh), desarrollado por Tatu Ylonen en la Universidad Tecnológica de Helsinki en Finlandia y OpenSSH, que nace del proyecto de un sistema operativo orientado con la filosofía de la seguridad en mente como lo es OpenBSD.

Secure Shell (SSH) es una solución basada en software que mantiene seguros los datos de la red. Muchos usuarios de telnet, rlogin, ftp y otros programas parecidos, no se dan cuenta que sus contraseñas se están transmitiendo sin cifrar a través de la red. SSH cifra todo el tráfico (incluidas las contraseñas) para eliminar de un modo efectivo las “escuchas”, los secuestros de las conexiones y otros ataques a nivel de red.

Además, SSH ofrece amplias posibilidades para la creación de túneles seguros, aparte de una variedad de métodos de autenticación. Parece cosa de locos, pero Secure Shell no es un shell. No es un interprete, historial de comandos, ni demás.

SSH provee fuerte autenticación y comunicación segura sobre un canal inseguro y nace como un reemplazo a los comandos telnet, ftp, rlogin, rsh, y rcp, los cuales proporcionan gran flexibilidad en la administración de una red, pero sin embargo, presenta grandes riesgos en la seguridad de un sistema. Adicionalmente, ssh provee seguridad para conexiones de servicios X Windows y envío seguro de conexiones arbitrarias TCP.

TELNET

El protocolo Telnet es un protocolo de Internet estándar que permite conectar terminales y aplicaciones en Internet. El protocolo proporciona reglas básicas que permiten vincular a un cliente (sistema compuesto de una pantalla y un teclado) con un intérprete de comandos (del lado del servidor).

El protocolo Telnet se aplica en una conexión TCP para enviar datos en formato ASCIIcodificados en 8 bits, entre los cuales se encuentran secuencias de verificación Telnet. Por lo tanto, brinda un sistema de comunicación orientado bidireccional (semidúplex) codificado en 8 bits y fácil de implementar.

El protocolo Telnet se basa en tres conceptos básicos:

  • el paradigma Terminal virtual de red (NVT);

  • el principio de opciones negociadas;

  • las reglas de negociación.

Éste es un protocolo base, al que se le aplican otros protocolos del conjunto TCP/IP (FTP, SMTP, POP3, etc.). Las especificaciones Telnet no mencionan la autenticación porque Telnet se encuentra totalmente separado de las aplicaciones que lo utilizan (el protocolo FTP define una secuencia de autenticación sobre Telnet). Además, el protocolo Telnet no es un protocolo de transferencia de datos seguro, ya que los datos que transmite circulan en la red como texto sin codificar (de manera no cifrada). Cuando se utiliza el protocolo Telnet para conectar un host remoto a un equipo que funciona como servidor, a este protocolo se le asigna el puerto 23.

Excepto por las opciones asociadas y las reglas de negociación, las especificaciones del protocolo Telnet son básicas. La transmisión de datos a través de Telnet consiste sólo en transmitir bytes en el flujo TCP (el protocolo Telnet especifica que los datos deben agruparse de manera predeterminada —esto es, si ninguna opción especifica lo contrario— en un búfer antes de enviarse. Específicamente, esto significa que de manera predeterminada los datos se envían línea por línea). Cuando se transmite el byte 255, el byte siguiente debe interpretarse como un comando. Por lo tanto, el byte 255 se denomina IAC (Interpretar como comando). Los comandos se describen más adelante en este documento.

Las especificaciones básicas del protocolo Telnet se encuentran disponibles en la RFC (petición de comentarios) 854, mientras que las distintas opciones están descriptas en la RFC 855 hasta la RFC 861.

RLOGIN

Rlogin (Remote Login) es una aplicación TCP/IP que comienza una sesión de terminal remoto sobre el anfitrión especificado como host. El anfitrión remoto debe hacer funcionar un servicio de Rlogind (o demonio) para que el Rlogin conecte con el anfitrión. Utiliza un mecanismo estándar de autorización de los Rhosts. Cuando no se especifica ningún nombre de usuario ni con la opción -l ni con la opción username@, Rlogin conecta como el usuario actualmente loggeado.

El Rlogin envía realmente dos nombres de usuario al servicio del Rlogind (o al demonio): remuser y locuser.

  • El remuser es el nombre con el que se registra al usuario en la máquina cliente (e incluye su dominio o nombre de la máquina). Es llamado remuser por el servidor (o demonio) porque desde el punto de vista del servidor(o demonio), la máquina del cliente es remota. El remuser es el nombre que debe aparecer en el archivo global de hosts.El remuser no se puede fijar por el usuario.
  • El locuser es el nombre del usuario que el servidor (o demonio) utiliza para ejecutar el comando en el servidor. Desde el punto de vista del servidor (o demonio), el servidor es la máquina local. Éste es el nombre del usuario con el que estás actualmente conectado o el nombre del usuario incorporado explícitamente en la línea de comando del rlogin.

RSH

rsh es un programa de consola para ejecutar comandos en ordenadores remotos.

Se basa en el protocolo del rlogin, hablando con el demonio rlogind, el cual a su vez es capaz de lanzar una shell para ejecutar los comandos de Manera Remota.

Junto con los comandos de su familia tiene el problema de que la información se transmite sin cifrar. Su uso ha decaído con la aparición de alternativas seguras como ssh.

En Windows no existe este comando (exceptuado que en Windows Server, donde se llama “rshsvc”) en el Windows de escritorio existe uno similar llamado rexec, usa una sintaxis similar pero difiere mucho del rsh orginal.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: