markusw3400
Goto Top

2 FTP-Server hinter einer IP

Hallo,

nachdem ich gerne experimentiere stoße ich manchmal an meine Grenzen und bitte euch um Hilfe. face-smile

Ich möchte 2 FTP-Server hinter einer IP betreiben, dabei soll das System anhand der SubDomain entscheiden auf welchen der beiden Server zugegriffen wird. (Leider liefert mir Tante G und die Forensuche nicht das gewünschte Ergebnis)

Dazu möchte ich euch kurz erläutern wie mein System aussieht.

1 Internetanschluss mit fixer IP,

1 Router NETGEAR R6300,

1 Proxyserver Ubuntu 14.10 (Dieser soll nach meiner Vorstellung auch als Interner DNS-Syserver dienen) Interne IP 10.0.1.20,

2 IBM x3550 Server Ubuntu 14.10 (Diese sind als Webserver konfiguriert mit Apache2 und vsftpd) Interne IP 10.0.1.30, 10.0.1.31,

Auf dem Proxyserver habe ich bereits Squid3 und ftp-proxy installiert. Leider ist mir mein vorhaben noch nicht gelungen.

Zur Zeit geht es mir nur um das richtige Port-forderwaring für FTP-Anfragen auf Port 21. HTTP/HTTPS-Anfragen werden zur Zeit alle auf 10.0.1.30 weitergeleitet und das soll auch so bleiben.

Mein Plan wäre wie folgt:

Ich möchte die FTP-Server über ftp1.meinedomain.com -> 10.0.1.30 und ftp2.meinedomain.com -> 10.0.1.31 jeweils über den Port 21 ansprechen.

Ein Bekannter bekommt einen Login und ich möchte seine Daten auf ftp1 speichern. Daher soll er in seinen FTP-Client ganz normal als Server ftp1.meinedomain.com mit einem Benutzer und einem Passwort angeben und dann tatsächlcih auf meinem ftp1-Server landen.

Wenn ich die Daten eines Benutzers auf ftp2 speichern möchte, soll dieser eben als Server ftp2.meinedomain.com eingeben.

Die Subdomains ftp1.meinedomain.com und ftp2.meinedomain.com verweisen beide auf meine öffentliche IP. Daher kommt die Anfrage auf Port 21 zu meinen Router, der leitet die Anfrage intern an 10.0.1.20 weiter. 10.0.1.20 soll dann anhand der Domain erkennen ob die Anfrage für 10.0.1.30 oder .31 gedacht ist. Daraus resultiert für mich, dass ich 10.0.1.20 als Reverse Proxy einsetzen sollte.

Die Anfragen sollen über den Port 20/21 laufen. Einen anderen Port zu verwenden ist für mich leider keine Option. Auch bin ich nicht gewillt, eine zweite öffentliche IP-Adresse zu bezahlten. (Ich kann mir nicht vorstellen, dass Hostingprovider für jeden Server eine eigene öffentliche IP haben.)

Mir stellt sich die Frage, ob ich das so realisieren kann und wenn ja ob ich dann mit Squid3 auf dem richtigen Weg bin? Hat jemand einen Gedankenanstoß, eine Idee, Vorschläge für mich?

Ich bin für jeden Rat dankbar.

Content-Key: 264868

Url: https://administrator.de/contentid/264868

Printed on: April 27, 2024 at 00:04 o'clock

