Wie leite ich FTP-Anfragen an eine andere IP weiter?

7

Ich habe ein VMware: 10.10.10.1, ein linux in VMware (Guest): 10.10.10.128und ein honeypot on Guest: 10.10.10.15und mein Windows (Host): 192.168.1.11. Ich kann FTP-Anfragen direkt von meinem Hostan senden honeypotund die Verbindung wird hergestellt. Jetzt möchte ich FTP-Anfragen an senden Guestund diese an meine weiterleiten honeypot. Ich stelle diese Regeln iptablesauf Guest:

iptables -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to-destination 10.10.10.15:21
iptables -t nat -A POSTROUTING -p tcp -s 10.10.10.15 --sport 21 -j SNAT --to-source 10.10.10.128
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Aber ich kann nicht das gewünschte Ergebnis erzielen. Was kann ich machen?

Hinweis : Wenn das honeypotläuft, kann ich pinges von der Host, aber ich kann es nicht pingvon der Guestund das Ergebnis ist:

Destination Host Unreachable

Wo ist mein falsch?

Das bin ich
quelle
Was genau ist das Ergebnis im Moment? Falsche Seite, keine Verbindung? Haben Sie die IP-Weiterleitung aktiviert? echo 1 > /proc/sys/net/ipv4/ip_forward.
Thomas
Ja, ich habe die IP-Weiterleitung aktiviert. Das Ergebnis ist FTP-Verbindung abgelehnt. Ich öffne auch den FTP-Port des Gastes. Aber wenn ich versuche, Gast zu nmap, ist das Ergebnis, dass alle Ports geschlossen sind! @ Thomas
ThisIsMe
Hm, gerade in einer VM-Umgebung getestet und die iptables-Regeln haben bei mir funktioniert. Ich habe mit einer Port 80-Umleitung getestet. Ist die eth0Schnittstelle die richtige? Heutzutage haben Sie vielleicht auch zB ens0oder ähnliches. Sie können es auch versuchen iptables -t nat -A POSTROUTING -j MASQUERADE.
Thomas
Ja, die Schnittstelle ist eth0.
ThisIsMe
Können Sie erklären, was Sie tun, das für Sie funktioniert? Was ist das Ergebnis von 'nmap YOUR_GUEST_IP'?
ThisIsMe

Antworten:

1

Wenn Sie eine FTP-Anfrage weiterleiten möchten, können Sie Port 21 nicht einfach weiterleiten. FTP verwendet zwei oder mehr Verbindungen:

  • 1 Verbindung zum Senden des Befehls an Port 21
  • 1 oder mehr Verbindungen auf variabler Portnummer, die vom FTP-Server zur Übertragung der Daten festgelegt wurden

Wenn Sie also FTP-Verbindungen weiterleiten möchten, müssen Sie in Ihrer Serverkonfiguration nachsehen, welchen Portbereich der FTP-Server zum Akzeptieren von Clientverbindungen verwendet (vorausgesetzt, Ihr Client stellt im "passiven Modus" eine Verbindung zum FTP-Server her).
Sie müssen also Port 21 + alle im Bereich "Passiver Port" definierten Ports weiterleiten.

Dies reicht jedoch nicht aus , da der FTP-Server den FTP-Client anweist, an welche IP er sich wenden soll, um die Datenübertragungsverbindung zu öffnen. In der Regel ist dies die Server-IP.
Der FTP-Server kennt den Server nicht, den Sie zum Weiterleiten der Verbindung verwenden.

Daher sollten Sie Ihrem FTP-Server auch mitteilen, dass seine "öffentliche IP" nicht die IP des FTP-Servers ist, sondern die IP des Servers, der die FTP-Verbindung vom Client akzeptiert (und weiterleitet).

Max
quelle
Wenn ich den FTP-Port im Gast öffne, kann ich ihn über den Host verbinden. Aber wenn ich honeypot starte und Regeln für iptables festlege, kann ich keine Verbindung herstellen. Kannst du meine Notizfrage beantworten? Ich denke, genau das kann mein Problem lösen.
ThisIsMe
@ThisIsMe Entschuldigung, ich bin kein Experte für Linux oder Iptables. Für mich sah es nur so aus, als ob das Hauptproblem darin bestand, wie FTP funktioniert. Wenn der FTP-Client den passiven Modus verwendet, können Sie keinen funktionierenden FTP-Server haben, indem Sie nur einen einzelnen TCP-Port weiterleiten.
Max