GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Portumleitungen unter Linux mit ncat einrichten

Wie Sie aus meinen beiden vorherigen Artikeln wissen, Linux-Fehlerbehebung:Einrichten eines TCP-Listeners mit ncat und Der ncat-Befehl ist ein problematisches Sicherheitstool für Linux-Systemadministratoren, netcat ist ein Befehl, der sowohl dein bester Freund als auch dein schlimmster Feind ist. Und dieser Artikel verewigt diese Tatsache weiter mit einem Blick darauf, wie ncat bietet eine nützliche, aber potenziell gefährliche Option zum Erstellen eines Portumleitungslinks. Ich zeige Ihnen, wie Sie einen Port- oder Site-Weiterleitungslink einrichten, damit Sie Wartungsarbeiten an einer Site durchführen und gleichzeitig Kunden bedienen können.

Das Szenario

Sie müssen eine Apache-Installation auf server1 warten , aber Sie möchten nicht, dass der Dienst für Ihre Kunden offline angezeigt wird, bei denen es sich in diesem Szenario um interne Unternehmensbenutzer des Arbeitsportals handelt, das die für Ihre Remotebenutzer geleisteten Arbeitsstunden aufzeichnet. Anstatt sie darüber zu informieren, dass das Portal für sechs bis acht Stunden offline sein wird, haben Sie sich entschieden, einen Weiterleitungsdienst zu einem anderen System, server2, zu erstellen , während Sie sich um server1 kümmern 's Bedürfnisse.

Diese Methode ist eine einfache Möglichkeit, einen bestimmten Dienst am Leben zu erhalten, ohne an DNS- oder Unternehmens-Firewall-NAT-Einstellungen herumzubasteln.

Server1:Port 8088

Server2:Port 80

Die Stufen

Um diese Site/Dienstweiterleitung einzurichten, müssen Sie die folgenden Voraussetzungen erfüllen:

  1. ncat-nmap Paket (sollte standardmäßig installiert werden)
  2. Ein funktionsfähiges Duplikat von server1 -Portal auf server2
  3. Root oder sudo Zugriff auf Server 1 und 2 für Firewall-Änderungen

Wenn Sie diese Hürden überwunden haben, ist es an der Zeit, diese Änderung umzusetzen.

Die Umsetzung

Konfigurieren von ncat verwendet auf diese Weise benannte Pipes, was eine effiziente Möglichkeit darstellt, diese bidirektionale Kommunikationsverbindung herzustellen, indem in eine Datei in Ihrem Home-Verzeichnis geschrieben und daraus gelesen wird. Es gibt mehrere Möglichkeiten, dies zu tun, aber ich werde diejenige verwenden, die für diese Art der Portweiterleitung am besten funktioniert.

Erstellen Sie die benannte Pipe

Das Erstellen der benannten Pipe ist mit dem mkfifo einfach Befehl.

$ mkfifo svr1_to_svr2

$ file svr1_to_svr2
svr1_to_svr2: fifo (named pipe)

Ich habe die file verwendet Befehl, um zu demonstrieren, dass die Datei vorhanden ist und es sich um eine benannte Pipe handelt. Dieser Befehl ist nicht erforderlich, damit der Dienst funktioniert. Ich habe die Datei svr1_to_svr2 genannt , aber Sie können einen beliebigen Namen verwenden. Ich habe diesen Namen gewählt, weil ich von server1 weiterleite zu server2 .

Erstellen Sie den Weiterleitungsdienst

Formal wurde dies als Einrichten eines Listener-to-Client-Relays bezeichnet , aber es macht ein wenig mehr Sinn, wenn Sie sich das in Firewall-Begriffen vorstellen, daher mein "Forward"-Name und meine Beschreibung.

$ ncat -k -l 8088 < svr1_to_svr2 | ncat 192.168.1.60 80 > svr1_to_svr2 &

Wenn Sie diesen Befehl eingeben, kehren Sie zu Ihrer Eingabeaufforderung zurück, da Sie den Dienst mit & in den Hintergrund versetzt haben . Wie Sie sehen können, werden die benannte Pipe und der Dienst beide als Standardbenutzer erstellt. Ich habe die Gründe für diese Einschränkung in meinem vorherigen Artikel, Der Befehl ncat ist ein problematisches Sicherheitstool für Linux-Systemadministratoren, diskutiert.

