
WatchYourLAN: cum stii ce e conectat la reteaua ta, chiar acum
Cate device-uri sunt conectate chiar acum la reteaua ta? Nu cate crezi ca sunt, nu cate apar in diagrama facuta acum doi ani cand ai cablat biroul, ci cate raspund efectiv la un ARP scan in secunda asta. Daca nu poti raspunde la intrebarea asta in mai putin de un minut, ai o problema de vizibilitate. Un laptop de test uitat conectat de sase luni, un switch adus “temporar” de cineva din echipa, un IoT ieftin instalat de un coleg fara sa anunte pe nimeni, toate astea traiesc confortabil in reteaua ta pana cand cineva se uita efectiv dupa ele. Problema nu e ca nu ai firewall sau ca nu ai politici. Problema e ca nu stii ce sa aperi daca nu stii ce exista.
Aici intra WatchYourLAN (github.com/aceberg/WatchYourLAN), un proiect open source scris in Go, gandit exact pentru intrebarea de mai sus: scaneaza subnetul prin ARP, tine minte fiecare host pe care il gaseste, cu MAC, hostname, interfata si istoric online/offline, si iti pune totul intr-o interfata web simpla, plus un endpoint /metrics pentru Prometheus. Il folosim chiar noi, pe reteaua proprie din datacenterul din Bucuresti: rulam cate o instanta pe fiecare segment intern unde ne intereseaza vizibilitate directa, iar rezultatele intra in stack-ul nostru de Grafana prin acel /metrics. Nu il vindem ca produs, e o unealta interna de operare pe care o gasim suficient de utila incat sa scriem despre ea aici.
Ce este, mai exact, WatchYourLAN
WatchYourLAN nu face nimic exotic, si tocmai asta e punctul lui forte. Ruleaza scanari ARP periodice pe una sau mai multe interfete/subnete configurate, iar pentru fiecare adresa MAC gasita retine: IP-ul curent, hostname-ul (daca poate fi rezolvat), interfata pe care a fost vazut, statusul online/offline si momentele de “first seen” / “last seen”. Toate datele astea se scriu intr-o baza SQLite locala, deci nu ai nevoie de un server de baze de date separat sau de o dependenta externa grea. Tot ce vezi in interfata web, lista de host-uri cu IP, MAC, nume, interfata si flag-ul cunoscut/necunoscut, vine direct din acel istoric.
In plus fata de UI, expune un endpoint /metrics in format Prometheus, ceea ce inseamna ca poti scrape-ui datele astea in orice stack de monitorizare pe care il ai deja, fara sa scrii tu integrarea de la zero. E scris in Go, ruleaza usor intr-un container, si e gandit sa functioneze cu networking de tip host, pentru ca altfel nu ar avea de unde sa vada traficul ARP real de pe interfata fizica/VLAN pe care vrei sa o monitorizezi.
De ce conteaza
Un inventar de retea “pe hartie” (sau intr-un spreadsheet actualizat manual ultima oara acum sase luni) minte constant. Realitatea unei retele se schimba in fiecare zi: cineva conecteaza un switch nemanaged ca sa mai adauge cateva prize, un test box ramane pornit dupa ce proiectul s-a incheiat, un device IoT apare din senin pe VLAN-ul gresit. Niciuna dintre situatiile astea nu apare intr-un audit trimestrial, dar toate apar imediat intr-un scan ARP. WatchYourLAN iti da raspunsul la “ce e viu pe segmentul asta chiar acum, si de cand”, ceea ce e exact tipul de semnal pe care il vrei cand incerci sa depistezi un echipament nedorit sau doar sa confirmi ca segmentarea ta de retea arata cum crezi ca arata.
Ce primesti din cutie
- O interfata web cu lista tuturor host-urilor descoperite: IP, adresa MAC, hostname/nume, interfata de retea pe care a fost vazut, si un flag cunoscut/necunoscut.
- Istoric online/offline per host, cu timestamp de prima si ultima aparitie, deci poti raspunde la “de cand e conectat lucrul asta” fara sa sapi in loguri.
- Endpoint
/metricscompatibil Prometheus, gata de scrape pentru dashboards si alerte in Grafana sau orice altceva foloseste formatul Prometheus. - Stocare locala in SQLite, fara dependente externe grele, usor de backup sau de resetat.
- Un binar Go usor, care ruleaza bine in container, tipic cu host networking ca sa vada traficul real de retea.
Instalare WatchYourLAN pe un VPS
Cel mai simplu mod de a incerca WatchYourLAN e intr-un container, cu acces la interfata pe care vrei sa o scanezi. Un exemplu minimal de docker run:
docker run -d \
--name watchyourlan \
--network host \
--restart unless-stopped \
-e TZ=Europe/Bucharest \
-e IFACES=eth0 \
-v /docker/watchyourlan/data:/data \
aceberg/watchyourlan:latest
Sau, daca preferi docker compose:
services:
watchyourlan:
image: aceberg/watchyourlan:latest
container_name: watchyourlan
network_mode: host
restart: unless-stopped
environment:
- TZ=Europe/Bucharest
- IFACES=eth0
volumes:
- ./data:/data
Volumul de date tine baza SQLite, deci pastreaza-l montat persistent daca vrei sa nu pierzi istoricul host-urilor la un restart de container. Interfata web ruleaza pe un port propriu, iar daca expui portul respectiv in afara, ai grija la ufw: nu lasa portul deschis public fara restrictie. Fie il legi doar la o adresa interna/VPN, fie il pui in spatele unui reverse proxy cu autentificare, pentru ca lista de host-uri, MAC-uri si interfete e efectiv o harta a topologiei tale de retea, nu ceva ce vrei expus oricui trece pe acolo.
Un lucru pe care merita sa il spunem direct: pe un VPS obisnuit, cu o singura interfata de retea intr-un cloud public, WatchYourLAN are un rost mai restrans. ARP scanning functioneaza doar in interiorul aceluiasi domeniu de broadcast, iar un VPS standard sta de obicei izolat de restul retelei providerului, deci nu are de unde sa “vada” alte masini din vecini. Unde chiar straluceste e intr-o retea segmentata, cu VLAN-uri sau subnete pe care le controlezi tu, fie ca vorbim de infrastructura interna, fie de un mediu de tip retea privata/VPC unde host networking chiar iti da acces la traficul real. Daca ai un VPS la noi si vrei sa incerci unealta pentru un caz de utilizare mai restrans (de exemplu monitorizarea unei retele private conectate prin VPN la acel VPS), poti porni de la pagina noastra de servere virtuale VPS ; pentru topologii mai complexe insa, cu VLAN-uri multiple, gasesti context suplimentar pe pagina noastra de retea .
Tipare de configurare care merita stiute
Intervalul de scanare
WatchYourLAN scaneaza periodic, nu continuu, iar intervalul dintre scanari e un compromis intre “vad schimbarile aproape in timp real” si “nu generez trafic ARP inutil pe retea”. Pentru un VLAN mic sau critic, unde vrei sa prinzi repede un device nou conectat, un interval scurt are sens. Pentru un segment mare, cu sute de host-uri, un interval mai relaxat evita sa transformi scanarea intr-un zgomot de fond constant. Nu exista o valoare universala corecta, depinde de cat de des se schimba efectiv reteaua ta si de cat de repede vrei sa afli.
Cunoscut vs necunoscut
Flag-ul de host cunoscut/necunoscut e, in opinia noastra, cea mai practica functie a interfetei. Odata ce ai marcat host-urile pe care le astepti (servere, statii de lucru, echipamente de retea), orice aparitie noua sare in ochi imediat ca “necunoscut”, in loc sa se piarda intr-o lista lunga de IP-uri. Merita sa iti faci un obicei din a trece periodic prin lista si a marca ce e legitim, altfel lista de “necunoscute” devine ea insasi zgomot pe care il ignori.
Integrarea /metrics cu Prometheus si Grafana
Pentru ca WatchYourLAN expune /metrics in format Prometheus, integrarea intr-un stack existent e directa: adaugi un job de scrape care tinteste endpoint-ul respectiv, iar de acolo poti construi panouri Grafana pentru numar de host-uri online per VLAN, host-uri noi aparute in ultimele 24 de ore, sau alerte cand un host cunoscut si important dispare brusc din retea. Noi facem exact asta: rezultatele scanarilor noastre ajung in Grafana alaturi de restul metricilor de infrastructura, ca sa avem o singura privire de ansamblu, nu un tab separat pe care il uiti deschis.
O instanta per VLAN/segment
Daca reteaua ta e segmentata (si probabil ar trebui sa fie), cel mai curat model e sa rulezi cate o instanta WatchYourLAN per VLAN sau subnet care conteaza, fiecare cu vizibilitate doar pe interfata/segmentul respectiv. Asta iti da atat izolare (o instanta compromisa sau stricata nu iti strica vizibilitatea pe restul retelei), cat si claritate in dashboard: stii exact ce VLAN raporteaza ce. E abordarea pe care o folosim si noi intern, cate o instanta per segment care are nevoie de vizibilitate directa.
Unde WatchYourLAN nu e raspunsul potrivit
Sa fim directi: WatchYourLAN nu e un IPAM. Nu iti gestioneaza alocarile de IP-uri, nu iti tine evidenta subnetelor rezervate sau a planificarii de adresare, doar iti arata ce e viu chiar acum. Pentru sursa unica de adevar despre topologie, alocari si documentatie de infrastructura, un instrument dedicat de tip CMDB/IPAM (noi, intern, folosim NetBox pentru asta) ramane necesar.
Nu e nici o solutie completa de NAC (Network Access Control) sau 802.1x. Iti spune ce vede, dar nu decide cine are voie sa se conecteze si nu blocheaza nimic la nivel de port de switch. Daca ai nevoie de control de acces bazat pe identitate la nivel de retea, ai nevoie de altceva pe langa el, nu in locul lui.
Nu e un scanner de vulnerabilitati. Iti spune ca exista un host la o adresa, nu ce servicii ruleaza pe el sau daca are porturi vulnerabile deschise. Pentru asta ai nevoie de un scanner dedicat, separat.
Si, poate cel mai important detaliu tehnic: scanarea ARP functioneaza doar in interiorul aceluiasi domeniu de broadcast. Nu poate “vedea” dincolo de un router, deci intr-o retea rutata cu mai multe subnete separate, ai nevoie de o instanta (sau de vizibilitate) pe fiecare segment in parte, nu una singura care sa acopere magic totul.
Alternative pe care le-am luat in calcul
Inainte sa ne stabilim pe WatchYourLAN pentru cazul nostru de utilizare, am privit si spre alte optiuni, unele complementare, altele concurente directe:
- nmap cu scripturi custom si o baza de date (de multe ori Postgres) in spate, pentru echipe care vor control total asupra formatului de scanare si a ce se stocheaza. Flexibil, dar cere sa iti construiesti singur toata partea de persistenta si UI.
- arp-scan, unealta de linie de comanda pe care se bazeaza conceptual si multe alte tool-uri de discovery. Excelenta pentru scanari punctuale sau scriptare proprie, dar fara istoric persistent sau UI din cutie.
- Netdisco, un proiect mai vechi si mai orientat spre discovery la nivel de switch/topologie (inclusiv SNMP), util cand vrei mai mult decat un simplu ARP scan si iti trebuie si maparea porturilor de switch.
- Fing, cunoscut mai ales in varianta pentru retele mici/acasa, cu accent pe usurinta de utilizare si pe aplicatii mobile.
- Modulele de discovery de retea din Zabbix sau PRTG, daca ai deja unul dintre aceste sisteme de monitorizare in productie si vrei sa adaugi discovery ca o functie in plus, nu ca un tool separat de administrat.
Fiecare dintre astea are locul lui. Noi am ales WatchYourLAN pentru simplitatea lui de deploy per-segment si pentru ca /metrics se integreaza direct in stack-ul nostru existent de Grafana, fara sa mai adaugam inca o piesa de management separata.
Deci, sa-l rulezi?
Daca ai o retea segmentata si vrei sa poti raspunde in orice moment la “ce e conectat aici chiar acum, si de cand”, WatchYourLAN e o unealta usoara, gratuita si onesta despre ce face: un scanner ARP cu memorie si un endpoint de metrici, nimic mai mult, nimic mai putin. Poti sa il incerci pe un VPS al nostru daca vrei sa te joci cu el intr-un mediu izolat, iar daca vrei sa il integrezi corect intr-o retea segmentata cu VLAN-uri si sa iti stabilesti fluxul de discovery + monitorizare de la zero, echipa noastra de administrare servere poate sa se ocupe de partea de configurare si integrare, ca sa nu ramai cu inca un tab deschis pe care il verifici o data pe luna.