| The
best thing you can do to "see" it yourself is to grab a packet
sniffer which you will conveniently find in our download section and
try to capture a few packets while you're ftp'ing to a site.
Both
Ports - 20 and 21
- Active FTP Mode
I have
included a screenshot from my workstation which clearly shows the 2
ports used. In the example, I have ftp'ed into ftp.cdrom.com. Please
click here to view
the full picture

Only
Port 21 - Passive FTP Mode
Now, in
the next picture I ftp'ed into my NetWare server here at home and guess
what .... Only Port 21 was used ! Here
is the screen shot:

Please
click here to view
the full picture.
Let
me explain why this is happening:
FTP has
two separate modes of operation: Active
and Passive. You will use either one depending
on whether your PC is behind a firewall.
Active
Mode FTP
Active
mode
is usually used when there isn't any firewall between you and the FTP
server. In such cases you have a direct connection to the Internet.
When you (the client) try to establish a connection to a FTP
server, your workstation includes a second port number (using the PORT
command) that is used when data is to be exchanged, this is known as
the Data Channel.
The FTP
server then starts the exchange of data from its own port
20 to whatever port was designated by your workstation (in the
screen shot, my workstation used port 1086), and because the server
initiated the communication, it's not controlled by the workstation
client. This can also potentially allow uninvited data to arrive to
your computer from anywhere posing as a normal FTP
transfer. This is one of the reasons Passive FTP
is more secure.
Passive
Mode FTP
Using normal
or passive FTP, a client begins a session
by sending a request to communicate through TCP port
21, the port that is conventionally assigned for this use at
the FTP server. This communication is known
as the Control Channel connection.
At this
point, a PASV
command is sent instead of a PORT command.
Instead of specifying a port that the server can send to, the PASV
command asks the server to specify a port it wishes to use for the Data
Channel connection. The server replies on the Control Channel with the
port number which the client then uses to initiate an exchange on the
Data Channel. The server will thus always be responding to client-initiated
requests on the Data Channel and the firewall can correlate these.
It's simple
to configure your client FTP program to use either Active
or Passive FTP.
For example, in Cute FTP, you can set your program to use Passive FTP
by going to FTP--> Settings --> Options and then selecting the
"Firewall" tab :
If you
remove the above options, then your workstation will be using (if possible)
Active FTP mode, and I say "if possible" cause if your
already behind a firewall, there is probably no way you will be using
Active FTP, so the program will automatically
change to Passive FTP mode.
So let's
have a look at the process of a computer establishing an FTP
connection with a server: .
........ ..........
The above
is assuming a direct connection to the FTP server. For simplicity reasons,
we are looking at the way the FTP connection is created and not worring
if it's a Passive or Active FTP connection. Since FTP is using TCP as
a transport, you would expect to see the 3-way
handshake. Once that is completed and there is data
connection established, the client will send its
login name and then password. After the authentication
sequence is finished and the user is authenticated
to the Server, it's allowed access and is ready to leach
the site dry :)
Finally,
below are the most commonly used FTP commands:
ABOR: abort
previous FTP command
LIST and
NLST: list file and directories
DELE: delete
a file
RMD: remove
a directory
MKD: create
a directory
PWD: print
current working directory ( show you which dir. your at)
PASS: send
password
PORT: request
open port number on specific IP address/port number
QUIT: log
off from server
RETR: retrieve
file
STOR: send
or put file
SYST: identity
system type
TYPE: specify
type (A for ASCII, I for binary)
USER: send
username
And that
just about complete's our analysis on the FTP protocol ! |