Member: kaiand1
kaiand1 Feb 28, 2015 at 18:00:08 (UTC)
Goto Top
Hi
Du hast 1 Öffentliche IP Adresse wodurch du nur 1x davon den Port jeweils belegen kannst.
Damit du beide FTP nutzten kannst brauchst du eine 2te IP Adresse (Öffentliche IP vom Provider) oder legst ein FTB auf einen anderen Port.
Oder lässt die Leute über ein VPN zu dir in dein Netz (ggfs getrenntes im VPN).
Das was du meinst mit Subdomains und Interne IP Adresse angeben geht schonmal gar nicht.
Du kannst bei Domains im Internet nur Öffentlich IPs angeben die so erreichbar sind.
Alles was hinter deinem Router an IPs vergeben sind kanns du dort nicht angeben.
Member: aqui
aqui Feb 28, 2015 at 18:01:57 (UTC)
Goto Top
Das ist nicht möglich !
Einen anderen Port zu verwenden ist für mich leider keine Option
Geht auch nicht !
FTP supportet KEIN Port Transaltion, auch nicht im passive Mode so das das über eine NAT Firewall nicht möglich ist !
Session und Port Verhalten hier:
http://slacksite.com/other/ftp.html

Besser ist du benutzt SCP für sowas, da du die Verwendung eines Komamndo und Datenports dort nicht hast. Mal abgesehen davon das es gleichzeitg verschlüsselt ist !
Member: MarkusW3400
MarkusW3400 Feb 28, 2015 at 18:13:53 (UTC)
Goto Top
Hi Danke für eure Antworten!

das mit den Subdomains war wohl ein Missverständnis.
Die Subdomains verweisen schon auf meine öffentliche IP. Nachdem die Anfrage daher kommt und vom Router an den Reverse Proxy übergeben wird soll dieser bei einem internen DNS nachfragen wohin die Domain gehört. Der DNS soll dann die richtige interne IP zurück liefern und der Reverse proxy soll die Anfrage an die IP weiterleiten.

Mit einer zweiten öffentlichen IP kann ich ehrlich gesagt nicht ganz leben, da ich mir nicht vorstellen kann, dass große Hostingprovider für jeden Webserver eine eigene öffentliche IP haben.

Ist es nicht möglich dass die Abfrage auf diesem Weg funktioniert?
FTP-Client über Subdomain & Port 21 -> Router stellt zum Reverse Proxy durch -> Reverse Proxy fragt den internen DNS wo die Domain hin gehört -> DNS liefert den Proxy die richtige Interne IP -> Reverse Proxy stellt die Anfrage durch
Member: aqui
aqui Feb 28, 2015 at 18:26:30 (UTC)
Goto Top
Ist es nicht möglich dass die Abfrage auf diesem Weg funktioniert?
Wenn der Reverse Proxy mit FTP umgehen kann und wenn der remote Client passive FTP kann, dann kann das funktionieren.
Passive FTP ist zwingend wenn du mit Port Forwarding arbeitest, was du ja wegen der NAT Firewall und dem dahinterliegende Reverse Proxy machen musst .
Member: MarkusW3400
MarkusW3400 Feb 28, 2015 at 18:31:23 (UTC)
Goto Top
Vielen Dank!

Welche Programme sind dafür unter Ubuntu notwendig?
Member: MarkusW3400
MarkusW3400 Feb 28, 2015 at 21:14:49 (UTC)
Goto Top
Hallo noch einmal! face-smile

langsam komme ich der Sache näher.

Ich habe nun auf dem Reverse Proxy 10.0.1.20 Apache2 und folgende Module installiert.

a2enmod proxy
a2enmod proxy_http
a2enmod proxy_ajp
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_connect
a2enmod proxy_html
a2enmod proxy_ftp_module
Wenn ich nun auf dem Reverse Proxy Virtuelle Hosts erstelle kann ich über

ServerAdmin sharad@example.com
ServerName www.meineDomain.com
ServerAlias meineDomain.com
ProxyPass / http://10.0.1.8/
ProxyPassReverse / http://10.0.1.8/


ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
intern die Website von einem anderen Server holen. Das ist genau was ich möchte. Nur eben nicht für den Port 80 sondern für den Port 21.

Jetzt dache ich mir, dass ich in der Datei "nano /etc/apache2/ports.conf" folgendes hinzufüge:

<IfModule proxy_ftp_module>
Listen 21
</IfModule>
und in der Datei "nano /etc/apache2/sites-available/000-default.conf" auch noch den Eintrag für Port 21 hinzufüge:

