Conociendo Linux

25 Agosto, 2008

Administrar tu máquina remotamente: OpenSSH

Archivado en: Comandos, SSH — Etiquetas:, , , — Garbu @ 3:55 pm

Hasta ahora hemos repasado varios de los comandos más útiles o frecuentes en Linux que como bien sabeis se ejecutan desde consola o terminal de nuestra máquina. Los comandos suelen tener equivalente a evento gráfico pero en muchos casos es preferible hacerlo desde la consola, con el fin de depurar o agilizar cualquier proceso que necesitemos.

También es muy práctico usar los comandos de consola cuando el interfaz gráfica no responde o simplemente no es posible, como en el caso de una conexión remota a traves de Internet o en una LAN.

Es aquí donde interesa instalar en nuestra máquina un servidor SSH, que no es mas que un demonio que añadiremos a nuestro sistemas con el fin de que podamos acceder a él desde otros equipos remotos en modo consola con el fin de administrar, consultar o utilizar nuestro equipo desde cualquier otro, simplemente se requiere un emulador de SSH como puede ser putty para Windows o cualquier terminal para Linux.

Para ello una de las herramientas más difundidas es OpenSSH, el cual podemos instalar en nuestra máquina de la siguiente manera:

sudo apt-get install openssh-server

Tras lo cual, y por increible que parezca, ya tenemos nuestro servidor SSH funcionando a pleno rendimiento, con los certificados RSA y DSA necesarios y la configuracion estandar. Si tu equipo es crítico se recomiendas revisar la configuración del servidor SSH para establecer un puerto de conexión distinta o bien filtrar otros parámetros como el acceso remoto de root ( hay scripts de gente que intenta acceder a esa cuenta ), el puerto de conexión entrante y el X11 forwarding.

Todo ello se puede hacer a través de la edición fichero /etc/ssh/sshd_config de la siguiente manera:

#Acceder al fichero de configuración con un editor ( en mi caso desde consola usando nano )

sudo nano /etc/ssh/sshd_config

#Una vez dentro de nano pulsamos Control W y buscamos la ocurrencia PermitRootLogin y vemos que tiene el siguiente aspecto:

PermitRootLogin yes

#Asi que para deshabilitar acceso remoto del root editamos la linea dejandolo asi:

PermitRootLogin no

#Ahora buscamos la cadena Port y nos encontramos con:

Port 22

#Y si queremos cambiar el puerto pues es tan simple como sustituir el número por el nuevo, por ejemplo el 2022

Port 2022

#Deshabilitar X11 Forwarding es claramente intuitible. Buscamos la linea X11Forwarding y nos encontramos con:

X11Forwarding yes

#Para deshabilitarlo:

X11Forwarding no

Comentar que X11 Forwarding sirve para poder ejecutar aplicaciones gráficas de una máquina A desde una máquina B a traves de un cliente de terminal que soporte conexion ssh con X11. Dejar abierto X11 Forwarding está catalogado como una posible vulnerabilidad pero a su vez es necesaria para ejecutar varios programas.

Ya tenemos configurado y asegurado el servidor SSH, asi que lo único que nos queda es darle uso. Podemos probar que todo esta OK previamente abriendo un terminal en la misma máquina y ejecutando:

ssh localhost

Si nos solicita usuario y password, es que todo va bien y si logueamos ( no con el root por lo anterior mencionado ) recibiremos un mensaje de bienvenida al servidor SSH.

Ahora podemos repetir la misma operación desde cualquier équipo de la red, desde un Linux a traves de la consola con el comando:

ssh direccion_IP_servidorSSH

#Donde direccion_IP_servidorSSH es la dirección IP de la máquina que corre OpenSSH

Tambien podemos acceder al mismo desde un equipo bajo Windows, instalandonos previamente un programa que interprete SSH, yo recomiendo putty

Si nos atrevemos hasta podemos habilitar en nuestro NAT del Router con el que tengamos acceso a internet una regla de tal manera que las conexiones entrantes a traves del puerto 22 ( o el que hayamos configurado para SSH ) accedan a nuestra maquina servidor de SSH, con lo cual podremos acceder desde cualquier estación de trabajo de Internet a nuestro equipo.

Por curiosidad, si hemos dejado el X11 Forwarding en modo Yes podemos llevar a cabo la ejecución de programas gráficos en nuestro servidor SSH que se visualizarán en nuestra máquina que lleve a cabo la conexión. Para lanzar, por ejemplo, xclock que es la aplicación que muestra la hora de manera gráfica, ejecutaremos:

ssh -X direccion_IP_ServidorSSH

xclock

#Ante lo cual se abrirá un reloj gráfico con la hora de la máquina servidor, no con la que tengas en la máquina desde la que hagas la conexión. Compruebalo!.

Más adelante hablaremos más de OpenSSH, en concreto de los siguientes aspectos:

  • Cambiar el mensaje de bienvenida
  • Copia de archivos mediante SSH
  • Administración remota de manera gráfica a través de SSH: FreeNX y Nomachine
  • etc…

Fuentes utilizadas: UbuntuGeek y LinuxQuestions

Blog de WordPress.com.