Debian 13: Unerwarteter Port 5355 im täglichen Health-Check

Debian 13: Unerwarteter Port 5355 im täglichen Health-Check

Der tägliche Health-Check meldet einen unerwarteten öffentlichen Port 5355 - die Ursache ist LLMNR von systemd-resolved.

Ausgangslage: Health-Check meldet einen unerwarteten öffentlichen Port 5355

Ziel: Ursache des offenen Ports identifizieren, nicht benötigten Dienst gezielt deaktivieren und Ergebnis verifizieren

Getestet: Debian 13 (trixie) (2026-08-18)

Alle Beispiele mit fiktiven Daten: Server beispielserver.example.com.

Ausgangslage

Am Morgen meldete der tägliche Health-Check eines frisch eingerichteten Debian-13-Servers:

[WARN] unexpected public port 5355 listening

Port 5355 hatten wir bei der Einrichtung nicht geöffnet und für den Server auch nicht vorgesehen.

Die erste Frage war deshalb nicht, wie wir den Port schließen, sondern: Welches Programm hat ihn überhaupt geöffnet?

1. Listener und Prozess identifizieren

ss zeigt mit den passenden Optionen nicht nur die offenen Listener, sondern auch den zugehörigen Prozess:

sudo ss -lntup | grep ':5355'

Auf dem Server ergab das:

udp   UNCONN 0 0 0.0.0.0:5355 0.0.0.0:* users:(("systemd-resolve",pid=384,fd=11))
udp   UNCONN 0 0 [::]:5355    [::]:*    users:(("systemd-resolve",pid=384,fd=13))
tcp   LISTEN 0 4096 0.0.0.0:5355 0.0.0.0:* users:(("systemd-resolve",pid=384,fd=12))
tcp   LISTEN 0 4096 [::]:5355    [::]:*    users:(("systemd-resolve",pid=384,fd=14))

Damit war der Verursacher klar: systemd-resolved.

Der Dienst lauschte auf Port 5355 sowohl über TCP als auch UDP und jeweils auf allen IPv4- und IPv6-Adressen.

2. Ursache prüfen

Port 5355 wird von LLMNR (Link-Local Multicast Name Resolution) verwendet.

Zunächst haben wir geprüft, ob LLMNR auf dem Server ausdrücklich konfiguriert worden war:

grep -R '^[[:space:]]*LLMNR' \
    /etc/systemd/resolved.conf \
    /etc/systemd/resolved.conf.d/ 2>/dev/null

Keine Ausgabe - wir hatten dafür keine eigene Konfiguration angelegt.

Der tatsächliche Zustand von systemd-resolved ließ sich mit resolvectl prüfen:

resolvectl status

Auszug:

Global
         Protocols: +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
  resolv.conf mode: stub

Link 2 (ens18)
    Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
         Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

LLMNR war also aktiv, obwohl wir es bei der Servereinrichtung nicht selbst konfiguriert hatten.

3. LLMNR gezielt deaktivieren

systemd-resolved selbst wird weiterhin für die DNS-Auflösung benötigt. Deshalb haben wir nicht den ganzen Dienst abgeschaltet, sondern nur die nicht benötigte LLMNR-Funktion.

Dafür ein eigenes Drop-in-Verzeichnis anlegen:

sudo mkdir -p /etc/systemd/resolved.conf.d

Dann beispielsweise /etc/systemd/resolved.conf.d/10-disable-llmnr.conf anlegen:

[Resolve]
LLMNR=no

Anschließend systemd-resolved neu starten:

sudo systemctl restart systemd-resolved

4. Konfiguration verifizieren

Zuerst erneut den Resolver-Status prüfen:

resolvectl status

Danach zeigte der Server:

Global
         Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
  resolv.conf mode: stub

Link 2 (ens18)
    Current Scopes: DNS
         Protocols: +DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported

LLMNR ist jetzt sowohl global als auch auf dem Netzwerkinterface deaktiviert.

Entscheidend ist aber der tatsächliche Listener. Deshalb zum Abschluss noch einmal:

sudo ss -lntup | grep ':5355'

Keine Ausgabe mehr - Port 5355 ist geschlossen.

ℹ️ Info
Die lokalen DNS-Listener von systemd-resolved bleiben dabei erhalten. Mit LLMNR=no wird nicht die DNS-Auflösung deaktiviert, sondern nur LLMNR.

Der Health-Check dahinter

Der Fund kam nicht aus einem gezielten Scan nach LLMNR. Der tägliche Health-Check vergleicht öffentliche Listener mit den Ports, die auf dem Server erwartet werden.

Dadurch fiel Port 5355 überhaupt erst auf:

[WARN] unexpected public port 5355 listening

Der Check soll künftig zusätzlich die Firewall-Regeln berücksichtigen. Dann lässt sich besser unterscheiden, ob ein unerwarteter Listener durch die Firewall bereits blockiert wird oder tatsächlich über einen freigegebenen Port erreichbar ist.

Den verwendeten Debian Health Check findet ihr im öffentlichen Lazy Admin Tools Repository. Das Projekt wird zusätzlich auf GitHub gespiegelt.

Ergebnis

Health-Check-Warnung → Listener mit ss identifiziert → systemd-resolved als Ursache gefunden → LLMNR mit resolvectl bestätigt → gezielt deaktiviert → Port 5355 verschwunden.

Kein großes Tutorial über systemd-resolved oder LLMNR, sondern ein kleiner Fund aus dem täglichen Serverbetrieb - und genau der Grund, warum der Health-Check nicht nur bekannte Dienste, sondern auch unerwartete öffentliche Listener im Blick behält.

Michael

beschäftigt sich seit über vier Jahrzehnten mit technischen Systemen, ihren Abhängigkeiten und Schnittstellen – heute besonders mit resilienten Systemen, digitaler Unabhängigkeit und dem kontrollierten Einsatz von KI.
Mehr über Michael →

Offenes Wissen braucht Menschen

Wir entwickeln Ideen, teilen Wissen, und lassen Open-Sorce-Software und -Werkzeuge entstehen. Mit deiner Unterstützung hilfst du uns, diese Arbeit langfristig fortzuführen.
Mitwirken und unterstützen →
Debian 13: Unerwarteter Port 5355 im täglichen Health-Check
← Nächster Artikel OpenBSD: Pending Patches im täglichen Health-Check