Maschinelle Übersetzung aus dem Türkischen (Cloudflare Workers AI), vom Autor nicht geprüft. Türkisches Original lesen

← Beiträge

NetRadar für Omarchy Linux: Schneller, unprivilegierter lokaler Netzwerkscanner und Geräteradar

Bewertung —

Die Veröffentlichung des NetRadar-Plugins mit Quickshell und Rust-Kern, das ohne Root-Rechte das lokale Netzwerk in Sekunden kartiert, mithilfe der unprivilegierten Schnittstellen des Linux-Kernels und POSIX getnameinfo.

· 5 Min. Lesezeit
Inhalt

Zusammenfassung: NetRadar ist ein Omarchy-Plugin, das Geräte im lokalen Netzwerk findet, ohne Root-Rechte zu verlangen. Der Artikel beschreibt, wie die Erkennung über die Nachbarschaftstabelle des Kernels, mDNS-Auslösung und getnameinfo funktioniert, die Herstellererkennung anhand des MAC-Präfixes, Ping- und Dienstprüfungen, die Sicherheitsmaßnahmen und die Nutzung sowohl als obere Leiste als auch als Desktop-Anwendung.

In modernen Heim- und Büronetzwerken sind Dutzende intelligente Geräte, Telefone, Tablets, Fernseher, Einplatinencomputer und IoT-Geräte gleichzeitig verbunden. Für die meisten Linux-Nutzer ist es jedoch oft ein mühsamer Prozess, eine Antwort auf die Frage zu finden: „Welche Geräte befinden sich gerade in meinem lokalen Netzwerk, wo ist mein Gateway und zu welchen Hardwareherstellern gehören diese Geräte?“

Traditionell greift man für diesen Bedarf zu schweren CLI-Werkzeugen, die ein Terminal öffnen und sudo nmap -sn 192.168.1.0/24 oder ähnliche Raw Sockets erzeugen, CAP_NET_RAW erfordern und Systemrechte erzwingen. In der Desktop-Umgebung fehlte eine leichte, sichere und elegante Lösung, die mit einem Klick in der oberen Leiste (Bar Widget) sofort den Netzwerkstatus, die Anzahl verbundener Geräte, IP/MAC-Zuordnungen und Hardwarehersteller anzeigt.

Um diesen Bedarf zu decken, freue ich mich, das Projekt NetRadar vorzustellen, das wir für das Omarchy-Linux-Desktop-Ökosystem entwickelt haben.

NetRadar ist ein modernes Desktop-Radar, das Ihr lokales Netzwerk mit einem Klick sichtbar macht – mit der flüssigen Wayland-Oberfläche von Quickshell 4.0, der leistungsstarken Engine mit Rust-Kern (netradar-engine), dem Prinzip des Betriebs ohne Root/unprivilegiert und der integrierten IEEE-OUI-Datenbank zur Hardware-Herstellererkennung.

1. Unprivilegierte (rootlose) Erkennungsarchitektur

Die grundlegendste Regel, damit ein Netzwerkscanner in einer Desktop-Umgebung sicher läuft, ist, dass er keine Rechteerhöhung (sudo, pkexec, setuid oder CAP_NET_RAW) im System erfordert.

NetRadar nutzt die unprivilegierten Benutzerraum-Schnittstellen des Kernels maximal aus:

  • Kernel-Nachbarschaftstabelle (ip -j neigh & /proc/net/arp): Die ARP- und Nachbarschaftseinträge, die der Linux-Kernel über die Netzwerkschnittstellen auflöst, werden im JSON-Format ausgewertet.
  • Harmlose mDNS-/UDP-Auslösung: Damit die Geräte im Netzwerk in der Nachbarschaftstabelle aktuell bleiben, werden unprivilegierte UDP-Pakete an die standardmäßigen lokalen Multicast-Ports (5353 mDNS / 137 NetBIOS) gesendet, wodurch die ARP-Auflösung des Kernels ausgelöst wird.
  • Sicheres Reverse-DNS mit POSIX getnameinfo: Die Hostnamen der Geräte werden innerhalb von Sekunden über getnameinfo auf libc-Ebene und den lokalen /etc/hosts-Cache aufgelöst.

2. Integrierte IEEE-OUI-Herstellererkennung

Die Geräte im Netzwerk nur mit komplizierten IP- (192.168.1.42) oder MAC-Adressen (AC:71:2E:...) aufzulisten, ist aus Sicht der Benutzererfahrung unzureichend.

NetRadar enthält eine in die Engine eingebettete, schnelle OUI-Präfixtabelle (Organizationally Unique Identifier):

  • Durch sofortiges Abgleichen der ersten 3 Bytes der MAC-Adresse wird der Hersteller des Geräts erkannt (Apple, Samsung, Intel, Google, Xiaomi, Huawei, Amazon, Raspberry Pi, Espressif IoT, TP-Link, MikroTik, Cisco, VMware usw.).
  • Der Hardwaretyp wird automatisch kategorisiert: Router, Computer (PC), Smartphone (Phone), Internet der Dinge (IoT) oder Smart-TV (TV).
  • In der Oberfläche werden kategoriespezifische visuelle Symbole und farbliche Hervorhebungen zugewiesen.

3. White-Hat-Dienstprüfung und Schnellzugriff

