Windows 2003 Server SP1 Firewall Modification for Passive or PASV FTP Connections
(Portions of this document are parphrased from or directly copied from Microsoft KB article 555022 by Bernard Cheah, MVP.)Passive Mode FTP connections are normally required by clients connecting through a NAT firewall or router. The client connects on port 21 and issues a PASV command, the server responds with a port in the 1024-65535 range for the data connection. After a data connection command is issued by the client, the server connects to the client using the port immediately above the client-side port of the control connection. The Windows 2003 SP1 Firewall will prevent PASV FTP from working properly unless exceptions for the ports are created. A metabase property key named PassivePortRange can be configured to specify the port range the server will respond with. This can be used to limit the security risk for the FTP server. The property key only exists in IIS 6.0. Support for IIS 5.0 on Windows 2000 can be added, but the system administrator will need to install Service Pack 4 and add the PassivePortRange key in the system registry. Two ports must be opened for each concurrent FTP connection.
On Windows 2003 Server with IIS6- To Enable Direct Metabase Edit
- Open the IIS Microsoft Management Console (MMC).
- Right-click on the Local Computer node.
- Select Properties.
- Make sure the Enable Direct Metabase Edit checkbox is checked.
- Configure PassivePortRange via ADSUTIL script
- Click Start, click Run, type cmd, and then click OK.
- Type cd Inetpub\AdminScripts and then press ENTER.
- Type the following command where the range is specified in "..". cscript.exe adsutil.vbs set /MSFTPSVC/PassivePortRange "5001-5201"
- Restart the FTP Publishing Service.
- Add each port to the Windows Firewall
- Click Start, click Control Panel, open Windows Firewall, and select the Exceptions tab.
- Click the Add Port button.
- Enter a Name for the Exception and the first number in the port range.
- Click TCP if not already selected and click OK.
- Repeat for each port in the range - for large ranges see the end of the document.
- Enable the Windows Firewall on the General Tab.
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
PassivePortRange : (STRING) "5001-5201"
On Windows 2000 Server with IIS5 Configure PassivePortRange via Registry Editor
- Start Registry Editor (Regedt32.exe).
- Locate the following registry key: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msftpsvc\Parameters\
- Add a value named "PassivePortRange" (without the quotation marks) of type REG_SZ.
- Close Registry Editor.
- Restart the FTP Publishing Service.
Note: The range that FTP will validate is from 5001 to 65535.
To add a range of ports to Windows Firewall from the Command Line
- Click Start, click Run, type cmd, and then click OK.
- Type in the following where the range is specified
in ( ) and the name of the firewall entry is in " ".
FOR /L %I IN (5001,1,5201) DO netsh firewall add portopening TCP %I "Passive FTP"%I - Each port in the range will be added with an "OK" confirmation.