The File Transfer Protocol (FTP) is a standard
communication protocol
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics (computer scien ...
used for the transfer of
computer file
A computer file is a computer resource for recording data in a computer storage device, primarily identified by its file name. Just as words can be written to paper, so can data be written to a computer file. Files can be shared with and transfe ...
s from a server to a client on a
computer network
A computer network is a set of computers sharing resources located on or provided by network nodes. The computers use common communication protocols over digital interconnections to communicate with each other. These interconnections are ...
. FTP is built on a
client–server model
The client–server model is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients. Often clients and servers communicate over ...
architecture using separate control and data connections between the client and the server.
FTP users may authenticate themselves with a
clear-text sign-in protocol, normally in the form of a username and password, but can connect anonymously if the server is configured to allow it. For secure transmission that protects the username and password, and encrypts the content, FTP is often
secured with
SSL/TLS
Transport Layer Security (TLS) is a cryptographic protocol designed to provide communications security over a computer network. The protocol is widely used in applications such as email, instant messaging, and voice over IP, but its use in securi ...
(
FTPS
FTPS (also known as FTP-SSL and FTP Secure) is an extension to the commonly used File Transfer Protocol (FTP) that adds support for the Transport Layer Security (TLS) and, formerly, the Secure Sockets Layer (SSL, which is now prohibited by RFC75 ...
) or replaced with
SSH File Transfer Protocol
In computing, the SSH File Transfer Protocol (also known as Secure File Transfer Protocol or SFTP) is a network protocol that provides file access, file transfer, and file management over any reliable data stream. It was designed by the Internet E ...
(SFTP).
The first FTP client applications were
command-line programs developed before
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
s had
graphical user interface
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
s, and are still shipped with most
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
,
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
, and
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
operating systems.
Many dedicated FTP
client
Client(s) or The Client may refer to:
* Client (business)
* Client (computing), hardware or software that accesses a remote service on another computer
* Customer or client, a recipient of goods or services in return for monetary or other valuabl ...
s and automation utilities have since been developed for
desktops, servers, mobile devices, and hardware, and FTP has been incorporated into productivity applications such as
HTML editor
An HTML editor is a program for editing HTML, the markup of a web page. Although the HTML markup in a web page can be controlled with any text editor, specialized HTML editors can offer convenience and added functionality. For example, many HT ...
s and
file managers
A file manager or file browser is a computer program that provides a user interface to manage files and folders. The most common operations performed on files or groups of files include creating, opening (e.g. viewing, playing, editing or pr ...
.
An FTP client used to be commonly integrated in
web browser
A web browser is application software for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's screen. Browsers are used on ...
s, where file servers are browsed with the
URI Uri may refer to:
Places
* Canton of Uri, a canton in Switzerland
* Úri, a village and commune in Hungary
* Uri, Iran, a village in East Azerbaijan Province
* Uri, Jammu and Kashmir, a town in India
* Uri (island), an island off Malakula Islan ...
prefix "
ftp://
". Throughout 2021, the two major web browser vendors removed this ability. Support for the FTP protocol was first disabled in Google Chrome 88 in January 2021, followed by Firefox 88.0 in April 2021. In July 2021, Firefox 90 dropped FTP entirely,
and Google followed suit in October 2021, removing FTP entirely in Google Chrome 95.
History of FTP servers
The original specification for the File Transfer Protocol was written by
Abhay Bhushan and published as on 16 April 1971. Until 1980, FTP ran on
NCP
NCP may refer to:
Science and medicine
* Novel Coronavirus Pneumonia (a temporary name for COVID-19), an outbreak that was officially identified in late 2019.
* HIV-1 nucleocapsid protein 7 (NCp7), a target of zinc finger inhibitors
* Nucleosome ...
, the predecessor of
TCP/IP
The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the set of communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suit ...
.
The protocol was later replaced by a TCP/IP version, (June 1980) and (October 1985), the current specification. Several proposed standards amend , for example (February 1994) enables Firewall-Friendly FTP (passive mode), (June 1997) proposes security extensions, (September 1998) adds support for
IPv6
Internet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP), the communication protocol, communications protocol that provides an identification and location system for computers on networks and routes traffic ...
and defines a new type of passive mode.
Protocol overview
Communication and data transfer
![Passive FTP Verbindung](https://upload.wikimedia.org/wikipedia/commons/8/84/Passive_FTP_Verbindung.svg)
FTP may run in ''active'' or ''passive'' mode, which determines how the data connection is established.
(This sense of "mode" is different from that of the MODE command in the FTP protocol.)
* In active mode, the client starts listening for incoming data connections from the server on port M. It sends the FTP command PORT M to inform the server on which port it is listening. The server then initiates a data channel to the client from its port 20, the FTP server data port.
* In situations where the client is behind a
firewall
Firewall may refer to:
* Firewall (computing), a technological barrier designed to prevent unauthorized or unwanted communications between computer networks or hosts
* Firewall (construction), a barrier inside a building, designed to limit the spre ...
and unable to accept incoming TCP connections, ''passive mode'' may be used. In this mode, the client uses the control connection to send a PASV command to the server and then receives a server IP address and server port number from the server,
which the client then uses to open a data connection from an arbitrary client port to the server IP address and server port number received.
[ (Standard) File Transfer Protocol (FTP). Postel, J. & Reynolds, J. (October 1985).]
Both modes were updated in September 1998 to support
IPv6
Internet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP), the communication protocol, communications protocol that provides an identification and location system for computers on networks and routes traffic ...
. Further changes were introduced to the passive mode at that time, updating it to ''extended passive mode''.
The server responds over the control connection with
three-digit status codes in ASCII with an optional text message. For example, "200" (or "200 OK") means that the last command was successful. The numbers represent the code for the response and the optional text represents a human-readable explanation or request (e.g. <Need account for storing file>).
An ongoing transfer of file data over the data connection can be aborted using an interrupt message sent over the control connection.
FTP needs two ports (one for sending and one for receiving) because it was originally designed to operate on top of
Network Control Protocol (NCP), which was a
simplex protocol that utilized two
port addresses, establishing two connections, for two-way communications. An odd and an even port were reserved for each
application layer
An application layer is an abstraction layer that specifies the shared communications protocols and Interface (computing), interface methods used by Host (network), hosts in a communications network. An ''application layer'' abstraction is speci ...
application or protocol. The standardization of TCP and UDP reduced the need for the use of two simplex ports for each application down to one duplex port,
but the FTP protocol was never altered to only use one port, and continued using two for backwards compatibility.
NAT and firewall traversal
FTP normally transfers data by having the server connect back to the client, after the PORT command is sent by the client. This is problematic for both
NATs and firewalls, which do not allow connections from the Internet towards internal hosts.
For NATs, an additional complication is that the representation of the IP addresses and port number in the PORT command refer to the internal host's IP address and port, rather than the public IP address and port of the NAT.
There are two approaches to solve this problem. One is that the FTP client and FTP server use the PASV command, which causes the data connection to be established from the FTP client to the server.
This is widely used by modern FTP clients. Another approach is for the NAT to alter the values of the PORT command, using an
application-level gateway
An application-level gateway (ALG, also known as application layer gateway, application gateway, application proxy, or application-level proxy) is a security component that augments a firewall or NAT employed in a computer network. It allows cust ...
for this purpose.
Data types
While transferring data over the network, four data types are defined:
*
ASCII
ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because of ...
(TYPE A): Used for text. Data is converted, if needed, from the sending host's character representation to
"8-bit ASCII" before transmission, and (again, if necessary) to the receiving host's character representation, including
newline
Newline (frequently called line ending, end of line (EOL), next line (NEL) or line break) is a control character or sequence of control characters in character encoding specifications such as ASCII, EBCDIC, Unicode, etc. This character, or a ...
s. As a consequence, this mode is inappropriate for files that contain data other than ASCII.
* Image (TYPE I, commonly called
Binary
Binary may refer to:
Science and technology Mathematics
* Binary number, a representation of numbers using only two digits (0 and 1)
* Binary function, a function that takes two arguments
* Binary operation, a mathematical operation that t ...
mode): The sending machine sends each file
byte
The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable unit ...
by byte, and the recipient stores the
bytestream as it receives it. (Image mode support has been recommended for all implementations of FTP).
*
EBCDIC
Extended Binary Coded Decimal Interchange Code (EBCDIC; ) is an eight-bit character encoding used mainly on IBM mainframe and IBM midrange computer operating systems. It descended from the code used with punched cards and the corresponding six- ...
(TYPE E): Used for plain text between hosts using the EBCDIC character set.
* Local (TYPE L ''n''): Designed to support file transfer between machines which do not use 8-bit bytes, e.g.
36-bit systems such as DEC
PDP-10
Digital Equipment Corporation (DEC)'s PDP-10, later marketed as the DECsystem-10, is a mainframe computer family manufactured beginning in 1966 and discontinued in 1983. 1970s models and beyond were marketed under the DECsystem-10 name, especi ...
s. For example, "TYPE L 9" would be used to transfer data in 9-bit bytes, or "TYPE L 36" to transfer 36-bit words. Most contemporary FTP clients/servers only support L 8, which is equivalent to I.
*
Unicode
Unicode, formally The Unicode Standard,The formal version reference is is an information technology Technical standard, standard for the consistent character encoding, encoding, representation, and handling of Character (computing), text expre ...
text files using
UTF-8
UTF-8 is a variable-width encoding, variable-length character encoding used for electronic communication. Defined by the Unicode Standard, the name is derived from ''Unicode'' (or ''Universal Coded Character Set'') ''Transformation Format 8-bit'' ...
(TYPE U): defined in an expired
Internet Draft
An Internet Draft (I-D) is a document published by the Internet Engineering Task Force (IETF) containing preliminary technical specifications, results of networking-related research, or other technical information. Often, Internet Drafts are int ...
which never became an RFC, though it has been implemented by several FTP clients/servers.
Note these data types are commonly called "modes", although ambiguously that word is also used to refer to active-vs-passive communication mode (see above), and the modes set by the FTP protocol MODE command (see below).
For text files (TYPE A and TYPE E), three different format control options are provided, to control how the file would be printed:
* Non-print (TYPE A N and TYPE E N) – the file does not contain any carriage control characters intended for a printer
*
Telnet
Telnet is an application protocol used on the Internet or local area network to provide a bidirectional interactive text-oriented communication facility using a virtual terminal connection. User data is interspersed in-band with Telnet control i ...
(TYPE A T and TYPE E T) – the file contains Telnet (or in other words, ASCII C0) carriage control characters (CR, LF, etc)
*
ASA
ASA as an abbreviation or initialism may refer to:
Biology and medicine
* Accessible surface area of a biomolecule, accessible to a solvent
* Acetylsalicylic acid, aspirin
* Advanced surface ablation, refractive eye surgery
* Anterior spinal ar ...
(TYPE A A and TYPE E A) – the file contains ASA carriage control characters
These formats were mainly relevant to
line printer
A line printer prints one entire line of text before advancing to another line. Most early line printers were
impact printers.
Line printers are mostly associated with unit record equipment and the early days of digital computing, but the ...
s; most contemporary FTP clients/servers only support the default format control of N.
File structures
File organization is specified using the STRU command. The following file structures are defined in section 3.1.1 of RFC959:
* F or FILE structure (stream-oriented). Files are viewed as an arbitrary sequence of bytes, characters or words. This is the usual file structure on Unix systems and other systems such as CP/M, MS-DOS and Microsoft Windows. (Section 3.1.1.1)
* R or RECORD structure (record-oriented). Files are viewed as divided into records, which may be fixed or variable length. This file organization is common on mainframe and midrange systems, such as MVS, VM/CMS, OS/400 and VMS, which support
record-oriented filesystem
In computer science, a record-oriented filesystem is a file system where data is stored as collections of records. This is in contrast to a byte-oriented filesystem, where the data is treated as an unformatted stream of bytes. There are severa ...
s.
* P or PAGE structure (page-oriented). Files are divided into pages, which may either contain data or metadata; each page may also have a header giving various attributes. This file structure was specifically designed for
TENEX systems, and is generally not supported on other platforms. RFC1123 section 4.1.2.3 recommends that this structure not be implemented.
Most contemporary FTP clients and servers only support STRU F. STRU R is still in use in mainframe and minicomputer file transfer applications.
Data transfer modes
Data transfer can be done in any of three modes:
* Stream mode (MODE S): Data is sent as a continuous stream, relieving FTP from doing any processing. Rather, all processing is left up to
TCP. No End-of-file indicator is needed, unless the data is divided into
records
A record, recording or records may refer to:
An item or collection of data Computing
* Record (computer science), a data structure
** Record, or row (database), a set of fields in a database related to one entity
** Boot sector or boot record, ...
.
* Block mode (MODE B): Designed primarily for transferring record-oriented files (STRU R), although can also be used to transfer stream-oriented (STRU F) text files. FTP puts each record (or line) of data into several blocks (block header, byte count, and data field) and then passes it on to TCP.
* Compressed mode (MODE C): Extends MODE B with data compression using
run-length encoding
Run-length encoding (RLE) is a form of lossless data compression in which ''runs'' of data (sequences in which the same data value occurs in many consecutive data elements) are stored as a single data value and count, rather than as the original ...
.
Most contemporary FTP clients and servers do not implement MODE B or MODE C; FTP clients and servers for mainframe and minicomputer operating systems are the exception to that.
Some FTP software also implements a
DEFLATE-based compressed mode, sometimes called "Mode Z" after the command that enables it. This mode was described in an
Internet Draft
An Internet Draft (I-D) is a document published by the Internet Engineering Task Force (IETF) containing preliminary technical specifications, results of networking-related research, or other technical information. Often, Internet Drafts are int ...
, but not standardized.
GridFTP
GridFTP is an extension of the File Transfer Protocol (FTP) for grid computing. The protocol was defined within the GridFTP working group of the Open Grid Forum. There are multiple implementations of the protocol; the most widely used is that pro ...
defines additional modes, MODE E and MODE X, as extensions of MODE B.
Additional commands
More recent implementations of FTP support the ''Modify Fact: Modification Time'' (MFMT) command, which allows a client to adjust that
file attribute File attributes are a type of meta-data that describe and may modify how files and/or directories in a filesystem behave. Typical file attributes may, for example, indicate or specify whether a file is visible, modifiable, compressed, or encrypted. ...
remotely, enabling the preservation of that attribute when uploading files.
To retrieve a remote file timestamp, there's ''MDTM'' command. Some servers (and clients) support nonstandard syntax of the ''MDTM'' command with two arguments, that works the same way as ''MFMT''
Login
FTP login uses normal username and password scheme for granting access.
The username is sent to the server using the USER command, and the password is sent using the PASS command.
This sequence is unencrypted "on the wire", so may be vulnerable to a network
sniffing attack
Sniffing attack in context of network security, corresponds to theft or interception of data by capturing the network traffic using a packet sniffer (an application aimed at capturing network packets). When data is transmitted across networks, if t ...
. If the information provided by the client is accepted by the server, the server will send a greeting to the client and the session will commence.
If the server supports it, users may log in without providing login credentials, but the same server may authorize only limited access for such sessions.
Anonymous FTP
A host that provides an FTP service may provide
anonymous FTP access.
Users typically log into the service with an 'anonymous' (lower-case and case-sensitive in some FTP servers) account when prompted for user name. Although users are commonly asked to send their
email
Electronic mail (email or e-mail) is a method of exchanging messages ("mail") between people using electronic devices. Email was thus conceived as the electronic ( digital) version of, or counterpart to, mail, at a time when "mail" meant ...
address instead of a password,
no verification is actually performed on the supplied data.
[ (Informational) How to Use Anonymous FTP. P. & Emtage, A. & Marine, A. (May 1994).] Many FTP hosts whose purpose is to provide software updates will allow anonymous logins.
Differences from HTTP
HTTP
The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
essentially fixes the bugs in FTP that made it inconvenient to use for many small ephemeral transfers as are typical in web pages.
FTP has a stateful control connection which maintains a current working directory and other flags, and each transfer requires a secondary connection through which the data are transferred. In "passive" mode this secondary connection is from client to server, whereas in the default "active" mode this connection is from server to client. This apparent role reversal when in active mode, and random port numbers for all transfers, is why firewalls and NAT gateways have such a hard time with FTP. HTTP is
stateless and multiplexes control and data over a single connection from client to server on well-known port numbers, which trivially passes through NAT gateways and is simple for firewalls to manage.
Setting up an FTP control connection is quite slow due to the round-trip delays of sending all of the required commands and awaiting responses, so it is customary to bring up a control connection and hold it open for multiple file transfers rather than drop and re-establish the session afresh each time. In contrast, HTTP originally dropped the connection after each transfer because doing so was so cheap. While HTTP has subsequently gained the ability to reuse the TCP connection for multiple transfers, the conceptual model is still of independent requests rather than a session.
When FTP is transferring over the data connection, the control connection is idle. If the transfer takes too long, the firewall or NAT may decide that the control connection is dead and stop tracking it, effectively breaking the connection and confusing the download. The single HTTP connection is only idle between requests and it is normal and expected for such connections to be dropped after a time-out.
Software support
Web browser
Most common
web browser
A web browser is application software for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's screen. Browsers are used on ...
s can retrieve files hosted on FTP servers, although they may not support protocol extensions such as
FTPS
FTPS (also known as FTP-SSL and FTP Secure) is an extension to the commonly used File Transfer Protocol (FTP) that adds support for the Transport Layer Security (TLS) and, formerly, the Secure Sockets Layer (SSL, which is now prohibited by RFC75 ...
.
When an FTP—rather than an HTTP—
URL is supplied, the accessible contents on the remote server are presented in a manner that is similar to that used for other web content.
FireFTP
FireFTP is a free, open-source, cross-platform FTP client for Mozilla Firefox in the form of an add-on. It supports FTP, FTPS, and SFTP. FireFTP is charityware and runs on platforms that Firefox supports. FireFTP's layout is similar to that ...
is a browser extension designed as a full-featured FTP client, it could be run within
Firefox
Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements current and ...
in the past, but it's now recommend working with
Waterfox
Waterfox is an open-source web browser that is forked from Firefox and developed by System1. There are official Waterfox releases for Windows, macOS, and Linux.
Divisions
Waterfox
Waterfox shares core features and technologies like the Gecko b ...
.
Google Chrome removed FTP support entirely in Chrome 88. As of 2019, Mozilla was discussing proposals, including only removing support for old FTP implementations that are no longer in use to simplify their code.
In April, 2021, Mozilla released Firefox 88.0 which disabled FTP support by default. In July 2021, Firefox 90 dropped FTP support entirely.
Syntax
FTP URL syntax is described in , taking the form:
ftp:// ser[:password.html"_;"title="password.html"_;"title="ser[:password">ser[:password">password.html"_;"title="ser[:password">ser[:passwordost[:port.html" ;"title="password">ser[:password.html" ;"title="password.html" ;"title="ser[:password">ser[:password">password.html" ;"title="ser[:password">ser[:passwordost[:port">password">ser[:password.html" ;"title="password.html" ;"title="ser[:password">ser[:password">password.html" ;"title="ser[:password">ser[:passwordost[:porturl-path
(the bracketed parts are optional).
For example, the URL
ftp://public.ftp-servers.example.com/mydirectory/myfile.txt represents the file ''myfile.txt'' from the directory ''mydirectory'' on the server ''public.ftp-servers.example.com'' as an FTP resource. The URL
ftp://user001:secretpassword@private.ftp-servers.example.com/mydirectory/myfile.txt adds a specification of the username and password that must be used to access this resource.
More details on specifying a username and password may be found in the browsers' documentation (e.g.,
Firefox
Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements current and ...
and Internet Explorer). By default, most web browsers use passive (PASV) mode, which more easily traverses end-user firewalls.
Some variation has existed in how different browsers treat path resolution in cases where there is a non-root home directory for a user.
Download manager
Most common
download manager
A download manager is a software tool that manages the downloading of files from the Internet, which may be built: into a Web browser, or as a, usually more sophisticated program
Program, programme, programmer, or programming may refer to:
Bu ...
s can receive files hosted on FTP servers, while some of them also give the interface to retrieve the files hosted on FTP servers.
DownloadStudio
DownloadStudio is a shareware download manager developed and published by Conceiva. It can download files, entire websites, streaming audio and streaming video. DownloadStudio has been awarded by '' PC Magazine'' as the best download manager ...
allows not only download a file from FTP server but also view the list of files on a FTP server.
Other
LibreOffice
LibreOffice () is a free and open-source productivity software, office productivity software suite, a project of The Document Foundation (TDF). It was fork (software development), forked in 2010 from OpenOffice.org, an open-sourced version of t ...
supports opening file from FTP servers, but from 7.4 release, this feature is labeled deprecated, and developers intend to remove it in a future version.
Security
FTP was not designed to be a secure protocol, and has many security weaknesses.
In May 1999, the authors of listed a vulnerability to the following problems:
*
Brute-force attack
In cryptography, a brute-force attack consists of an attacker submitting many passwords or passphrases with the hope of eventually guessing correctly. The attacker systematically checks all possible passwords and passphrases until the correct ...
*
FTP bounce attack FTP bounce attack is an exploit of the FTP protocol whereby an attacker is able to use the command to request access to ports indirectly through the use of the victim machine, which serves as a proxy for the request, similar to an Open mail relay ...
*
Packet capture
A packet analyzer, also known as packet sniffer, protocol analyzer, or network analyzer, is a computer program or computer hardware such as a packet capture appliance, that can intercept and log traffic that passes over a computer network or ...
* Port stealing (guessing the next open port and usurping a legitimate connection)
*
Spoofing attack
In the context of information security, and especially network security, a spoofing attack is a situation in which a person or program successfully identifies as another by falsifying data, to gain an illegitimate advantage.
Internet Spoofing an ...
* Username enumeration
*
DoS or DDoS
FTP does not encrypt its traffic; all transmissions are in clear text, and usernames, passwords, commands and data can be read by anyone able to perform packet capture (
sniffing) on the network.
This problem is common to many of the Internet Protocol specifications (such as
SMTP
The Simple Mail Transfer Protocol (SMTP) is an Internet standard communication protocol for electronic mail transmission. Mail servers and other message transfer agents use SMTP to send and receive mail messages. User-level email clients typical ...
,
Telnet
Telnet is an application protocol used on the Internet or local area network to provide a bidirectional interactive text-oriented communication facility using a virtual terminal connection. User data is interspersed in-band with Telnet control i ...
,
POP and
IMAP
In computing, the Internet Message Access Protocol (IMAP) is an Internet standard protocol used by email clients to retrieve email messages from a mail server over a TCP/IP connection. IMAP is defined by .
IMAP was designed with the goal of per ...
) that were designed prior to the creation of encryption mechanisms such as
TLS or SSL.
Common solutions to this problem include:
# Using the secure versions of the insecure protocols, e.g.,
FTPS
FTPS (also known as FTP-SSL and FTP Secure) is an extension to the commonly used File Transfer Protocol (FTP) that adds support for the Transport Layer Security (TLS) and, formerly, the Secure Sockets Layer (SSL, which is now prohibited by RFC75 ...
instead of FTP and TelnetS instead of Telnet.
# Using a different, more secure protocol that can handle the job, e.g.
SSH File Transfer Protocol
In computing, the SSH File Transfer Protocol (also known as Secure File Transfer Protocol or SFTP) is a network protocol that provides file access, file transfer, and file management over any reliable data stream. It was designed by the Internet E ...
or
Secure Copy Protocol
Secure copy protocol (SCP) is a means of securely transferring computer files between a local host and a remote host or between two remote hosts. It is based on the Secure Shell (SSH) protocol. "SCP" commonly refers to both the Secure Copy Prot ...
.
# Using a secure tunnel such as
Secure Shell
The Secure Shell Protocol (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution.
SSH applications are based on a ...
(SSH) or
virtual private network
A virtual private network (VPN) extends a private network across a public network and enables users to send and receive data across shared or public networks as if their computing devices were directly connected to the private network. The be ...
(VPN).
FTP over SSH
FTP over SSH is the practice of tunneling a normal FTP session over a Secure Shell connection.
Because FTP uses multiple
TCP connections (unusual for a TCP/IP protocol that is still in use), it is particularly difficult to tunnel over SSH. With many SSH clients, attempting to set up a tunnel for the control channel (the initial client-to-server connection on port 21) will protect only that channel; when data is transferred, the FTP software at either end sets up new TCP connections (data channels) and thus have no
confidentiality
Confidentiality involves a set of rules or a promise usually executed through confidentiality agreements that limits the access or places restrictions on certain types of information.
Legal confidentiality
By law, lawyers are often required ...
or
integrity protection
Data integrity is the maintenance of, and the assurance of, data accuracy and consistency over its entire life-cycle and is a critical aspect to the design, implementation, and usage of any system that stores, processes, or retrieves data. The ter ...
.
Otherwise, it is necessary for the SSH client software to have specific knowledge of the FTP protocol, to monitor and rewrite FTP control channel messages and autonomously open new
packet forwarding
Packet forwarding is the relaying of packets from one network segment to another by nodes in a computer network. The network layer in the OSI model is responsible for packet forwarding.
Models
The simplest forwarding modelunicastinginvolves ...
s for FTP data channels. Software packages that support this mode include:
* Tectia ConnectSecure (Win/Linux/Unix)
of
SSH Communications Security
The Secure Shell Protocol (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution.
SSH applications are based on a ...
's software suite
Derivatives
FTPS
Explicit FTPS is an extension to the FTP standard that allows clients to request FTP sessions to be encrypted. This is done by sending the "AUTH TLS" command. The server has the option of allowing or denying connections that do not request TLS. This protocol extension is defined in . Implicit FTPS is an outdated standard for FTP that required the use of a SSL or TLS connection. It was specified to use different ports than plain FTP.
SSH File Transfer Protocol
The SSH file transfer protocol (chronologically the second of the two protocols abbreviated SFTP) transfers files and has a similar command set for users, but uses the
Secure Shell
The Secure Shell Protocol (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution.
SSH applications are based on a ...
protocol (SSH) to transfer files. Unlike FTP, it encrypts both commands and data, preventing passwords and sensitive information from being transmitted openly over the network. It cannot interoperate with FTP software, though some FTP client software offers support for the SSH file transfer protocol as well.
Trivial File Transfer Protocol
Trivial File Transfer Protocol (TFTP) is a simple, lock-step FTP that allows a client to get a file from or put a file onto a remote host. One of its primary uses is in the early stages of
booting from a local area network, because TFTP is very simple to implement. TFTP lacks security and most of the advanced features offered by more robust file transfer protocols such as File Transfer Protocol. TFTP was first standardized in 1981 and the current specification for the protocol can be found in .
Simple File Transfer Protocol
Simple File Transfer Protocol (the first protocol abbreviated SFTP), as defined by , was proposed as an (unsecured) file transfer protocol with a level of complexity intermediate between TFTP and FTP. It was never widely accepted on the
Internet
The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a '' network of networks'' that consists of private, pub ...
, and is now assigned Historic status by the
IETF
The Internet Engineering Task Force (IETF) is a standards organization for the Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster or requirements and a ...
. It runs through port 115, and often receives the initialism of ''SFTP''. It has a command set of 11 commands and support three types of data transmission:
ASCII
ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because of ...
,
binary
Binary may refer to:
Science and technology Mathematics
* Binary number, a representation of numbers using only two digits (0 and 1)
* Binary function, a function that takes two arguments
* Binary operation, a mathematical operation that t ...
and continuous. For systems with a
word size
In computing, a word is the natural unit of data used by a particular processor design. A word is a fixed-sized datum handled as a unit by the instruction set or the hardware of the processor. The number of bits or digits in a word (the ''word si ...
that is a multiple of 8 bits, the implementation of binary and continuous is the same. The protocol also supports login with user ID and password, hierarchical folders and file management (including ''rename'', ''delete'', ''upload'', ''download'', ''download with overwrite'', and ''download with append'').
FTP commands
FTP reply codes
Below is a summary of
FTP reply codes that may be returned by an FTP
server
Server may refer to:
Computing
*Server (computing), a computer program or a device that provides functionality for other programs or devices, called clients
Role
* Waiting staff, those who work at a restaurant or a bar attending customers and su ...
. These codes have been standardized in by the IETF. The reply code is a three-digit value. The first digit is used to indicate one of three possible outcomes — success, failure, or to indicate an error or incomplete reply:
* 2yz – Success reply
* 4yz or 5yz – Failure reply
* 1yz or 3yz – Error or Incomplete reply
The second digit defines the kind of error:
* x0z – Syntax. These replies refer to syntax errors.
* x1z – Information. Replies to requests for information.
* x2z – Connections. Replies referring to the control and data connections.
* x3z – Authentication and accounting. Replies for the login process and accounting procedures.
* x4z – Not defined.
* x5z – File system. These replies relay status codes from the server file system.
The third digit of the reply code is used to provide additional detail for each of the categories defined by the second digit.
See also
References
Further reading
* – CWD Command of FTP. July 1975.
* – (Standard) File Transfer Protocol (FTP). J. Postel, J. Reynolds. October 1985.
* – (Informational) Firewall-Friendly FTP. February 1994.
* – (Informational) How to Use Anonymous FTP. May 1994.
* – FTP Operation Over Big Address Records (FOOBAR). June 1994.
* – Uniform Resource Locators (URL). December 1994.
* – (Proposed Standard) FTP Security Extensions. October 1997.
* – (Proposed Standard) Feature negotiation mechanism for the File Transfer Protocol. August 1998.
* – (Proposed Standard) Extensions for IPv6, NAT, and Extended passive mode. September 1998.
* – (Informational) FTP Security Considerations. May 1999.
* – (Proposed Standard) Internationalization of the File Transfer Protocol. July 1999.
* – (Proposed Standard) Extensions to FTP. P. Hethmon. March 2007.
* – (Proposed Standard) FTP Command and Extension Registry. March 2010.
* – (Proposed Standard) File Transfer Protocol HOST Command for Virtual Hosts. March 2014.
IANA FTP Commands and Extensions registry– The official registry of FTP Commands and Extensions
External links
*
*
/servertest.online/ftp FTP Server Online TesterAuthentication, encryption, mode and connectivity.
* Anonymous FTP Servers by Country Code
TLD
A top-level domain (TLD) is one of the domains at the highest level in the hierarchical Domain Name System of the Internet after the root domain. The top-level domain names are installed in the root zone of the name space. For all domains in ...
(2012):
{{Authority control
Application layer protocols
Clear text protocols
Computer-related introductions in 1971
History of the Internet
Internet Standards
Network file transfer protocols
OS/2 commands
Unix network-related software
File sharing