<VirtualHost *:21>
ServerAdmin sharad@example.com
ServerName ftp1.meineDomain.com
ServerAlias meineDomain.com

ProxyPass / ftp://10.0.1.8
ProxyPassReverse / ftp://10.0.1.8

</VirtualHost>
Wenn ich mich jetzt von außen über Filezilla versuche einzuloggen, dann läuft die Anmeldung bis zum Timeout.

Wieso? Habe ich noch etwas vergessen?

Hoffentlich kann mir jemand helfen, ich glaube ich bin 2 Meter vor meinem Ziel.

Übrigens, bin neu in diesem Forum. Wie kann ich CodeTags verwenden?
Member: BirdyB
BirdyB Feb 28, 2015 at 22:53:05 (UTC)
Goto Top
Hallo Markus,

ich möchte deine Hoffnungen ja ungern trüben, aber mWn taugt der ftp-proxy vom Apache nur dazu, den Inhalt eines FTP-Servers über HTTP abrufbar zu machen. Sollte das anders sein, lasse ich mich gern eines Besseren belehren...
Ein Lösungsweg könnte jedoch sein, den einen Server in den anderen zu mounten und dann über die (virtuelle) Ordnerstruktur den Zugriff auf die Server zu realisieren. Möglichkeit B wäre eben ein VPN. Unterschiedliche Ports hast du ja bereits als Lösung ausgeschlossen.

Beste Grüße!


Berthold
Member: Lochkartenstanzer
Lochkartenstanzer Mar 01, 2015 updated at 06:54:04 (UTC)
Goto Top
Moin,

Die Thematk wurde hier im Forum im letzten Jahr gefühlt zigmal diskutiert. Ein einfaches google, sag mir was zu ftp reverse proxy liefert in Sekundenbruchteilen genügend Lösungen.

lks
Member: MarkusW3400
MarkusW3400 Mar 01, 2015 at 09:12:17 (UTC)
Goto Top
Hallo Berthold,

danke für deine Antwort.

Ja du hast Recht, dass mein Lösungsansatz über Apache nicht ganz das ist was ich gern möchte. Ich habe auf der Apache-Website darüber gelesen, dass damit nur die GET-Methode funktioniert. Sprich darüber kann ich mir maximal den Inhalt ansehen.

Mein Vorhaben müsste doch über Squid realisierbar sein oder?

Leider bringen meine Bemühungen bei der Tante-G und heir im Forum nicht die gewünschten Ergebnisse.
Suche ich nach den falschen Begriffen? (FTP reverse proxy, ubuntu FTP reverse proxy, ubuntu squid FTP reverse proxy usw.)
Überall wird nur ein HTTP Reverse Proxy behandelt. face-sad

Hast du vielleicht einen guten Rat, mit welchem Programm ich dies realisieren könnte? Und ggf. Links dazu?

Alles Liebe!

Markus Wilhelm
Member: MarkusW3400
MarkusW3400 Mar 01, 2015 at 09:14:05 (UTC)
Goto Top
Hallo Lochkartenstanzer,

Danke auch für deine Antwort!

Danke für deine Such-Hilfe. Ich werde mir die Suchergebnisse durch sehen. Eventuell habe ich einfach schlecht gesucht.

Liebe Grüße
Markus
Member: fognet
fognet Mar 01, 2015 at 09:42:15 (UTC)
Goto Top
Hänge doch einfach ein :21 an den ProxyPass an: ProxyPass / ftp://10.0.1.8:21

LG PPR
Member: brammer
brammer Mar 02, 2015 at 10:11:22 (UTC)
Goto Top
Hallo,


@ppr-dev
Hänge doch einfach ein :21 an den ProxyPass an: ProxyPass / ftp://10.0.1.8:21

und beim 2ten FTP Server???


@MarkusW3400

kannst du nicht einfach auf einem FTP Server 2 Verzeichnisse anlegen?

Username und Password dazu.. gut ist...
brammer