Accediendo a otros ordenadores de forma remota

  • Enrique Barbeito García , enrique@barbeito.org
  • 10/07/2000

01. Telnet

Básicamente telnet es el protocolo de comunicaciones estandar que conecta una maquina con otra convirtiéndola de este modo en una terminal del sistema remoto; esto quiere decir que podremos ejecutar comandos como si estuviéramos manejando dicho sistema de una manera local (físicamente). La posible desventaja es que únicamente podremos trabajar bajo terminal (línea de comandos), con lo que no podremos utilizar entornos basados en X Windows. Esto es debido a que telnet solo emula terminales corrientes como por ejemplo VT-100, con lo que no soporta entornos gráficos.

La sintaxis básica es:

telnet 'host-name' ['port']

Donde 'host-name' es la dirección a donde quieres conectar y 'port' es el puerto por el que deseas establecer la conexión (el puerto de telnet por defecto es el 23, ello quiere decir que, si no especificas ninguno, telnet interpretará que deseas establecer conexión a 'host-name' por el puerto 23). Señalar también que los puertos indican los diferentes servicios de red (daemons) que pueden o no estar disponibles en dicho host-name.

Si lo deseamos, también podemos ejecutar 'telnet' sin nada mas haciendo de este modo que se ejecute en su modalidad de “comando interactivo”. Ejemplo:

[enrique@g00r00 /]$ telnet
telnet>

Además de 'host-name' y 'port', telnet acepta muchos más argumentos:

Usage: telnet  [-8] [-E] [-L] [-a] [-d] [-e cha] [-l ser] [-n trace file]
        [-r] [host-name [port]]

Opcion           Descripción
-----------------------------------------------------------------------------

 -8              Establece la operación en modo 8-BIT.
 -E              Desactiva la función del 'Escape character' (Carácter de
                 salida). Le asigna el valor 'off'.
 -L              Establece la operación de salida en modo 8-BIT.
 -a              Intenta una conexión automática.
 -d              Desactiva la depuración.
 -e caracter     Asigna al 'Escape character' el carácter deseado para
    de escape    utilizar en esa sesión.
 -l usuario      Envía el nombre de usuario al sistema donde conectemos de
                 forma automática. (Este argumento implica utilizar el
                 argumento -a)
 -n archivo de   Activa el rastreo y guarda los datos del mismo en el archivo
    rastreo      de rastreo especificado.
 -r              Emula a rlogin.

02. FTP

File Transfer Protocol; protocolo que permite, básicamente, enviar/recibir ficheros (ya sean ASCII o binarios) entre dos máquinas conectadas a una misma red; esto quiere decir que utilizando el comando ftp y conectando a un host podremos movernos arriba/abajo por el árbol de directorios, copiar, mover, transferir archivos del host remoto, etc… (Todo esto respetando las protecciones normales de los archivos, es decir, que por ejemplo, no podremos trasferir un archivo si no tenemos permisos correspondientes para dicho archivo.)

Para poder trabajar bajo una sesión de FTP, obviamente, deberemos de tener un nombre de usuario (login) y una contraseña (password) válidos para el host remoto con el que queramos trabajar. Este login y password son utilizados para validar la autentificación y determinar que acceso tendremos a archivos para la trasnferencia.

En numerables ocasiones nos podremos encontrar con hosts que permitan usuarios anónimos, estos son simplemente “cuentas guest” (para invitados) en las que no necesitamos ningún login/password para acceder al sistema remoto. Si disponemos de un host que permita este tipo de usuarios, para poder acceder como invitado (o usuario anónimo) deberemos de iniciar una sesión FTP a dicho host y utilizar como login 'anonymous' y como password 'tu dirección e-mail') Normalmente cuando conectamos como usuario anónimo accedemos a un árbol de directorios sujeto a restricciones que, casi siempre, tiene acceso de solo lectura; si llegáramos a poder enviar archivos al host remoto, seguramente, solo podremos depositarlos en un único directorio (directorio temporal /Temp)

