PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ftp+masquerade



morpheus2001
30.08.02, 15:39
hi,

ich habe probleme mit dem masquerading für ftp clienten.
auf meinem server läuft inet, und iptables.
ich habe versuch, ftp per masquerade weiterzugeben:



iptables -A POSTROUTING -t nat -p tcp --dport 20:21 -j MASQUERADE


Das ganze funktioniert auch bis zum "passive mode".

Log von Flash FXP beim versuch auf den rpmfind.net FTP zuzugreifen:



WinSock 2.0
Connecting to ftp.rpmfind.net
Connected to ftp.rpmfind.net Port 21
220 Linux 2.4 TUX 2.0 FTP server welcomes you!
USER anonymous
230-There are currently 76 users logged in, out of 10000 maximum.
230-Bandwidth served by TUX currently: 578 KB/sec
230 TUX Guest login ok.
SYST
215 UNIX Type: L8, Linux/2.4 TUX/2.0
REST 100
350 Restart offset OK.
REST 0
350 Restart offset OK.
CWD /linux/redhat/updates/7.1/en/os/
250 CWD command successful.
PWD
257 "/linux/C/redhat/updates/7.1/en/os" is current directory.
TYPE A
200 Type set to I.
PASV
227 Entering Passive Mode (216,254,0,38,73,152)
Data Socket Error: Connection failed (Connection timed out)


Kann mir jemand weiterhelfen? Was hat das mit dem passiven FTP auf sich?
gruss

daniel

Jasper
30.08.02, 16:44
Original geschrieben von morpheus2001
ich habe probleme mit dem masquerading für ftp clienten.
auf meinem server läuft inet, und iptables.
ich habe versuch, ftp per masquerade weiterzugeben:



iptables -A POSTROUTING -t nat -p tcp --dport 20:21 -j MASQUERADE


Das ganze funktioniert auch bis zum "passive mode".

...
PASV
227 Entering Passive Mode (216,254,0,38,73,152)
Data Socket Error: Connection failed (Connection timed out)
[/CODE]

Kann mir jemand weiterhelfen? Was hat das mit dem passiven FTP auf sich?

warum nur masquerade für port 20/21? klappt leider nicht, weil bei PASV der server dir einen port !=20/21 für den datenkanal zurückgibt.

wenn es keinen zwingenden grund für dieses eingeschränkte masquerading gibt, mach ein vollständiges masquerading. damit funktioniert schon mal passives ftp. lade dann nich die module ip_conntrack, ip_conntrack_ftp, ip_nat_ftp und du hast auch actives ftp.

zu ftp gibts es zahlreiche RFCs, such mal nach 'ftp rfc'.

-j

morpheus2001
30.08.02, 17:17
hmmm faddamt. sowas ähnliches hab ich mir gedacht.
ok werd ich wohl alles masqueraden müssen.

thx
gruss

Harry
30.08.02, 20:21
Hallo Daniel,


Original geschrieben von morpheus2001
ok werd ich wohl alles masqueraden müssen.
wo ist das Problem beim Einschalten vom globalen Masquerading?

Wenn Du den Connect lediglich auf FTP einschränken willst, dann definier halt entsprechende Regeln in der filter-table und wende einfach Connection Tracking an (Module: ip_conntrack, ip_conntrack_ftp).

Übrigens: In dem aufgeführten Log hat Dir der FTP-Server seinen Datenkanal auf dem Port 38985/tcp (73,152 -> High-Byte, Low-Byte) angeboten; daran siehst Du direkt, dass es mit dem Port 20/tcp in der Masquerading-Regel alleine so nicht laufen kann.

Ein nettes HOWTO zum Connection Tracking mit iptables findest Du hier -> http://www.cs.princeton.edu/~jns/security/iptables/iptables_conntrack.html
... allerdings ist in der Doku gerade das Beispiel für FTP nicht so doll gelungen :rolleyes:

Ansonsten: http://www.netfilter.org

Harry