Montar equip xarxes WLAN per escaneig logs
Objectiu
L’objectiu d’aquesta tasca és desplegar un servidor centralitzat de recollida de logs dins de la xarxa WLAN gestionada per la Generalitat, sense disposar d’accés administratiu a la seva infraestructura de xarxa ni al seu servidor DHCP. Donat que el servidor rebrà una adreça IP dinàmica en cada connexió, s’utilitza el protocol mDNS mitjançant Avahi (Linux) i Bonjour (Windows) perquè els equips clients puguin localitzar el servidor sempre pel mateix nom de host, independentment de la IP que tingui assignada en cada moment.
Context i limitacions
La xarxa WLAN de la Generalitat és una infraestructura tancada on els equips s’autentiquen amb comptes XTEC i surten a internet de forma directa. No es disposa de control sobre el DHCP, els DNS interns ni la configuració dels punts d’accés. Això implica que el servidor de logs no pot tenir una IP fixa per conveni administratiu, i que qualsevol solució basada en IP estàtica dependria d’una configuració manual que caldria repetir cada cop que el servidor canviés d’adreça.
La solució adoptada evita aquesta dependència publicant el servidor a la xarxa local amb un nom fix mitjançant mDNS. El protocol mDNS permet que qualsevol equip de la mateixa WLAN resolgui el nom servidor-logs.local a la IP actual del servidor de forma automàtica i transparent, sense necessitat de cap servidor DNS ni de cap configuració centralitzada.
Arquitectura del sistema
El servidor de logs és un equip Linux Debian connectat a la mateixa WLAN que els clients. Rep una IP dinàmica del DHCP de la Generalitat i publica el seu nom a la xarxa via Avahi. Els clients, tant Windows 10 i Windows 11 com Linux Debian, envien els seus logs de sistema al servidor mitjançant el protocol syslog per UDP al port 514. Els clients Windows utilitzen Winlogbeat per capturar els events del sistema operatiu i reenviar-los, mentre que els clients Linux utilitzen rsyslog, que ja ve instal·lat per defecte a Debian.
Els logs rebuts al servidor s’organitzen automàticament per equip origen en directoris separats, de manera que es pot consultar l’activitat de cada portàtil de forma independent. En una fase posterior es preveu afegir una capa de visualització mitjançant Grafana i Loki sense necessitat de modificar la configuració actual de recollida.
Funcionament del descobriment per nom
Quan un client arrenca i es connecta a la WLAN, Bonjour o Avahi envien una consulta mDNS a la xarxa local demanant qui és servidor-logs.local. El servidor respon amb la seva IP actual. A partir d’aquell moment el client pot enviar logs al servidor pel nom sense conèixer la IP. Si el servidor es reinicia i obté una IP diferent, la propera consulta mDNS retornarà la nova IP de forma automàtica. Tot aquest procés és transparent per a l’usuari i no requereix cap intervenció manual.
Cal tenir en compte que mDNS no travessa routers per disseny, per tant el sistema funciona únicament quan el servidor i els clients es troben a la mateixa WLAN. Si en el futur es vol estendre la recollida de logs a equips d’altres segments de xarxa caldria implementar un reenviament de syslog o un DNS intern accessible des de tots els segments.
Equips clients i programari utilitzat
Els portàtils amb Windows 10 i Windows 11 requereixen la instal·lació de Bonjour Print Services, que és el component d’Apple que afegeix suport mDNS a Windows. Aquest programari no té cap relació amb iTunes ni amb cap servei de música, és un component de xarxa pur que s’instal·la de forma silenciosa i no requereix cap compte. Un cop instal·lat, Windows pot resoldre noms .local de la mateixa manera que ho fa qualsevol equip Linux o macOS de forma nativa. A més de Bonjour, s’instal·la Winlogbeat, que és l’agent encarregat de capturar els events del registre de Windows (Application, System, Security) i enviar-los al servidor de logs.
Els portàtils amb Linux Debian utilitzen rsyslog per enviar logs i Avahi per resoldre el nom del servidor. Ambdós components estan disponibles als repositoris oficials de Debian i no requereixen cap configuració complexa.
Dades tècniques del servidor (valors provisionals)
El servidor té com a nom de host servidor-logs, publica el nom mDNS servidor-logs.local a la xarxa i té la MAC address AA:BB:CC:DD:EE:FF. La IP és dinàmica i en l’entorn de proves s’ha documentat dins del rang 192.168.16.0/22 assignat pel DHCP de la Generalitat. El port de recepció de logs és el 514 UDP. Els logs rebuts s’emmagatzemen a /var/log/clients/ organitzats per nom d’equip origen.
Resultat esperat
Un cop desplegat el sistema, cada portàtil connectat a la WLAN envia automàticament els seus logs de sistema al servidor central sense cap intervenció de l’usuari. L’administrador pot consultar l’activitat de qualsevol equip accedint al servidor de logs i revisant el directori corresponent. El sistema és tolerant als canvis d’IP del servidor i no requereix manteniment periòdic mentre tots els equips es mantinguin a la mateixa WLAN.
Instal·lació i configuració del servidor Linux
Instal·lar Avahi per publicar el nom mDNS
sudo apt update
sudo apt install -y avahi-daemon avahi-utils
sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon Verificar que el servidor és visible a la xarxa pel seu nom:
avahi-resolve -n servidor-logs.local Ha de retornar la IP dinàmica actual del servidor. Des d’un altre equip de la mateixa WLAN:
ping servidor-logs.local Configurar rsyslog per rebre logs remots
sudo apt install -y rsyslog Editar /etc/rsyslog.conf i descomentar les línies següents per activar la recepció UDP:
module(load="imudp")
input(type="imudp" port="514") Afegir al final del fitxer per separar els logs per equip origen:
template(name="PerHost" type="string"
string="/var/log/clients/%HOSTNAME%/%PROGRAMNAME%.log")
*.* action(type="omfile" DynaFile="PerHost") Reiniciar el servei:
sudo systemctl restart rsyslog
sudo systemctl enable rsyslog Els logs de cada equip client quedaran emmagatzemats a /var/log/clients/{nom_equip}/.
Obrir el port al firewall del servidor
sudo ufw allow 514/udp
sudo ufw reload Configuració clients Windows 10 / Windows 11
Instal·lar Bonjour Print Services
Descarregar de la web oficial d’Apple: https://support.apple.com/kb/DL999
La instal·lació no requereix compte Apple ni cap configuració addicional. Un cop instal·lat, Windows pot resoldre noms .local via mDNS automàticament. Verificar des de CMD:
ping servidor-logs.local Ha de respondre amb la IP dinàmica actual del servidor.
Instal·lar Winlogbeat
Descarregar Winlogbeat des de https://www.elastic.co/downloads/beats/winlogbeat
Descomprimir a C:\winlogbeat\
Editar C:\winlogbeat\winlogbeat.yml:
winlogbeat.event_logs:
- name: Application
- name: System
- name: Security
output.logstash:
hosts: ["servidor-logs.local:5044"]
logging.level: info
logging.to_files: true
logging.files:
path: C:\ProgramData\winlogbeat\Logs Verificar que el servei està actiu:
Get-Service winlogbeat Configuració clients Linux Debian
Configurar rsyslog per enviar logs al servidor
sudo apt install -y rsyslog Afegir al final de /etc/rsyslog.conf:
*.* @192.168.100.50:514 On 192.168.100.50 és la IP del servidor en el moment de la configuració. Si es vol fer servir el nom mDNS en lloc de la IP (recomanat):
*.* @servidor-logs.local:514 Reiniciar rsyslog:
sudo systemctl restart rsyslog sudo systemctl restart rsyslog
Verificar l'enviament de logs
Des del client Linux:
logger -t TEST "Prova enviament log al servidor central" Al servidor, comprovar que ha arribat:
tail -f /var/log/clients/{nom_equip}/TEST.log