Administración remota de los equipos del Colegio (I)

Con varios laboratorios de informática y ordenadores de profesor en despachos y aulas, realizar tareas habituales como instalar nuevos programas, cambiar contraseñas o realizar otras tareas de mantenimiento se antoja tedioso y agotador. Lo ideal sería contar con una consola de administración en un equipo de «control» que permitiera realizar las acciones sin tener que desplazarte por todo el Colegio.

En este primer artículo voy a describir algunas de las herramientas básicas que podemos utilizar sin tener que recurrir a aplicativos o soluciones más complejas que sobrecarguen nuestros limitados equipos.

SSH: acceso remoto cifrado

Las siglas corresponden a Secure SHell. Sirve para acceder a máquinas remotas, igual que hace telnet, pero de una forma segura ya que la conexión va cifrada. Lo instalaremos en todas las máquinas.

sudo apt -y install ssh

Después podremos ejecutar acciones como la siguiente:

ssh root@direccion_ip_remota "apt -y install mc"

Pero si lo que deseamos es ejecutar el script en una máquina remota llamaremos a ssh de la siguiente manera:

ssh root@direccion_ip_remota "bash -s" < ./script.sh

Aunque hagamos un script que ejecute acciones concretas en todos los clientes, nos encontraremos con un problema: los clientes pedirán autenticación uno a uno, por lo que el proceso será manual y por tanto no conseguiremos nuestro objetivo de hacer una administración remota en masa productiva

Deseamos que desde el equipo de control se puedan administrar los clientes sin que estos pidan contraseña. Lo conseguiremos distribuyendo un par de claves pública/privada, quedando la privada en el equipo de control y la pública en los clientes.

  • Abrimos una sesión de root en el servidor y tecleamos el siguiente comando
    ssh-keygen -t dsa
  • Nos pedirá algunos parámetros y los dejamos por defecto (pulsar ENTER)
  • Habremos obtenido:
      • Un archivo /root/.ssh/iddsa que es la clave privada y que no debe salir del equipo de control
      • Un archivo /root/.ssh/iddsa.pub que es la clave pública y que copiaremos a los clientes
  • Copiamos la clave pública a los clientes ejecutando en el equipo de control el comando
    ssh-copy-id -i /root/.ssh/iddsa.pub ip_cliente

Ahora tenemos la posibilidad de ejecutar comandos remotos sin abrir una sesión interactiva y sin teclear contraseñas. Veremos las posibilidades que esto nos abre de cara a la administración de equipos en masa.

MC: gestor de ficheros para la consola

Midnight Commander es una auténtica «navaja suiza» para la consola. Además de mover, copiar, renombrar, etc, archivos, carpetas o grupos de ellos o editarlos también podemos conectarnos a otra maquina a través de FTP o SSH para realizar operaciones entre máquinas, podemos cambiar permisos, gestionar directorios virtuales (VFS), crear enlaces simbólicos, recuperar archivos, gestionar procesos en segundo plano y por supuesto poder configurar absolutamente todo de esta excelente herramienta.

sudo apt -y install mc

Blackbox: un gestor de ventanas ultra-ligero

Es ideal para máquinas de escasos recursos o servidores en los que solo se necesita un entorno gráfico reducido para las operaciones diarias de mantenimiento. (apenas consume 3Mb de memoria RAM)

sudo apt -y install blackbox blackbox-themes

VNC Server: acceso remoto al escritorio

VNC o Virtual Network Computing es un sistema de conexión que permite interactuar con un entorno de escritorio gráfico en un servidor/equipo remoto.

sudo apt -y install vnc4server

Comandos útiles en el equipo remoto:

  • vncpasswd  Establecer contraseña de acceso
  • vncserver :1  Iniciar el servicio
  • vncserver -kill :1  Cerrar/parar el servicio
  • vncserver :1 -geometry 800×600 -depth 24  Iniciar con una resolución concreta

Iniciar Blakbox por defecto al usar VNC

Edita/crea el archivo ~/.vnc/xstartup y asegúrate que contenga:

#!/bin/bash
xrdb $HOME/.Xresources
backbox &

Conexión segura desde el equipo de control

ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address

A continuación puedes utilizar un cliente VNC para intentar una conexión al servidor VNC en localhost:5901

WOL: arrancar equipos de forma remota

Wake-on-lan es una función que nos permite activar un equipo mediante una señal electrónica recibida por el cable de red. 

En el equipo a controlar

  • Asegúrate de que en la BIOS del equipo está habilitada la opción Wake on Lan(WOL), Wake On PCI(E) o similar.
  • Instala el siguiente paquete:
sudo apt -y install ethtool
  • Averigua cual es el identificador del dispositivo de red y su dirección MAC con «ifconfig» o «ip a«
  • Ejecuta el comando «sudo ethtool -s INTERFACE wol g«

Desgraciadamente el cambio se perderá con el reinicio de la máquina. Para hacerlo permanente lo habilitaremos como servicio al inicio del sistema:

  • Crea el archivo «/etc/systemd/system/wol.service» y añade las siguientes líneas sustituyendo INTERFACE por el identificador correspondiente:
[Unit]
Description=Configurar Wake On LAN

[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s INTERFACE wol g

[Install]
WantedBy=basic.target
  • Indiquemos a systemd que lo habilite y lo inicie:
systemctl daemon-reload
systemctl enable wol.service
systemctl start wol.service

En el equipo de administración

Instala el software necesario

sudo apt -y install wakeonlan

Existen otras opciones como «etherwake», «powerwake» o gráficas como «gWakeOnLan»

Para iniciar un equipo :

wakeonlan dirección_mac

¿Y ahora qué?

Con los equipos preparados para aceptar conexiones remotas y con el ordenador de «control» cargado con las herramientas necesarias en el próximo artículo describiré algunos procesos y «scripts» para arrancar, apagar, obtener información, actualizar, cambiar contraseñas, etc… a uno o a todo un grupo de equipos de nuestro interés.