|Publish, Manage, Develop
|IIS 5.1, IIS 6, IIS 7
|FTPS Client Documentation
|January 19, 2009
The aim of this FTP/FTPS client is to support the advanced features provided by most modern FTP servers, primarily, but not limited to, encryption via SSL/TLS and UTF8. A list of the implemented RFC standards and specific commands follows.
The idea of this client was born while preparing some material for a technical speech session I was going to give at the Italian Microsoft TechDays - WPC 2008, about IIS 7.0 new features, including the Microsoft FTP for IIS 7.0 add in and its freshly introduced support for SSL/TLS.
One of the main problems with standard FTP communications, is that all the username / password communication is performed in clear text, easily eavesdropped by sniffing the network traffic. Altough FTP is one of the oldest Internet protocols still in use today, some of its features are still largely needed as they can't be easily replaced by, for example, an HTTP server.
The SSL/TLS encryption feature, as stated in the RFC 4217 document https://www.ietf.org/rfc/rfc4217.txt, provides a solution for this and other security related limitations. Support for SSL/TLS has been introduced in the most used FTP servers: Microsoft FTP for IIS 7.0, vsftpd, wu-ftpd, FileZilla server, to name a few. Note: vsftpd FTPS support requires version 2.1.0 or a small patch avilable on the project homepage for version 2.0.7.
Looking for a free client to be used during my session demos, showing interoperability with other platforms, I realized that there was no single piece of software supporting all the features I needed. Furthermore, I wanted to provide a sample on how to connect to a FTP server using SSL using Microsoft .Net and the Powershell, but the standard System.Net.FTPWebRequest provided by the framework was not powerful enough (more on this below).
That was enough to start this project. The client provides also a wide range of options and commands via command line arguments, making it fully functional when used in scripts, without the shortcomings of the standard FTP clients available on most platforms.
Portability among platforms (via the .Net Framework 2.0 and Mono 2.0) and compatibility with all the relevant FTPS servers is also a mandatory goal for this project.
Support for all the FTPS features provided by FTP for IIS 7.0
Support for a wide range of FTP servers.
A free portable client avilable on many plaforms.
A client simple to use and to script, compared to most ftp clients provided by default on most operating systems.
A free class library, providing the same features of the client and more.
.Net framework 2.0 or Mono 2.0
Supported operating systems:
- Microsoft Windows 2000 SP4/XP SP2/2003/Vista/2008
- Mac OS X 10.4 and above