El comando FTP de LiNUX proporciona numerosas opciones en “modalidad interactiva”. A continuación explicaremos todas esas opciones de las que dispone: (Cabe señalar que, probablemente, algunos sistemas remotos podrían no admitir todas las opciones de las que dispone el FTP de LiNUX, aunque seguramente no secesitaremos muchas de ellas…)

Opción           Descripción
-----------------------------------------------------------------------------

 !               Invoca una shell interactiva en la maquina local.
 $               Ejecuta una macro.
 account         Proporciona el password requerido para el host remoto.
 append          Añade a un archivo.
 ascii           Establece el modo de transferencia de archivos como ASCII.
 bell            Emite un pitido cuando se completa un comando.
 binary          Establece el modo de transferencia de archivos como binaria.
 bye             Finaliza la sesión ftp y termina la "modalidad interactiva".
 case            Cambia mget entre asignación de nombre de archivos con
                 mayúsculas o minúsculas.
 cd              Cambia de directorio en el host remoto.
 cdup            Cambia del directorio remoto donde se este trabajando al
                 directorio matriz (parent directory).
 chmod           Modifica permisos de un archivo remoto.
 close           Finaliza la sesión ftp.
 cr              Cambia el filtrado de retornos de carro cuando se recibe
                 un archivo ASCII.
 delete          Borra archivos remotos.
 debug           Cambia la modalidad de depuración.
 dir             Lista el contenido del directorio remoto donde nos
                 encontremos.
 disconnect      Finaliza la sesión ftp (idéntico a close).
 form            Establece el formato de transferencia de archivos.
 get             Obtiene (descarga) un archivo del host remoto.
 glob            Cambia la expansión de comodín de nombres locales de
                 archivo.
 hash            Imprime el carácter # para cada memoria intermedia
                 transferida.
 help            Muestra información de ayuda. (Lista estos comandos).
 idle            Establece el tiempo de inactividad en el host remoto.
 image           idéntico al comando binary.
 lcd             Cambia al directorio local de trabajo.
 ls              Lista el contenido del directorio remoto.
 macdef          Define una macro.
 mdelete         Borra archivos múltiples en el host remoto.
 mdir            Lista el contenido de directorios remotos múltiples.
 mget            Obtiene archivos múltiples del host remoto.
 mkdir           Crea un directorio en el host remoto.
 mls             Lista el contenido de directorios remotos múltiples.
 mode            Establece la modalidad de transferencia de archivos.
 modtime         Muestra la hora de la ultima modificación del archivo remoto.
 mput            Envía archivos múltiples al host remoto.
 newer           Obtiene el archivo remoto si este es mas reciente que el
                 archivo local correspondiente.
 nmap            Establece plantillas para asignación predeterminada de
                 nombres de archivos.
 nlist           Lista el contenido del directorio remoto.
 ntrans          Establece la tabla de traducción para la asignación.
                 predeterminada de nombres de  archivos.
 open            Establece conexión con la ubicación ftp remota.
 prompt          Fuerza indicaciones interactivas de comandos múltiples.
 proxy           Emite comandos en conexión alternativa.
 sendport        Cambia la utilización del comando PORT para cada conexión de
                 datos.
 put             Envía un archivo al host remoto.
 pwd             Imprime el directorio de trabajo en la maquina remota.
 quit            Finaliza la sesión ftp y sale.
 quote           Envía un comando ftp arbitrario.
 recv            Recibe un archivo.
 rget            Obtiene un archivo volviendo a empezar al final del archivo
                 local.
 rstatus         Muestra el estado de la maquina remota.
 rhelp           Obtiene ayuda del servidor remoto.
 rename          Renombra un archivo.
 reset           Despeja la cola de respuestas de comandos.
 restart         Reinicia la transferencia de un archivo a partir de la
                 cuenta de bytes especificada.
 rmdir           Elimina un directorio de la maquina remota.
 runique         Cuando se recuperan archivos múltiples con el mismo nombre.
                 de archivo al mismo  directorio, runique asigna un nombre de
                 archivo exclusivo a cada archivo recibido.
 send            Envía un archivo al host remoto.
 site            Envía un comando especifico a la ubicación al servidor.
                 remoto, uno entre umask, idle,  chmod, help, group, gpass,
                 newer o minfo.
 size            Muestra el tamaño del archivo remoto.
 status          Muestra el estado actual.
 struct          Establece la estructura de transferencia de archivos.
 system          Muestra el tipo de sistema remoto.
 sunique         Cuando se envían archivos múltiple con el mismo nombre de
                 archivo al mismo directorio, sunique asigna un nombre
                 exclusivo de archivo a cada archivo enviado.
 tenex           Establece el tipo de transferencia de archivos tenex.
 trace           Cambia el rastreo de paquetes.
 type            Establece el tipo de transferencia de archivos.
 user            Envía nueva información de usuario.
 umask           Obtiene o establece el umask en el host remoto.
 verbose         Cambia la modalidad detallada.
 ?               Muestra información de ayuda. (idéntico a help).

