One of my favorite new features which of IIS7 that we announced yesterday with the Beta 3 release is the new FTP server. It isn't actually in the Beta 3 builds, but you can download the beta free for
FTP7 Server (amd64)
FTP7 Server (x86)
from downloadCenter. Note: it does require a Beta 3 build of Longhorn Server to install. We will support Vista in a future release.
I'll be the first to admit, our existing FTP server is old and crusty. It hasn't been updated for many years. It's always been one of those parts of the product I was very annoyed with, and wanted to fix, but never got enough time and resources to do anything about.
Jaro stepped up to the challenge to rewrite our FTP server from scratch, and in a little more than a year designed, architected, and implemented a fully integrated, and very elegent and sophisticated FTP server. Rob McMurray joined the FTP team as Program Manager last year and has played a big role in getting the excellent FTP walkthroughs produced, including:
Administering IIS7s FTP Server
Using virtual host names
Adding FTP to a Web site
Using FTP over SSL
Configuring FTP user Isolation
And we now have Suditi on board as the primary test owner, with help from Cip and Jeong. Janani and Andrew then stepped in and helped build the Admin tool extensions. This team has done an awesome job getting the first beta release of a Microsoft FTP server that I am proud of out the door.
This article provides a good overview of the new FTP features, let me summarize them here:
Secure FTP Publishing over SSL
One of the hottest requests we've had for FTP is secure publishing - the ability to transfer credentials and data in a secure fashion. In case you didn't know, FTP protocol transfers all credentials and data in clear text, making it easy for any hacker that has access to the network data to 'sniff' passwords and data. Our new FTP server supports secure publishing over SSL, and with the integrated certificate management in the IIS Manager tool, it is super simple to setup. Read more about how to set it up in this walkthrough.
Integrated Web / FTP Server
The new FTP server builds on top of the extensibility we've shipped in iis7. It extends the configuration store for FTP configuration. It integrates with the new IIS manager admin tool, for integrated web / ftp management. These might seem superficial things that you'd expect from a team building both products, but the benefits are pretty interesting. For example:
- you can now define a "site" once in our configuration store, and then "bind" both the FTP and Web server to it. This means you define the physical path for the site once, and both the web and ftp server move along with the path, if it ever changes. This makes it really simple to enable FTP publishing into a content directory for a path - simply add FTP bindings to any web site!
- you can now manage FTP server settings in the same "home page" as the site. Click on any site that has both Web and FTP bindings, and you'll see the features for both ready and available for configuration. You will also see tasks for both web and ftp in the right hand action pane, making it simple to start or stop web and/or ftp sites in the same place.
Another one of the limitations of the old FTP server that we get feedback on is the reliance on Windows accounts. The new FTP server makes it possible to authenticate users with Windows accounts, or possible to authenticate users with the ASP.NET membership system, or any other custom authentication store, if you want to extend our FTP server.
The FTP server also makes it possible to authenticate users against the built-in delegation system IIS7 supports for Web administration, meaning if you use the Web site delegation feature for IIS manager, that same user can optionally publish to their web directory using FTP, without creating another account for them!
There are several other improvements that I'm sure will bring smiles to your face:
- Directory listing support for virtual directories! (this has always bugged me)
- New user isolation support for enabling / disabling virtual directories
- Full UTF8 support
- Expanded logging, and built-in diagnostics support
- IPv6 support
- and much more...
This is the first beta release of the FTP server, and we plan on updating it as we progress in development over the coming months. Check it out and give us your feedback!