Este documento detalla el procedimiento para configurar Epoptes en un aula de informÔtica utilizando resolución de nombres mDNS (Avahi). Este método permite la interconexión entre equipos en redes con direccionamiento IP dinÔmico (DHCP), eliminando la necesidad de configurar IPs fijas.

Esquema de Funcionamiento
- Servidor (En este ejemplo vamos a suponer que tendrĆ” este nombre: tux0): ActĆŗa como controlador central y se anuncia en la red mediante Avahi.
- Resolución de nombres: Los equipos se localizan mediante el sufijo .local (tux0.local).
- Clientes: Se conectan al nombre del servidor, validan el certificado de seguridad e inician el servicio automƔticamente en cada arranque.
Gestión del Nombre de Equipo (Hostname)
Dado que la IP es dinÔmica y puede cambiar, el nombre del equipo es el único identificador fiable en la red. Para que el sistema funcione, el servidor debe tener un nombre único y conocido.
Procedimiento para cambiar el nombre del equipo
Si tu servidor o clientes no tienen el nombre correcto, debes modificarlo en los siguientes archivos:
- Archivo /etc/hostname: Este archivo contiene solo el nombre del equipo.
sudo nano /etc/hostname(Borra el nombre actual y escribetux0) - Archivo /etc/hosts: Debes actualizar la lĆnea asociada al bucle local para que coincida con el nuevo nombre.
sudo nano /etc/hostsModifica la lĆnea:127.0.1.1 nombre_antiguopor127.0.1.1 tux0 - Aplicar sin reiniciar:
sudo hostnamectl set-hostname tux0
PASO 1: Configuración del Servidor
El servidor es la estación desde la que se ejerce el control del aula.
- Identificar la interfaz de red: Para verificar el estado de la red, utiliza el comando:
ip a - Script de instalación y configuración: Crea el archivo
server_setup.shy ejecĆŗtalo con permisos de superusuario:
#!/bin/bash
if [ "$EUID" -ne 0 ]; then echo "Error: ejecuta con sudo"; exit 1; fi
# Instalación de paquetes
apt update && apt install -y epoptes avahi-daemon
# Asegurar el nombre del host
hostnamectl set-hostname tux0
# Gestión de permisos de usuario
# Añade el usuario que lanzó el script al grupo epoptes
USUARIO_REAL=${SUDO_USER:-$USER}
gpasswd -a "$USUARIO_REAL" epoptes
echo "Configuración del servidor finalizada. Reinicie el equipo."
PASO 2: Configuración de los Clientes
Debe ejecutarse en cada puesto de alumno.
- Corrección de rutas del sistema: Si el sistema no localiza los binarios en /sbin, añÔdelos al PATH del usuario:
echo 'export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin' >> ~/.bashrc && source ~/.bashrc - Script de configuración del cliente: Crea el archivo
client_setup.shcon el siguiente contenido:
#!/bin/bash
if [ "$EUID" -ne 0 ]; then echo "Error: ejecuta con sudo"; exit 1; fi
# El cliente buscarĆ” el servidor por su nombre mDNS
SERVER_NAME="tux0.local"
# Instalación de dependencias
apt update && apt install -y epoptes-client avahi-daemon
# Configuración del archivo de cliente
# Establece la variable SERVER para apuntar al hostname del servidor
if [ -f /etc/default/epoptes-client ]; then
sed -i "s/^#SERVER=.*/SERVER=$SERVER_NAME/" /etc/default/epoptes-client
sed -i "s/^SERVER=.*/SERVER=$SERVER_NAME/" /etc/default/epoptes-client
else
echo "SERVER=$SERVER_NAME" > /etc/default/epoptes-client
fi
# Descarga del certificado de seguridad (Requiere que el servidor estƩ activo)
echo "Obteniendo certificado desde $SERVER_NAME..."
epoptes-client -c
# Persistencia del servicio
systemctl enable epoptes-client
systemctl restart epoptes-client
echo "Configuración del cliente finalizada."
PASO 3: Verificación de la Conexión
- En el Servidor: Inicia la interfaz grƔfica ejecutando
epopteso buscando la aplicación en el menú de Educación. - En el Cliente: Comprueba que el servicio estÔ corriendo con el comando
systemctl status epoptes-client. - Resolución de problemas: Si el cliente no aparece, verifica la conectividad mDNS mediante un ping:
ping tux0.localSi responde pero no conecta, repite la descarga del certificado:sudo epoptes-client -c.