03. Comandos r-

Podemos destacar (a parte de telnet y FTP) varios comandos que nos permitirán acceder y controlar de forma remota cualquier host; estos comandos se agrupan en un conjunto llamado 'comandos r' (o también conocidos como ordenes remotas de Berkeley) de los cuales solo hablaremos de rlogin, rsh y rcp respectivamente. (Existen mas comandos como rwho, ruptime, … que no explicaremos ya que no vienen al caso).

Este tipo de comandos, u ordenes, pueden crear un grave problema de seguridad si el administrador del sistema remoto no tiene cuidado, ya que cuando nosotros ejecutamos un comando r- a un sistema remoto, este verifica el archivo /etc/hosts.equiv para comprobar si nuestro sistema esta listado en dicho archivo. Si no llegara a encontrar nuestro sistema, empezara a comprobar, en nuestro directorio de usuario del sistema remoto, si existe el archivo .rhosts. De esta forma el comando r- comprobara si el nombre de nuestro sistema se encuentra listado en el archivo .rhosts.

Si nuestro sistema estuviera listado en cualquiera de estos archivos (host.equiv y .rhost) el comando r- que hiciéramos realizado, se hubiera ejecutado sin comprobar contraseña de acceso.

Esta es, básicamente, la razón por la cual los comandos r- pueden llegar a crear serios problemas de seguridad. Una “recomendación” para aquellos administradores inexpertos es que consideren estas implicaciones a la hora de establecer archivos /etc/host.equiv y .rhost

03.1 rlogin

El comando rlogin (remote login) es parecido al comando telnet, ya que nos permite, al igual que telnet, establecer una sesión de comando interactivo (terminal) en un sistema remoto.

La sintaxis básica del comando rlogin es:

rlogin 'host'

Donde 'host' es la dirección con quien queremos establecer la conexión. A parte del parámetro 'host' rlogin incorpora múltiples opciones; estas son:

SYNOPSIS: rlogin [-8EKLdx] [-e char] [-k realm] [-l username] host

Opción           Descripción
-----------------------------------------------------------------------------

 - 8             Permite una transmisión de datos de entrada de 8 bits, lo
                 que posibilita el envío de caracteres ANSI formateados y
                 otros códigos especiales.
 - E             Impide el reconocimiento de cualquier carácter como
                 carácter de escape.
                 (Proporciona  una conexión completamente transparente cuando
                 se utiliza con la opción -8). 
 - K             Desactiva la autentificación Kerberos.
                 (Únicamente se utiliza solo cuando se esta realizando una
                 conexión con un sistema que usa el protocolo de
                 autentificación Kerberos).
 - L             Permite la ejecución de la sesión rlogin en modalidad
                 litout.
 - d             Desactiva la depuración de los sockets TCP utilizados en la
                 comunicación con el sistema remoto.
 - e             Establece el carácter de escape para la sesión rlogin. (El
                 carácter de escape por defecto es '~')
                 Podremos especificar un carácter literal o un valor octal en
                 el formato \nnn.
 - k             Solicita a rlogin que obtenga permisos Kerberos - k para el
                 sistema remoto en el dominio especificado en lugar del
                 dominio del sistema remoto determinado por krb_realofhost(3)
 -l              Establece el nombre de usuario (login) para el host remoto.
                 Si se encontrara disponible, se utilizara la autentificación
                 Kerberos).
 - x             Activa el cifrado DES para todos los datos pasados por la
                 sesión rlogin. (Podría tener un impacto sobre el tiempo
                 de respuesta y utilización de CPU, pero proporciona un
                 mayor nivel de seguridad).

