FINGER

 

 

 

Que es Finger?

 

Finger es un programa que se encuentra en muchos computadores y que nos facilita la busqueda de informacion sobre los usuarios de la red.

Este comando nos permite acceder a una información especial en una dirección concreta de la red.  Por tradición, la mayoría de los administradores de sistemas ponen como respuesta a un Finger la relación de usuarios que se conectan a la máquina consultada y su dirección electrónica. Aunque se puede realizar un uso más extensivo de esta posibilidad y dar otra información, cualquiera que sea ésta.

Para realizar Finger se debe conectar con un Host del sistema que disponga de este servicio. Seguidamente aparecera una casilla donde introduciremos los datos del usuario que queremos buscar con el siguiente formato: usuario@host.

Cuando se esta utilizando Finger no hace falta introducir el nombre exacto al realizar la busqueda, pero si es imprescindible el host del usuario. Si solo se especifica el nombre del host, Finger nos devolvera una lista con todos los usuarios. El tipo de información que devuelve Finger depende de lo que este disponible, normalmente incluye el nombre, nombre del login, oficina, dirección y telefono.

Un ejemplo del uso más normal de Finger es que nos devuelva información sobre el número de horas desde que el computador está conectado ó el número de veces que se ha consultado la información del Finger. Debido a problemas de accesos indebidos a ordenadores por parte de hackers los administradores de sistemas tienden a facilitar la mínima información posible de los usuarios. Por otra parte, no todos los computadores cuentan con este servicio.

Reseña Historica

 

Finger es basicamente un protocolo utilizado para el intercambio de informacion sobre usuarios. El Programa original fue escrito en el año 1970 por Les Earnest del Stanford Artificial Intelligence Lab(SAIL), Earl Killian del Massachusetts Institute Tecnology (MIT) y Brian Harvey de SAIL fueron co-responsables por la primera implementación del programa original.  Luego, en 1977 K. Harrenstien escribio el primer standard denominado RFC 742 The name/Finger Protocol (Harrenstien 1977). Fue a traves de la publicación de este estandar que pudo ser posible la implementación del Finger en otros computadores y sistemas operativos. Posteriormente, entre 1990 y 1991 D. Zimmerman desarrolló el “IAB standards track protocol” publicado en el documento RFC 1288 que ofrecio mejoras significativas a la anterior versión. La mejor implementación de este comando fue hecha para el Sistema Operativo UNIX (BSD  Unix Version).

 

Los espertos señalan que aspectos de seguridad no permiten la utilizacion de este comando en la red, debido a que existen politicas de privacidad y restricciones para proteger a los usuarios de data peligrosa o dañina.

 

Actualmente existen los siguientes documentos o papers publicados con las versiones del standard del protocolo Finger:

 

·        RFC742 Name/Finger Protocol

·        RFC1194, RFC1996

·        RFC1288

           

Comando finger

El comando finger permite buscar y mostrar  información asociada a los usuarios del sistema de acuerdo a sus nombres, apellidos o login. La información que muestra finger para cada usuario es:

·        El login

·        El nombre y apellidos

·        El directorio base

·        El shell

·        La oficina y el teléfono

·        El teléfono de la casa

·        La lista de terminales a través de las que está conectado con la fecha, tiempo sin interactuar (iddle time) y si está deshabilitada la posibilidad de recibir mensajes

·        La fecha y hora del último nuevo mensaje electrónico recibido y desde cuando no accede al buzón

·        El contenido del archivo .plan en el directorio base

Ejemplo:

    ...
    $ finger carmen
    Login: carmen                            Name: Carmen Elena Arevalo
    Directory: /home/carmen                  Shell: /bin/bash
    Office: Truck Parts Depot, Inc           Home Phone: 407-854-8602
    On since Fri Oct 24 09:07 (CDT) on :0 (messages off)
    On since Fri Oct 24 09:08 (CDT) on pts/0   2 hours 54 minutes idle
    On since Fri Oct 24 10:27 (CDT) on pts/1   14 minutes 29 seconds idle
    On since Fri Oct 24 10:29 (CDT) on pts/3
    Mail last read Fri Oct 24 11:58 2003 (CDT)
    Plan:
    Lo esencial es invisible a los ojos
 
    $ finger Arevalo
    Login: carmen                            Name: Carmen Elena Arevalo
    Directory: /home/carmen                  Shell: /bin/bash
    ...
 

