NetBIOS
NetBIOS (Network Basic Input/Output System) ist eine Programmierschnittstelle (API), die grundlegende Netzwerkdienste in lokalen Netzwerken bereitstellt. Ursprünglich 1983 von Sytec für IBM entwickelt, ermöglicht NetBIOS die Kommunikation zwischen Computern über einfache, menschenlesbare Namen anstelle von IP-Adressen. In Windows-Netzwerken war NetBIOS lange Zeit die Grundlage für die Datei- und Druckerfreigabe.
Geschichte und Entwicklung
NetBIOS entstand in der Frühphase der PC-Vernetzung. 1983 entwickelte Sytec die Schnittstelle im Auftrag von IBM für das IBM PC Network. Die ursprüngliche Implementierung war auf kleine Netzwerke mit maximal 72 Geräten ausgelegt. 1985 erweiterte Microsoft die Spezifikation für sein MS-Net-Netzwerkprodukt.
Mit der Zeit wurde NetBIOS über verschiedene Transportprotokolle implementiert. Das ursprüngliche NetBIOS Frames Protocol (NBF) arbeitete direkt auf der Sicherungsschicht (OSI-Schicht 2) und war daher nicht routingfähig. Erst mit NetBIOS over TCP/IP (NBT), standardisiert 1987 in RFC 1001 und RFC 1002, wurde die Nutzung über geroutete Netzwerke möglich.
Funktionsweise von NetBIOS
NetBIOS stellt drei grundlegende Dienste bereit: den Namensdienst, den Datagrammdienst und den Sitzungsdienst. Diese Dienste ermöglichen die Identifikation von Computern, den verbindungslosen Nachrichtenaustausch sowie den zuverlässigen Datentransfer zwischen Anwendungen.
NetBIOS-Namensdienst
Der Namensdienst (NetBIOS Name Service, NBNS) ermöglicht es Computern, sich mit einem eindeutigen Namen im Netzwerk zu registrieren und andere Computer über deren Namen zu finden. NetBIOS-Namen sind maximal 15 Zeichen lang, wobei ein 16. Byte den Namenstyp angibt. Der Dienst verwendet UDP-Port 137.
Die Namensauflösung erfolgt entweder per Broadcast (alle Geräte im lokalen Netzwerksegment werden gefragt) oder über einen zentralen WINS-Server (Windows Internet Name Service). WINS speichert eine Datenbank mit NetBIOS-Namen und deren zugehörigen IP-Adressen.
NetBIOS-Datagrammdienst
Der Datagrammdienst ermöglicht verbindungslose Kommunikation zwischen Computern. Er eignet sich für Broadcasts und kurze Nachrichten, bei denen eine Zustellgarantie nicht erforderlich ist. Der Dienst nutzt UDP-Port 138.
NetBIOS-Sitzungsdienst
Der Sitzungsdienst stellt eine verbindungsorientierte Kommunikation bereit. Er baut eine zuverlässige Verbindung zwischen zwei Computern auf, über die größere Datenmengen übertragen werden können. Der Dienst arbeitet auf TCP-Port 139 und bildet die Grundlage für die Datei- und Druckerfreigabe in älteren Windows-Netzwerken.
NetBIOS-Ports im Überblick
Für die Kommunikation verwendet NetBIOS over TCP/IP drei fest definierte Ports. Diese Ports sind in Firewalls häufig ein Thema, da sie potenzielle Sicherheitsrisiken darstellen können:
| Port | Protokoll | Dienst | Funktion |
|---|---|---|---|
| 137 | UDP | NBNS | Namensregistrierung und -auflösung |
| 138 | UDP | Datagramm | Verbindungslose Kommunikation, Broadcasts |
| 139 | TCP | Session | Verbindungsorientierte Datenübertragung, SMB |
NetBIOS und SMB
NetBIOS ist eng mit dem Server Message Block (SMB)-Protokoll verknüpft. SMB ist das Protokoll, das die eigentliche Datei- und Druckerfreigabe in Windows-Netzwerken ermöglicht. Historisch lief SMB ausschließlich über NetBIOS (Port 139). Seit Windows 2000 kann SMB jedoch auch direkt über TCP/IP auf Port 445 kommunizieren, ohne NetBIOS zu benötigen.
Diese Entwicklung ist wichtig: Moderne Windows-Netzwerke nutzen SMB Direct (Port 445) und benötigen NetBIOS nicht mehr zwingend. In Umgebungen mit Active Directory übernimmt DNS die Namensauflösung anstelle von NetBIOS und WINS.
Transportprotokolle für NetBIOS
Im Laufe der Zeit wurde NetBIOS über verschiedene Transportprotokolle implementiert. Diese Flexibilität ermöglichte den Einsatz in unterschiedlichen Netzwerkumgebungen:
- NetBIOS Frames (NBF): Das ursprüngliche Protokoll, auch bekannt als NetBEUI. Es arbeitete direkt auf der Sicherungsschicht und war nicht routingfähig. Microsoft unterstützte NBF bis Windows 2000.
- NetBIOS over IPX/SPX (NBX): Ermöglichte NetBIOS über Novells IPX/SPX-Protokoll, das in den 1990er Jahren verbreitet war.
- NetBIOS over TCP/IP (NBT): Die heute noch relevante Implementierung, standardisiert in RFC 1001 und RFC 1002. Sie ermöglicht die Nutzung über geroutete IP-Netzwerke.
In modernen Netzwerken ist NBT die einzige noch verwendete Variante. Die anderen Transportprotokolle sind praktisch ausgestorben.
Sicherheitsaspekte
NetBIOS gilt aus Sicherheitsperspektive als problematisch. Die Broadcasts zur Namensauflösung können von Angreifern abgefangen werden. Zudem ermöglicht NetBIOS das Ausspionieren von Netzwerkfreigaben und Computernamen. In Unternehmensnetzwerken gelten folgende Best Practices:
- NetBIOS über TCP/IP deaktivieren, wenn Active Directory und DNS vorhanden sind
- Ports 137-139 in der Firewall blockieren für externen Zugriff
- SMB Direct (Port 445) anstelle von SMB über NetBIOS verwenden
- WINS-Server nur in Legacy-Umgebungen betreiben, in denen alte Anwendungen NetBIOS benötigen
NetBIOS in der Praxis
Obwohl NetBIOS als veraltet gilt, begegnet es dir in der Praxis noch häufig. Viele ältere Anwendungen und Systeme setzen NetBIOS voraus. Als Fachinformatiker für Systemintegration wirst du bei der Administration von Windows-Netzwerken mit NetBIOS konfrontiert - sei es bei der Fehleranalyse, der Migration von Altsystemen oder der Konfiguration von Firewalls.
Mit dem Befehl nbtstat unter Windows kannst du NetBIOS-Informationen anzeigen. Der Befehl nbtstat -n zeigt die lokal registrierten NetBIOS-Namen, während nbtstat -A [IP-Adresse] die NetBIOS-Namen eines entfernten Computers abfragt.
# Lokale NetBIOS-Namen anzeigen
nbtstat -n
# NetBIOS-Namen eines Remote-Computers abfragen
nbtstat -A 192.168.1.100
# NetBIOS-Cache anzeigen
nbtstat -c