AA_net_colinbroug_sxc_1266923.jpg

© Colin Broug, sxc.hu

Einfache Datenübertragung zwischen Hosts mit Netcat

Netzwerker

Die Unix-Bordmittel erweisen sich in Sachen Netzwerkkommunikation als recht flexibel. Bei Bedarf setzen Sie mit einfachen Mitteln sogar einen kleinen Server auf.

Als Schweizer Taschenmesser unter den Netzwerk-Tools gilt schon seit 1996 Netcat [1]. Es ist etwas in die Jahre gekommen und lässt daher inzwischen einige Funktionen vermissen, wie etwa das verschlüsselte Übertragen von Daten oder das immer populärer werdende IPv6.

So existieren inzwischen etliche neue Implementationen, wie Ncat [2] oder Cryptcat [3], die einen beträchtlich erweiterten Umfang an Funktionen mitbringen. Ncat, das Netcat für das 21. Jahrhundert, kommt von den Machern des populären Netzwerk-Scanners Nmap. Cryptcat stammt aus der Schmiede mehreren Entwicklern rund um Farm9.

Installation

Sowohl Netcat (oft auch nc) als auch Ncat und Cryptcat finden sich in den Repositories der meisten Distributionen. Bei Bedarf spielen Sie die Tools also mithilfe des Paketmanagers ein. Einige Distributionen installieren zumindest Netcat sogar standardmäßig. Ncat zählt zum Fundus von Nmap gehört und findet seinen Weg auf die Platte, sobald Sie diesen Portscanner installieren.

Suchen und Finden

Wie bereits oben erwähnt, eignen sich die in diesem Beitrag vorgestellten Werkzeuge für ein breites Spektrum an Aufgaben. Netcat dient beispielsweise als Werkzeug zur Diagnose, wenn sich ein Rechner im Netz anders verhält als erwartet. Mit dem Befehl nc -vz Host 1-1024 klopfen Sie alle Ports bis 1024 ab. Auf diesen laufen die meisten bekannten Dienste, wie Mail, FTP oder SSH.

Findet das Programm einen offenen Port, quittiert es dies mit einer entsprechenden Nachricht. Die Portnummer dient dann als Grundlage für weitere Analysen. Verbindet sich Netcat direkt mit einem offenen Port, plaudern viele der dahinter laufenden Anwendungen Name und Versionsnummer aus.

Mit Netcat haben Sie nicht nur die Möglichkeit, zu prüfen, welche Dienste hinter einem Port laufen, sondern zusätzlich, ob sie korrekt funktionieren. Angenommen, ein Mailclient verweigert seinen Dienst und konfrontiert den Nutzer mit Nachrichten wie Der SMTP-Server hat keine korrekte Begrüßung gesendet. Ein Überprüfen des Ports zeigt zunächst, dass dieser offen steht. Dann wäre der nächste Schritt, den Mailserver direkt zu kontaktieren und die Begrüßung manuell vorzunehmen (Abbildung 2).

Abbildung 1: Netcat bei der Fehlerdiagnose.

Dabei zeigt sich dann, ob der Datenaustausch mit dem Server reibungslos funktioniert oder eine zu scharf eingestellte Firewall, eine falsche Konfiguration oder eine fehlerhafte Implementation des SMTP-Handshakes im Mail-Client als Ursache infrage kommt.

Allrounder

Möchten Sie Daten von einem Rechner auf einen anderen übertragen oder mit einem anderen Anwender via Kommandozeile plaudern, hilft Netcat ebenfalls weiter. Der Befehl nc -l -p 11111 veranlasst Netcat, in den Server-Modus zu gehen und auf Port 11111 zu lauschen.

Verbindet sich jetzt ein Client via nc Host> 11111 von einem anderen Rechner mit dem fraglichen Port, erscheinen die Eingaben auf dem einen Rechner als Ausgabe auf dem Anderen, und zwar so lange, bis eine der beiden Netcat-Instanzen endet. Um auf einem Port kleiner oder gleich 1024 zu lauschen, müssen Sie Netcat mit Root-Rechten starten.

Auf diesem Weg können Sie auch Dateien mithilfe von Netcat übers Netzwerk kopieren: Dazu gilt es lediglich jeweils die Standardeingabe und die Standardausgabe umzubiegen. Um das zu bewerkstelligen erweitern Sie den Befehl auf dem Server um > Ausgabedatei, während Sie auf dem Client < Eingabedatei anhängen.

Mit ein einigen Hilfsmitteln wie etwa Tar und Pipes kopieren Sie auf diesem Weg sogar ganze Verzeichnisse. Vertauschen Sie die Ein- und Ausgabe, sorgen Sie auf diese Weise für einen Transfer der Daten vom Server zum Client. Das ermöglicht es, mit wenig Aufwand blitzschnell einfache Server einzurichten.

Netcat stellt so beispielsweise Webseiten bereit oder verschickt Audio- und Video-Dateien. Dabei stört es jedoch, dass sich Netcat beendet, sobald das Übertragen der Daten abgeschlossen ist. Dem schieben Sie einen Riegel vor, indem Sie Netcat in ein kleines Skript verpacken, das sofort eine neue Instanz startet, sobald eine sich beendet (Listing 1).

Listing 1

#! /bin/bash
while true ; do
  nc -l -p 11111 < Ausgabedatei
done

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 11/2017: Server für Daheim

Digitale Ausgabe: Preis € 8,50
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 2 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...
Backup mit KUP unter Suse 42.3
Horst Schwarz, 24.09.2017 13:16, 3 Antworten
Ich möchte auch wieder unter Suse 42.3 mit Kup meine Backup durchführen. Eine Installationsmöglic...
kein foto, etc. upload möglich, wo liegt mein fehler?
kerstin brums, 17.09.2017 22:08, 5 Antworten
moin, zum erstellen einer einfachen wordpress website kann ich keine fotos uploaden. vom rechne...
Arch Linux Netzwerkkonfigurationen
Franziska Schley, 15.09.2017 18:04, 0 Antworten
Moin liebe Linux community, ich habe momentan Probleme mit der Einstellung des Lan/Wlan in Arc...