Reverse Proxy mehrere interne FTP-Server

Reverse Proxy mehrere interne FTP-Server

Ich habe einen Reverse-Proxy für http mit Apache mod_proxy wie folgt eingerichtet:

  • Klient>http:/abc.domain1.com>Reverse-Proxy-Server>192.168.50.1 (Interner Server)

  • Klient>http:/def.domain2.com/>Reverse-Proxy-Server>192.168.50.2 (ein anderer interner Server)

Jetzt möchte ich dasselbe für FTP erreichen:

  • Klient>ftp:/abc.domain1.com/>Reverse-Proxy-Server>ftp:/192.168.50.1 (interner FTP-Server)

  • Klient>ftp:/def.domain2.com/>Reverse-Proxy-Server>ftp:/192.168.50.2 (ein anderer interner FTP-Server)

Auf beiden internen FTP-Servern läuft vsftpd. Bitte teilen Sie mir das Setup für Redhat/Centos mit.

Grund: Mir steht nur eine öffentliche IP zur Verfügung.

Antwort1

Sie können Delegate als Reverse-FTP-Proxy verwenden:

http://www.delegate.org/delegate/Manual.htm?serv_FTP

Ein Benutzername wie Benutzer@Server wird in Benutzer und Server zerlegt und zum Zuordnen verschiedener Server verwendet.

Antwort2

Bei der Einrichtung des gewünschten Ziels treten zwei Probleme auf:

  • anders als für http sind Reverse-Proxys für FTP eine eher seltene Spezies und die, die es gibt (wie etwa die alte Suse-Proxysuite), sind – um höflich zu bleiben – nicht gerade ein Vergnügen, sie einzurichten und damit zu arbeiten.
  • Im Gegensatz zu http 1.1 gibt es bei FTP keine Bestimmungen fürvirtuelles Hosting, was bedeutet, dass ein Server den Hostnamen, mit dem Sie kommunizieren möchten, nicht sehen kann.

Hier sind zwei mögliche alternative Lösungen, die relativ einfach einzurichten sind und jeweils ihre eigenen Vorteile und Einschränkungen haben

  1. die beiden Backend-Server auf unterschiedlichen Ports bedienen (zBftp://abc.domain1.com/Und ftp://def.domain2.com:8021/. ziemlich einfach einzurichten und kein Reverse-Proxy erforderlich, nur einige zusätzliche Ports zum Weiterleiten. Nachteil: Eine der Domänen muss die URL einschließlich der Portnummer verwenden, was für Sie möglicherweise ein Problem darstellt, möglicherweise aber auch nicht.
  2. FTP-Serverist ein kommerzieller, aber preisgünstiger Server für FTP, SFTP usw., der sich auf verschiedene Arten ganz einfach als Frontserver für mehrere Backends einrichten lässt:
    1. als Verzeichnisse, was zu einem Setup wieftp://abc.domain1.com/abcUndftp://abc.domain1.com/def.
    2. ein spezifisches Backend basierend auf dem Benutzerprofil anzeigen,ftp://abc.domain1.com/würde je nachdem, wer sich anmeldet, völlig anders aussehen.

Wir haben uns für Option 2 entschieden, da sie sich im täglichen Betrieb als die flexibelste und zuverlässigste erwiesen hat. Als Bonus können Sie für den Datenverkehr zu Ihren Backends andere Protokolle als FTP verwenden, z. B. SFTP.

Sie haben eine voll funktionsfähige Demoversion, die Sie herunterladen und testen können (soweit ich mich erinnere, ist sie auf 5 gleichzeitige Verbindungen beschränkt).

Einziger möglicher Nachteil: Da es sich um ein Java-Programm handelt, ist sein Platzbedarf (sowohl auf der Festplatte als auch im Speicher) größer als der eines normalen FTP-Servers.

Antwort3

Wie gesagt, Sie können Ihren HTTP-Proxy nicht zum Routing von FTP verwenden.

Und der einfachste Weg ist die Verwendung von SFTP. Sie können es aber auch mit MobaXterm tun, einer All-in-One-Fernverbindungssoftware, die viele Funktionen kostenlos und zu einem fairen Preis bietet.

Letzte Vorgehensweise: Erstellen Sie einen Ordner/Server und richten Sie rsync so ein, dass nur das Frontend als FTP verwendet wird.

verwandte Informationen