[Xitami] FTP-passive mode
Andreas Zieritz
xitami@lists.xitami.org
Thu, 04 Oct 2001 08:23:11 +0200
Ewen McNeill wrote:
> In message <3BBB0C12.FC98DF56@sovik.no>, Andreas Zieritz writes:
> >We have moved our Xitami Webserver behind a firewall (see
> >www.smoothwall.org) and we do have some troubles with the FTP part. What
> >we have found out is that some FTP clients do have a problem in
> >establishing a communication with the Xitami server. FTP-clients
> >operating in passive mode are not experiencing these problems.
> >We have opened ports 20 and 21 on the firewall. Are there any other
> >ports that should be open? Any hints concerning passive mode?
>
> I'm a little puzzled as to what your problem is; you say "FTP-clients
> operating in pasive mode are not experiencing these problems", but also
> say "Any hints concerning passive mode?".
>
> The FTP protocol is _really_ not designed to go through firewalls (it
> was designed well before anyone had even thought of the need for
> firewalls, let alone actually designed a firewall). You should probably
> seriously consider whether you can do what you want with HTTP instead of
> FTP.
>
> If you still want to use FTP you need to remember that there are two
> modes of FTP:
> 1. Active FTP: control connection open from client->server; if the client
> wants to download something, the client picks a port number at its,
> end and the server connects to that port, and sends the file. If the
> client wants to upload something the server picks a port number at
> its end, and the client connects to that. (Ie, the connection for
> transfering the data always opens in the connection the data is being
> sent.)
>
> 2. Passive FTP: control connection open from client->server; if the
> client wants to download something the server picks a port number at
> its end, and tells the client to connect there to "pull" the file
> back. If the client wants to upload something the server picks a
> port number at its end, and the client connects to that. (Ie, the
> connection for transfering data is always opened from the client to
> the server.)
>
> Using passive mode usually gets around most problems with firewalls at
> the _client_ end. But it causes complications if there is also a
> firewall at the _server_ end.
>
> There are two basic complications caused by passive FTP when the server
> is behind a firewall:
> 1. The port that is picked by the FTP server may not be allowed through
> the firewall. Since the FTP server needs to allow more than one
> connection at a time, this may mean multiple ports need to be allowed
> through the firewall.
>
> 2. If the firewall is doing NAT, the address given out to connect to by
> the FTP server will probaly be an internal address, not an external
> one, and thus not usable.
>
> The main complication caused by active FTP is at the client end, where
> their firewall may not allow an incoming connection to whatever port the
> client picks; but many firewalls can handle this automatically.
>
> Debugging this sort of thing generally requires snooping on the TCP/IP
> traffic at one or both ends, and figuring out what each end is trying to
> do.
>
> Generally it's all too hard; and if you're going to have your server
> behind a firewall you probably want to avoid using FTP.
>
> Ewen
>
> --
> Ewen McNeill, Technical Consultant, iMatix Corporation www.imatix.com
>
> --
> Xitami Users Mailing List -- For Xitami support
> To unsubscribe: http://lists.xitami.org/mailman/listinfo/xitami
Thank you very much for this very useful lesson, Ewen!
--
Servus,
Andreas
------------------------
Andreas Zieritz
Siviling. Svein Sovik AS
Fantoftveien 42
N-5072 Bergen
http://www.sovik.no