Más de 12 años en Internet
->No hagas click en esta frase.

06 abril, 2008

Security Shell

Por cuestiones de trabajo en el último año me he visto obligado a usar a diario conexiones remotas para controlar equipos, servidores o mi propio ordenador personal. Y es que el mundo de la conexión remota es apasionante, potente y a la vez extremadamente peligroso.

¿Qué es la conexión remota? Básicamente controlar un equipo mediante una shell. Sé que es una respuesta muy inexacta, puesto que existen distintos métodos, incluso últimamente están de moda los escritorios compartidos. No obstante considero que símplemente basta con comentar la forma tradicional: con una shell en tu ordenador, puedes ejecutar la shell de otro equipo.

Los dos programas de conexión remota más famosos son Telnet (que la comunicación se realiza sin cifrado en los paquetes) y SSH (Security Shell, que a diferencia del Telnet sí cifra las comunicaciones). Hoy en día el más utilizado es SSH, de hecho su fama le ha llegado a aparecer en películas como Matrix.
ssh sebas@192.168.5.74
Ejemplo de orden para conectarnos por ssh: usuario_del_equipo@IP. Por sentido común (y por defecto), la máquina siempre preguntará la contraseña de dicho usuario.
Yo, por ejemplo, suelo conectarme de forma remota desde el PC de mi habitación hasta el de mi padre para controlar las descargas del amule, el tamaño de disco duro que le queda, realizar backups o lanzar órdenes para que el equipo se reinicie. Es algo práctico, de hecho, utilizando herramientas como SCP (Security Copy, incluido en SSH) puedes descargarte archivos de una máquina a otra con una rapidez de descarga mucho mayor que si te los bajaras desde una carpeta compartida en nuestra red.
scp -r sebas@192.168.5.74:/home/sebas/música/* .
En este ejemplo nos estamos bajando al directorio actual toda la música del usuario sebas.
Y es que la potencia de una sesión remota es tal, que por sentido común existen dos reglas de oro básicas: NUNCA le des la contraseña de tu equipo a alguien, y FILTRA las IP's para que no puedan acceder ordenadores no deseados a tu equipo. Piensa que con una sesión remota los intrusos pueden ejecutar cualquier aplicación de tu equipo o revisar los archivos que este posee. De hecho si activan por ejemplo el redireccionamiento de las X y el de puertos, pueden pasarte males como:
  • Si eres de los que siempre marcan la casilla de "recordar contraseña", pueden ejecutar el amsn/gaim de forma remota y chatear con tus contactos sin necesidad de conocer tu contraseña de MSN. O pueden ejecutar el Firefox, leer tu correo, o revisar tu historial de visitas.
  • Pueden descargarse documentos, información de la configuración del equipo, o fotos comprometidas. Incluso podrían introducirte pruebas incriminatorias en tu máquina.
  • Pueden editar tu crontab para que tu equipo haga acciones de forma periódica sin necesidad de futuras reconexiones a tu ordenador (aunque esto no requiere de redireccionamiento de puertos ni X).
ssh -X -Y sebas@192.168.5.74
Ejemplo en el que le decimos al cliente ssh que redireccione puertos y las X. Ahora podremos ejecutar aplicaciones gráficas de forma remota.
De todas formas, con un cortafuegos y una correcta configuración de tu red local y del programa de conexión remota estos daños no creo que se te produzcan nunca.

Algunas consideraciones en tus conexiones remotas:
  • Si olvidas en qué máquina estás conectado, realiza la orden ifconfig | grep inet, te devolverá la ip del equipo. Si no sale prueba con /sbin/ifconfig | grep inet.
  • Con la orden de unix who puedes ver cuantas personas hay conectadas en el equipo ahora mismo.
  • Dentro de una shell de SSH puedes iniciar otra shell de SSH para conectarte a un tercer equipo. Esto es muy útil para saltarte filtrados de IP.
  • No seas malo, siempre hay pruebas de tus acciones. Por ejemplo, el .bash_history de la máquina remota se chivará de todo lo que has hecho.

No hay comentarios:

Publicar un comentario