Scott on Writing

Musings on technical writing...

Installing the FTP Service for IIS 6.0 On An Alternate Port Number and Configuring Windows Firewall

The Scenario
You need to setup the Windows FTP service that is part of IIS 6.0 on a port number other than the standard port 21 and are using Windows Firewall on the server.

The Challenge
Getting an FTP server and the firewall to play nicely can be a bit of an adventure because FTP uses two ports for communicating - one for establishing the connection (typically port 21) and another one for transferring the data. I believe that the FTP service for IIS 6.0 uses port 20 as the data port when using port 21 as the connection port, but I am not 100% certain. What I am certain of is that the data port may be randomly selected from a wide range of ports, and that is certainly the case when you select an alternate port number for the FTP service. The challenge lies in configuring the firewall to accept incoming requests to both the alternate port and the randomly selected data port.

If neither port is opened in the firewall then when you attempt to connect to the FTP server the client will hang and eventually report that it cannot connect. If only the connection port is open then the FTP client will connect successfully but will repor the error: Failed to retrieve directory listing. The reason is because the connection can be established over the connection port, but the request made to the data port to get the directory listing was blocked by the firewall. Long story short, you need to make sure that the firewall will allow traffic for the randomly selected data port.

The Solution

  1. Create an FTP site on the port number of choice, such as 12345. Typically you'll want to use a high port number to minimize the likelihood of a conflict. See Creating Multiple FTP Site (IIS 6.0) for more information on how to create multiple FTP sites using multiple ports.
  2. If you are using Windows Vista or Windows 2008 as the server, run the following command from the command line: sc sidtype MSFTPSVC unrestricted
  3. Stop and restart the FTP service.
    • Note: I got an error when restarting the service that complained that an unrestricted service could not be started in the same host as restricted services. I'm sure there is a more elegant workaround, but what worked for me was to reboot the server.
  4. Configure Windows Firewall to allow all TCP traffic in for the MSFTPSVC service. This will allow traffic on the randomly selected data port to penetrate the firewall. You can do this from the Windows Firewall configuration GUI or from the command line via: netsh advfirewall firewall add rule name="FTP" service=MSFTPSVC action=allow protocol=TCP dir=in
  5. Ensure that the FTP filter for Windows Firewall is disabled. You can do this via the command line, as well: netsh advfirewall set global Statefulftp disable

For more on Steps 2-5 see Windows Firewall Setup for Microsoft FTP Publishing Service for IIS 7.0. Some of the command line arguments are different in the article than what I have posted above because my commands are for the FTP Service that's part of IIS 6.0 whereas the article linked to looks at using the FTP Publishing Service for IIS 7.0.

I spent the better part of an afternoon figuring out these five steps. I hope this blog entry saves someone else a few precious hours.

posted on Wednesday, June 17, 2009 4:01 PM

Feedback

# re: Installing the FTP Service for IIS 6.0 On An Alternate Port Number and Configuring Windows Firewall 6/18/2009 12:15 AM Paul

I was looking for information on how to do thins, so it is just what I need!

Thanks :-)

# re: Installing the FTP Service for IIS 6.0 On An Alternate Port Number and Configuring Windows Firewall 6/18/2009 5:47 AM Dave Hanna

Your step 2: "If you are using Vista or Win 2008..."

Is there an alternate for other servers (e.g., Win 2003 R2), or do you simply omit that step on other servers?

# re: Installing the FTP Service for IIS 6.0 On An Alternate Port Number and Configuring Windows Firewall 6/18/2009 7:09 AM Scott Mitchell

Dave, I assume you can just omit that step for Win2k3, although that is just my guess. I know that for the server I just needed to set this up on (Win2k8, IIS7) I had to perform Step #2 to get it to work.

Thanks

Title:  
Name:  
Url:
Protected by Clearscreen.SharpHIPEnter the code you see:
Comments   

My Links

Ads Via DevMavens

Archives

Post Categories

 

I am a Microsoft MVP for ASP.NET.
I am an ASPInsider.
<November 2009>
SMTWTFS
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

Comment Stats

DayTotal% of Total
Sunday 2046.8%
Monday 42414.1%
Tuesday 51017.0%
Wednesday 55118.4%
Thursday 57919.3%
Friday 54318.1%
Saturday 1876.2%
Total 2998100.0%

Hour1Total% of Total
12:00 AM 762.5%
1:00 AM 812.7%
2:00 AM 672.2%
3:00 AM 822.7%
4:00 AM 672.2%
5:00 AM 1254.2%
6:00 AM 1183.9%
7:00 AM 1785.9%
8:00 AM 1926.4%
9:00 AM 1575.2%
10:00 AM 1866.2%
11:00 AM 1936.4%
12:00 PM 2006.7%
1:00 PM 1846.1%
2:00 PM 1685.6%
3:00 PM 1354.5%
4:00 PM 1153.8%
5:00 PM 1063.5%
6:00 PM 1013.4%
7:00 PM 1063.5%
8:00 PM 923.1%
9:00 PM 862.9%
10:00 PM 893.0%
11:00 PM 943.1%
Total 2998100.0%

Comments by Blog Entry Date/Time

Day Entry MadeAvg.Total
Sunday 4.94158
Monday 4.79383
Tuesday 4.17475
Wednesday 7.44677
Thursday 6.23673
Friday 5.02457
Saturday 4.73175
Total 5.422998

Hour1 Entry MadeAvg.Total
12:00 AM 5.2937
1:00 AM 1.002
5:00 AM 0.000
7:00 AM 3.8550
8:00 AM 3.72134
9:00 AM 6.06291
10:00 AM 5.61275
11:00 AM 4.27192
12:00 PM 6.35349
1:00 PM 3.17133
2:00 PM 5.00230
3:00 PM 7.60319
4:00 PM 3.89105
5:00 PM 6.00168
6:00 PM 4.56114
7:00 PM 8.95188
8:00 PM 8.58163
9:00 PM 5.00115
10:00 PM 6.31101
11:00 PM 4.5732
Total 5.422998

Learn More About Comment Stats
1 - All times GMT -8...


Blog Stats

Favorite Web Sites

My Books

My MSDN Articles