El Protocolo Finger

 

El protocolo de transporte utilizado por finger es TCP, que garantiza un intercambio fiable de datos. El servicio utiliza el puerto 79 (en el servidor) para atender peticiones y el protocolo de aplicación se detalla a continuación:

 

 

  1. Se establece una conexión con el servidor (host) especificado en el puerto 79.
  2. El cliente envía una cadena que contiene el nombre de usuario (en ASCII) por el que se pregunta, terminada con los caracteres CR y LF (13 y 10).

 

 

‘iniciar una conexión

IPPort1.RemoteHost = ”safo.redes.upv.es” ‘servidor Linux

IPPort1.RemotePort = 7 ‘puerto del servidor de eco TCP

IPPort1.Connected = True ‘inicia la conexión TCP

...

IPPort1.DataToSend = “Datos a enviar” ‘transmite datos

...

‘finalizar una conexión

IPPort1.Connected = False ‘desconecta

 

  1. El servidor contesta con una serie de líneas codificadas en ASCII, terminadas en CR y LF.
  2. Una vez enviado el texto, el servidor finaliza la conexión TCP.

 

 

Implementación de un Programa basado en el Protocolo Finger

 

 

Esta seccion se implementara un programa tipo Finger. Este estracto corresponde a una Practica Educativa en donde se observa la utilidad del Programa Finger.

 

En primer lugar, se diseñara una interface que nos permita indicar el nombre del host y el nombre de usuario y un botón para iniciar la consulta. El resultado se mostrara en un cuadro de texto. Adicionalmente, se incluira  una imagen que señalice la duración de la conexión.

 

En este Ejercicio se puede usar un valor por defecto para el host que puede ser la dirección IP del servidor Linux del laboratorio: safo.redes.upv.es y el nombre root para el usuario por defecto. Si el usuario del programa lo desea puede cambiar estos valores por defecto, en la Figura 7-2 se muestra un posible aspecto de la aplicación.

 

EJERCICIO: Implementar el programa finger con la señalización de la conexión mediante un icono según el interface de la figura.

 

 

Una vez comprobado el ejercicio, Intente poner una cadena nula en el nombre de usuario. Testear también con otros Computadores en los que se tenga una cuenta de email.

 

Es importante recordar que esta utilidad sólo es común en servidores UNIX y que un servidor NT no va a responder a la solicitud (ni un Windows 95). En algunas implementaciones se admiten nombres incompletos (Linux) con lo que se presenta la información de todos los usuarios cuyo nombre de cuenta empiece por esos caracteres (esto puede ser un problema si no deseamos que se pueda averiguar la lista de usuarios).  Esta aplicación no requiere ningún tipo de seguridad al cliente, es decir, podemos interrogar con nuestro programa a cualquier host de Internet (al menos si es  UNIX o alguna de sus variantes) y averiguar información referida a los usuarios de ese sistema. Por ello, en algunos sistemas, se desactiva este servicio para que no se pueda “curiosear”.

 

Otro detalle interesante del finger es que nos permite conocer si el usuario por el que preguntamos se encuentra conectado en ese momento al sistema (con una sesión telnet o similar). También nos indica el tiempo que lleva conectado (nos dice a qué hora se conectó) y el tiempo que lleva idle (si está trabajando o no, esto puede ser muy peligroso en manos de algunos jefes). El tiempo inactivo se refiere a la última tecla pulsada, así que si estamos haciendo otra cosa como compilar un programa o leyendo una ayuda este contador se va incrementando.

 

También conoceremos con el finger si el usuario tiene correo pendiente y desde cuando, de nuevo podemos averiguar el “nivel de actividad” de ese usuario. Como vemos esta utilidad puede resultar muy “impertinente” porque permite conocer datos más o menos privados de los usuarios de un sistema. 

 

 

 

REGRESAR