hacking contest

hacking exploits security forum
hacking
compliance articles
upgrade backup exec
information security consultant

Full Version: What Is Fxp?
manu
Well,

I found a question in this site about FXP ..!! Then thought to write something about it as it may be useful to other guys to if I posted it here in Beginners section. Oh yeah, let me write.

FXP stands for File eXchange Protocol and it let's you copy files from one FTP-server to another using a FXP-client.... normally you transfer files using the FTP protocol between your machine and a FTP-server, and the maximum transfer speed depends on the speed of your Internet connection (e.g. 56k, cable or T1). ...When transferring files between two remote hosts using a FXP client, the maximum transfer speed does not depend on you're connection but only on the connection between the two host, which is usually much faster than your own connection... Because it's a direct connection you won't be able to see the progress or the transfer speed of the files...

Although FXPing is very easy, there are a few restrictions to transferring the files...

Both hosts have to support PASV mode and must allow PORT commands to foreign hosts... The FXP client tells the destination FTP to listen for a connection by sending a "PASV" command... The source FTP then connects to the data port reported by the destination server (after a success PASV command). ..So all the data goes directly from the source to the destination FTP and both servers do only report status messages on fail/success to the FTP client... At least one of the two remote hosts has to be a non-NT FTP-server, like a UNIX host or anything else... You can move files from a non-NT FTP-server to a NT FTP-server and the other way around, but you CANNOT FXP from a NT to an NT... That is my knowledge.. One way to get by this limitation is using a Wingate..

Correct me if i am wrong, Plz

Manu smile.gif
Gotisch
QUOTE
Both hosts have to support PASV mode and must allow PORT commands to foreign hosts


actually there are plenty of fxp clients that allow fxp transfer with only one server having PASV support.


QUOTE
At least one of the two remote hosts has to be a non-NT FTP-server, like a UNIX host or anything else... You can move files from a non-NT FTP-server to a NT FTP-server and the other way around, but you CANNOT FXP from a NT to an NT...


This it not true either. you can fxp from a windows (NT) system to another. the only thing that matters is the server software used.
manu
@Gotisch

Thank you bossss...!! I want to test with the info you gave, Thanks for correcting me.. biggrin.gif

Manu smile.gif
Gotisch
merely posting what i know tongue.gif
wouterke
yes you can fxp between 2 NT machines, fxping just has to be allowed in the configuration of the server software smile.gif
prunie
lol , id , wouterke has a very good point here ... you can fxp from almost every system to every system... aslong as you got the right soft installed fot it ...
Greetz and have a lot of fun ..
Prunie just loves FXP !
touk
QUOTE
The source FTP then connects to the data port reported by the destination server (after a success PASV command).


Let's say I'm using flashfxp. Which port will be opened to transfer data ? Is there a way to choose this port ?

Fine reading, it remembers me old anons ftps and the wingate quest smile.gif
FuzZyBeeR
You can fxp through 2 non fxpable ftp's .. connect through a wingate .. it's not a direct connection then anymore



normal fxp

ftp ------------- ftp


fxp with a wingate


ftp ---- wingate --- ftp


The speed of fxping then depends on the speed of the wingates..

Guess the wingate downloads it from the first ftp and uploads it to the second ftp

ldm
in servu fxp is normally enabled by default

for disable, check "Block FTP-bounce attacks" in Settings/General tab



sorry for my english
Tyrano
QUOTE
What is FXP?

FXP is the short term for server-to-server-copy. This is something mentioned in RFC 959 and it can be seen as an FTP feature above other file transfer protocols. Although it is part of the FTP RFC it's disabled by default on most FTP servers. But since the FTP cluster relies on FXP for file replication you should know how to enable it.

Usually you take your FTP client connect to the server to up- or download files. In normal FTP you do this using the PORT command to allocate a second TCP/IP connection for the data transmission. Using the PORT command means that you (better: your client software) creates a listening server socket waiting for the FTP server to connect to send or receive the file in question. Just to make this clear: on data transmission client and server change their roles, the FTP server connects to the client.

But there is also the PASV FTP command introducing the "famous" passive mode. Most FTP clients use this as default data transfer mode because it's called "firewall friendly" and, really worse, some client rely on the server supporting passive mode transfers. Well, what is this "passive mode"? In the passive transfer mode the client sends the PASV command to the server which then allocates the listening socket. The client connects to this port and data transmission starts. Passive mode is basically the opposite (speaking in terms of "listening" and "connecting" to the active mode (using PORT) above: the client connects again to the server.

So far for your daily FTP server usage. But the FTP RFC also mentions a second scenario. You connect with your FTP client to two servers at the same time telling one to receive and the other to send the file. Then one of the servers connects to the other, data transmission starts and finally you have copied a file from server-A to server-B without copying it first to your computer. This is server-to-server-copy or FXP mode.

How does this work? The scheme is not really difficult. The FTP client sends first server-A the PASV command telling him to allocate a listening socket. When the client knows server-A's interface and port for the data socket this is send to server-B. The next thing is that server-B receives the RETR command and server-A the STOR. This way server-A will copy the file directly to server-B. That's all.

Now that we know that FXP is really cool, what is so bad about it that it's disabled in the average FTP server? This is a good question. In the FXP command scheme above server-B connects to server-A just because the client (running from computer-C) tells it to do so. The port on server-A should be a listening FTP data port, but what if it's not? Assume we tell server-B to connect on the HTTP port of server-D and server-B starts sending a 1GB file as HTTP request to server-D. server-B can never know (or be really sure) that it's not being abused for something that is known as "bounce attack". He will happily send the 1GB file thinking that it's really doing a perfect job.

Bounce attacks (and FXP too) can be prevented by doing an additional check in the FTP server. If the IP-number in the PORT command does not match the client's IP-number the PORT command is rejected. More information about bounce attacks can be found under http://www.cert.org/advisories/CA-1997-27.html.

And what is now the solution to this? On one hand we have the useful FXP mode and on the other the possible bounce attack. My personal position is that as long as users log in to my FTP server using their account (not anonymous!) they can do whatever they want. Giving someone an account means always that this can be abused. But thank to server logfiles I can find out which user it was and what he did. For anonymous users I would never enable FXP, no way.


http://www.awk-scripting.de/cluster/fxp-problem.html

smile.gif
Gotisch
QUOTE(touk @ Oct 6 2004, 12:09 PM)
Let's say I'm using flashfxp. Which port will be opened to transfer data ? Is there a way to choose this port ?

Fine reading, it remembers me old anons ftps and the wingate quest smile.gif
*



you can't choose the port of a "PASV" connection. only from a "PORT". To change the ports used by a "PORT" connection in Flashfxp go to options->preference. Then switch to the tab :Proxy/Firewall/ident and under the topic firewall set "limit local portrange to:" the value you want.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.

 
Invision Power Board © 2001-2005 Invision Power Services, Inc.