Este documento detalha o procedimento para configurar Epoptes em uma sala de informática utilizando a resolução de nomes mDNS (Avahi). Este método permite a interconexão entre dispositivos em redes com endereçamento IP dinâmico (DHCP), eliminando a necessidade de configurar IPs fixos.

Esquema de Funcionamento
- Servidor (Neste exemplo, vamos supor que terá este nome: tux0): Atua como controlador central e se anuncia na rede através do Avahi.
- Resolução de nomes: Os dispositivos são localizados usando o sufixo .local (tux0.local).
- Clientes: Conectam-se ao nome do servidor, validam o certificado de segurança e iniciam o serviço automaticamente a cada inicialização.
Gestão do Nome do Dispositivo (Hostname)
Dado que o IP é dinâmico e pode mudar, o nome do dispositivo é o único identificador confiável na rede. Para que o sistema funcione, o servidor deve ter um nome único e conhecido.
Procedimento para mudar o nome do dispositivo
Se o seu servidor ou clientes não tiverem o nome correto, você deve modificá-lo nos seguintes arquivos:
- Arquivo /etc/hostname: Este arquivo contém apenas o nome do dispositivo.
sudo nano /etc/hostname(Apague o nome atual e escrevatux0) - Arquivo /etc/hosts: Você deve atualizar a linha associada ao loopback local para que coincide com o novo nome.
sudo nano /etc/hostsModifique a linha:127.0.1.1 nome_antigopara127.0.1.1 tux0 - Aplicar sem reiniciar:
sudo hostnamectl set-hostname tux0
PASO 1: Configuração do Servidor
O servidor é a estação a partir da qual o controle da sala é exercido.
- Identificar a interface de rede: Para verificar o estado da rede, use o comando:
ip a - Script de instalação e configuração: Crie o arquivo
server_setup.she execute-o com permissões de superusuário:
#!/bin/bash
if [ "$EUID" -ne 0 ]; then echo "Erro: execute com sudo"; exit 1; fi
# Instalação de pacotes
apt update && apt install -y epoptes avahi-daemon
# Assegurar o nome do host
hostnamectl set-hostname tux0
# Gestão de permissões de usuário
# Adicione o usuário que lançou o script ao grupo epoptes
USUARIO_REAL=${SUDO_USER:-$USER}
gpasswd -a "$USUARIO_REAL" epoptes
echo "Configuração do servidor finalizada. Reinicie o dispositivo."
PASO 2: Configuração dos Clientes
Deve ser executado em cada posto de aluno.
- Correção dos caminhos do sistema: Se o sistema não localizar os binários em /sbin, adicione-os ao PATH do usuário:
echo 'export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin' >> ~/.bashrc && source ~/.bashrc - Script de configuração do cliente: Crie o arquivo
client_setup.shcom o seguinte conteúdo:
#!/bin/bash
# Definição do nome do servidor mDNS
SERVER_NAME="tux0.local"
# 1. Verificar se o script está sendo executado como root
if [ "$EUID" -ne 0 ]; then
echo "Erro: Por favor, execute o script com sudo (sudo ./config_cliente_nome.sh)"
exit 1
fi
# Adiciona os caminhos de administração ao PATH da sessão atual do script
export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin
echo "--- Iniciando configuração automática do cliente Epoptes ---"
# 2. Atualização dos repositórios e instalação
# Instala o avahi-daemon para que o cliente possa resolver o nome .local
echo "[1/5] Instalando os pacotes necessários (epoptes-client, avahi, net-tools)..."
apt update && apt install -y epoptes-client avahi-daemon net-tools
# 3. Configuração do arquivo /etc/hosts (Opcional com Avahi, mas recomendado por segurança)
# Nota: Com o uso de .local, o sistema buscará automaticamente na rede sem necessidade de IP fixa
echo "[2/5] Limpando configurações anteriores de hosts..."
sed -i '/tux0/d' /etc/hosts
sed -i '/server/d' /etc/hosts
# 4. Configuração do arquivo padrão do Epoptes
echo "[3/5] Ajustando configuração para conectar ao $SERVER_NAME..."
if [ -f /etc/default/epoptes-client ]; then
# Substitui qualquer configuração anterior pelo nome do nosso servidor
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
# 5. Download do certificado a partir do servidor
# O servidor deve estar ligado e com a aplicação Epoptes aberta
echo "[4/5] Baixando certificado de segurança de $SERVER_NAME..."
/usr/sbin/epoptes-client -c
# 6. Ativação e inicialização do serviço
echo "[5/5] Ativando o serviço para inicialização automática..."
systemctl enable epoptes-client
systemctl restart epoptes-client
echo "---"
echo "PROCESSO CONCLUÍDO COM SUCESSO."
echo "O cliente já deve aparecer no console do servidor ($SERVER_NAME)."
echo "Se o certificado falhou, certifique-se de que o servidor se chama 'tux0'."
PASO 3: Verificação da Conexão
- No Servidor: Inicie a interface gráfica executando
epoptesou procurando a aplicação no menu de Educação. - No Cliente: Verifique se o serviço está rodando com o comando
systemctl status epoptes-client. - Resolução de problemas: Se o cliente não aparecer, verifique a conectividade mDNS através de um ping:
ping tux0.localSe responder mas não conectar, repita o download do certificado:sudo epoptes-client -c.