NetRadar ist nicht nur ein passiver Beobachter, sondern bietet auch praktische Funktionen, die die lokale Netzwerkverwaltung erleichtern:

  • Live-Latenz-(Ping-)Proben: Für jedes Gerät wird die Umlaufzeit (RTT) in Millisekunden gemessen und der Erreichbarkeitsstatus mit grünen/orangen Anzeigen dargestellt.
  • Prüfung der Verwaltungsdienste: Die standardmäßigen Verwaltungsports der Geräte (80 HTTP, 443 HTTPS, 8080 WebUI, 22 SSH, 53 DNS, 445 SMB) werden mit nicht invasiven TCP-Handshakes und einem kurzen Timeout von 130 Millisekunden geprüft.
  • Weboberfläche mit einem Klick öffnen: Öffnet das Webverwaltungsfeld für Ihren Router oder Ihr Modem direkt in Ihrem Standardbrowser.
  • SSH mit einem Klick starten: Startet eine SSH-Sitzung direkt über das Terminal foot zu Geräten wie Servern oder Raspberry Pis, bei denen ein offener Port erkannt wurde.
  • Wayland-Zwischenablage-Integration: Sobald auf eine IP- oder MAC-Adresse geklickt wird, wird sie mit wl-copy in die Zwischenablage kopiert und auf dem Bildschirm wird eine sofortige Benachrichtigung angezeigt.

4. Einhaltung von Sicherheits- und Verteidigungsstandards

NetRadar wurde in Übereinstimmung mit den Sicherheitsprinzipien von Omarchy Linux entwickelt:

  1. Alte Prozessisolierung: Alle externen Systembefehle werden mit cmd.process_group(0) in einer unabhängigen Prozessgruppe, mit bereinigten Umgebungsvariablen (PATH=/usr/bin:/bin, LC_ALL=C) und O_NONBLOCK-Pipe-Lesevorgängen ausgeführt.
  2. Begrenzter Puffer und Speicherobergrenze: Die Lesevorgänge der Prozess-Pipe sind auf eine Obergrenze von 64 KiB (MAX_BUFFER_CAP = 64 * 1024) begrenzt, die persistenten Zustandsdateien auf eine Obergrenze von 1 MiB (MAX_REGISTRY_FILE_SIZE = 1024 * 1024). Speicherverbrauch und DoS-Angriffe werden verhindert.
  3. Schutz vor Argumentinjektion: IP-Adressen werden streng durch Ipv4Addr-Validierung geprüft. An die Befehle ping und ssh wird der Argumentabschluss -- übergeben, der Flag-Manipulation verhindert.
  4. Beschränkung auf private Subnetze (CIDR Bounding): Scan- und Port-Abfragevorgänge sind strikt auf RFC 1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), RFC 3927 (Link-Local) und Loopback-Adressen beschränkt. Das Senden von Paketen an öffentliche Internetadressen wird verhindert.
  5. Atomare Speicherung im Modus 0600: Geräte-Aliase und die Liste vertrauenswürdiger Geräte werden in Verzeichnissen mit 0700-Berechtigungen und in Dateien mit 0600-Berechtigungen atomar über .tmp_* gespeichert, wobei symbolische Links (Symlinks) strikt abgelehnt werden.
  6. XSS- und Markup-Schutz: Alle dynamischen Texte in der Quickshell/QML-Oberfläche werden mit der Angabe textFormat: Text.PlainText verarbeitet.

5. Dualer Modus

NetRadar ist für zwei verschiedene Nutzungsszenarien optimiert:

  • Quickshell Top-Bar-Widget (Panel.qml): Ein Zähler-Badge in der oberen rechten Leiste des Desktops, der die Anzahl aktiver Geräte anzeigt, sowie ein Schnellradar-Menü, das sich beim Anklicken öffnet.
  • Desktop-Anwendung (netradar-dashboard, shell.qml): Ein umfangreiches Kontrollpanel mit Kategorie-Filter-Chips (Alle, Router, Computer, Telefone, IoT), einer Suchleiste und Anzeigen für den aktuellen Netzwerkverkehr (RX/TX-Raten).

6. Installation und Verwendung

Kompilieren aus dem Quellcode

# Depoyu klonlayın
git clone https://github.com/ozdil/omarchy-netradar.git
cd omarchy-netradar

# Motoru derleyin
cargo build --release --locked

# İkili dosyaları kurun
install -Dm755 target/release/netradar-engine ~/.local/bin/netradar-engine
install -Dm755 netradar ~/.local/bin/netradar
install -Dm755 netradar-dashboard ~/.local/bin/netradar-dashboard
install -Dm755 netradar-status ~/.local/bin/netradar-status
install -Dm644 netradar.desktop ~/.local/share/applications/netradar.desktop

CLI-Verwendung

# Tam JSON tarama çıktısı (otomasyon ve betikler için)
netradar-engine --scan

# Tek satır insan okunabilir durum özeti
netradar-status

# Belirli bir cihazın gecikmesini ölçme
netradar-engine --ping 192.168.1.1

# Bir cihaza kalıcı takma ad (alias) atama
netradar-engine --set-alias "AC:71:2E:95:48:56" "Ana Ofis Router"

# Grafiksel kontrol panelini başlatma
netradar

Meine Bewertung

  • Für den Netzwerkscan ist kein Root nötig: Die Nachbarschaftseinträge, die der Kernel ohnehin führt, reichen für die meisten Anforderungen aus.
  • Der Scan ist auf private Netze beschränkt: Es wird nicht über RFC 1918 und Link-Local hinausgegangen.
  • Eingaben werden sicher an Befehle übergeben: Die IP-Validierung und der ---Terminator verhindern Argument-Injection.

Quellen