Aufschlüsselung der Befehle

Der erste Teil des Befehls, ncat -k -l 8088 , richtet den Listener für Verbindungen ein, die normalerweise vom Apache-Dienst auf server1 beantwortet würden . Dieser Dienst ist offline, also erstellen Sie einen Listener, um diese Anfragen zu beantworten. Das -k Option ist die Keep-Alive-Funktion, was bedeutet, dass sie mehrere Anfragen bedienen kann. Das -l ist die Höroption. Port 8088 ist der Port, den Sie nachahmen möchten, nämlich der des Kundenportals.

Der zweite Teil, rechts vom Pipe-Operator (| ), akzeptiert und leitet die Anfragen an 192.168.1.60 auf Port 80 weiter. Die benannte Pipe (svr1_to_svr2 ) verarbeitet die Daten ein- und aus.

Die Verwendung

Nachdem Sie Ihr Relais eingerichtet haben, ist es einfach zu bedienen. Richten Sie Ihren Browser auf das ursprüngliche Host- und Kundenportal, das http://server1:8088 ist . Dadurch wird Ihr Browser automatisch auf server2 umgeleitet auf Port 80. Ihr Browser zeigt immer noch die ursprüngliche URL und den ursprünglichen Port an.

Ich habe festgestellt, dass zu viele sich wiederholende Anfragen dazu führen können, dass dieser Dienst mit einer defekten Pipe-Meldung auf server1 fehlschlägt . Dies beendet den Dienst nicht immer, kann es aber. Mein Vorschlag ist, ein Skript einzurichten, um nach dem forward zu suchen Befehl, und wenn es nicht existiert, starten Sie es neu. Sie können nicht prüfen, ob svr1_to_svr2 vorhanden ist Datei, weil sie immer existiert. Denken Sie daran, dass Sie es mit dem mkfifo erstellt haben Befehl.

Der Vorbehalt

Die Kehrseite dieses ncat Die Fähigkeit besteht darin, dass ein Benutzer den Datenverkehr an seine eigene doppelte Site weiterleiten und Benutzernamen und Passwörter sammeln kann. Der böswillige Akteur müsste den aktuellen Port-Listener/Webdienst beenden, damit dies funktioniert, aber dies ist auch ohne Root-Zugriff möglich. Systemadministratoren müssen durch Überwachung und Warnung wachsam bleiben, um diese Art von Sicherheitslücke zu vermeiden.

Die Zusammenfassung

Der ncat Der Befehl hat so viele Verwendungsmöglichkeiten, dass er einen Artikel pro Funktion benötigt, um jede zu beschreiben. Dieser Artikel hat Ihnen das Konzept des Listener-to-Client-Relays oder Service-Forwarding, wie ich es nenne, vorgestellt. Es ist nützlich für kurze Wartungsperioden, sollte aber nicht für permanente Weiterleitungen verwendet werden. Für diese sollten Sie DNS- und Unternehmens-Firewall-NAT-Regeln bearbeiten, um Anfragen an ihre neuen Ziele zu senden. Sie sollten sich daran erinnern, alle ncat auszuschalten Zuhörer, wenn Sie mit ihnen fertig sind, da sie ein System für Kompromisse öffnen. Erstellen Sie diese Dienste niemals mit dem Root-Benutzerkonto.

[ Machen Sie die Verwaltung Ihres Netzwerks einfacher als je zuvor mit Network automation for everyone, einem kostenlosen Buch von Red Hat. ]


Linux
  1. Befehls-Tutorial für Linux-Dienste für Anfänger (mit Beispielen)

  2. Linux-Kopfbefehl mit Beispielen

  3. Linux-Fehlerbehebung:Einrichten eines TCP-Listeners mit ncat

  4. JQ-Befehl in Linux mit Beispielen

  5. Ncat-Linux-Befehl

Echo-Befehl in Linux mit Beispielen

Linux-IP-Befehl mit Beispielen

Tr-Befehl in Linux mit Beispielen

15 Linux-PS-Befehl mit Beispielen

Linux-CD-Befehl mit Beispielen

Linux-chkconfig-Befehl mit Beispielen