Scratch-Container: Offene Ports ohne Netzwerk-Tools finden

Teilen
Scratch-Container: Offene Ports ohne Netzwerk-Tools finden
Bild: dz (erzeugt mit KI-Unterstützung).

Wenn man als Administrator Fehler in einer IP-Anwendung sucht, gehört die Überprüfung der offenen Netzwerkports zu den Standardaufgaben. Im Server-Alltag greift man dafür zu Kommandozeilen-Tools wie netstat oder dem modernen ss (Socket Statistics). Beispielsweise gibt ss -tulpn eine Liste aller lauschenden Dienste mitsamt den zugehörigen Ports aus.

Doch in vielen Docker-Containern fehlen nicht nur diese Diagnose-Tools, sondern auch Paketmanager wie apt (für Debian/Ubuntu) oder apk (für Alpine Linux), sodass man nichts nachinstallieren kann. Das sind Distroless-Images oder Scratch-Container, die nichts enthalten außer der kompilierten Anwendung und ihren Abhängigkeiten. Das spart Speicherplatz und minimiert die Angriffsfläche.

Wenn in einem solchen restriktiven Umfeld etwas nicht funktioniert, und unklar ist, welche Anwendungen überhaupt auf welchen Ports lauschen, muss man ein wenig tiefer in die Trickkiste greifen – und das geht dann sogar überraschend einfach: Denn Linux schreibt elementare Netzwerkparameter in die Datei /proc/net/tcp und die kann man mit dem Kommando cat auslesen, das in fast jedem Container verfügbar sein dürfte:

cat /proc/net/tcp

Für Netzwerkfragen ist die zweite Spalte mit der Überschrift local_address bedeutsam. Darin sind im Hexadezimalformat Paare von Einträgen aufgeführt und zwar getrennt durch Doppelpunkte: Zuerst folgt die IP-Adresse, dann der Port.

Wenn ein Dienst so konfiguriert ist, dass er Anfragen auf allen Netzwerkschnittstellen entgegennimmt (was in Containern die Standard-Konfiguration ist), lauscht er auf der IP-Adresse 0.0.0.0. Im Hex-Format entspricht das 00000000:.

Nach dem Doppelpunkt folgen vier weitere Hex-Zeichen, nämlich die Ports. Hier sind einige Beispiele für typische Web-Ports:

  • 0050 = Port 80 (Standard HTTP)
  • 0BB8 = Port 3000 (oft genutzt von Node.js oder React)
  • 1F90 = Port 8080 (oft genutzt von Proxies oder Tomcat-Servern)
  • 0FA6 = Port 4006

Für die Umrechnung eignen sich natürlich gängige Taschenrechner mit Programmierermodus. Doch falls im Container eine rudimentäre Bash-Shell existiert, kann man den Hex-Wert auch darin umrechnen lassen, etwa mit dem Kommando echo $((0x1F90)).

Weiterlesen

Börsenblick: ASML meldet volle Kapazitäten bis 2028

Börsenblick: ASML meldet volle Kapazitäten bis 2028

Der massive Infrastrukturausbau im Bereich der Künstlichen Intelligenz befeuert beim weltweit führenden Halbleiter-Ausrüster ASML eine Rekordnachfrage. Das im niederländischen Veldhoven ansässige Unternehmen meldet anlässlich seiner Quartalszahlenveröffentlichung eine Nachfrage, die seine Produktionskapazitäten bei weitem übersteigt. Börsianer, die auf Tech-Werte wie TSMC, Nvidia, Micron oder SK Hynix setzen, dürften sich

Von Dusan Zivadinovic