03.2 rsh

El comando rsh (remote shell) activa un shell en el sistema remoto que especifiquemos y ejecuta la orden que hayamos especificado en la línea de comandos rsh. Si no llegáramos a especificar ninguna orden, nos conectaremos a la maquina remota como si hubiéramos utilizado rlogin.

La sintaxis básica del comando rsh es:

rsh 'host' ['orden']

Las ordenes (argumentos) que tenemos disponibles para rsh son:

SYNOPSIS: rsh [-Kdnx] [-k realm] [-l username] host [command]

Opción           Descripción
-----------------------------------------------------------------------------

 - K             Desactiva la autentificación Kerberos.
 - d             Desactiva la depuración de los sockets TCP utilizados para
                 la comunicación con el sistema remoto.
 - k             Esta opción solicita a rlogin que obtenga tickets Kerbero
                 para el sistema remoto en el dominio especificado en lugar
                 del dominio del sistema remoto determinado por
                 krb_realofhost(3).
 - l             Permite la especificación del nombre remoto. Se utiliza la
                 autentificación Kerberos, si se encuentra disponible y la
                 autorización se determina como en el comando rlogin.
 - n             Redirige entradas desde el dispositivo especial /dev/null.
 - x             Activa el cifrado DES para todos los datos pasados.
                 (Al igual que rlogin, podría tener un impacto sobre el
                 tiempo de respuesta y utilización de la CPU, pero
                 proporciona un mayor nivel de seguridad).

03.3 rcp

El comando rcp (remote copy) es utilizado para copiar archivos entre sistemas remotos, es decir que mediante rcp podremos copiar archivos desde un host remoto a otro, sin que nuestro sistema tome partido de dicha acción. Saber también que rcp no solicita ningún tipo contraseña y efectúa las copias por medio de rsh.

El comando rcp tiene dos formatos:

  1. El primero: Es utilizado para copiar un archivo a un archivo.
  2. El segundo: Es utilizado para copiar archivos o directorios a un directorio.

La sintaxis del comando rcp es:

  1. Para el primer formato:
    rcp [-px] [-k realm] file1 file2
  2. Para el segundo formato:
    rcp [-px] [-r] [-k realm] file ... directory
Opción           Descripción
-----------------------------------------------------------------------------

 - r             Copia recursivamente el árbol de directorio fuente al
                 directorio de destino. (El destino debe ser un directorio
                 para poder utilizar esta opción).
 - p             Intenta conservar los tiempos y modalidades de los archivos
                 fuente, ignorando umask.
 - k             Esta opción solicita a rcp la obtención de tickets Kerberos
                 para el sistema remoto en  el dominio especificado en lugar
                 de en el dominio del sistema remoto determinado por
                 krb_realmof­host(3).
 - x             La opción -x activa el cifrado DES para todos los datos
                 pasados por rcp. Al igual que rlogin y rhs, esto podría
                 tener un impacto sobre el tiempo de respuesta y utilización
                 de la CPU, pero proporciona un  mayor nivel de seguridad).

El formato que se utiliza para los nombres de los archivos remotos es del tipo:

rname@rhost:path

Donde rname es el nombre de usuario remoto, rhost es el host remoto y path es la ruta del archivo.

 
textos/raccess.txt · Última modificación: 2006/12/08 22:39 (editor externo)
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki