제2의 비엔지니어 인생관을 꿈꾸며

Posted
Filed under Study
"사용자
IIS7 FTP 기능은 기능이 세분화되고 많이 편리해졌습니다. IIS6까지만 해도 메타베이스를 수정해줘야 했던게 예전버젼이였지만 FTP7.5 버젼은 UI로도 환경설정 작업이 쉬워졌습니다.

"사용자
Passive 포트 설정을 저리 쉽게 입력만 해주면 됩니다. IIS6에서는 메타베이스를 편집기로 열어서 포트번호를 입력해줘야 했었는데 저리 단순하게 입력하면 그만입니다.
"사용자
제일 간과하기 쉬운 부분이 이부분입니다. IIS6까지만 해도 서비스를 재시작할때 iisreset 명령어나 아니면 UI에서 서비스 재시작을 하면 환경설정 반영이 금방 되었지만 IIS7 버젼에서는 해당 서비스를 재시작 해줘야 했었습니다. 이거 단순하게 봤다가 왜 안되는가 고민을 하게된 몇시간이였습니다. 또 달라진건 inetinfo.exe에 종속되었던 서비스가 IIS7 버젼부터는 svchost 로 종속되어 운영이 되고 있습니다. FTP뿐만이 아니고 Web서비스도 예전처럼 inetinfo에 종속되지 않습니다. IIS6과는 아예 별개가 되어버린 IIS7 버젼입니다.
"사용자
2008버젼에서는 범위지정이 되지 않았었습니다. 소켓통신의 주체는 프로세스여서 범위지정은 의미가 없나 싶지만 그래도 이렇게 일일이 다입력하지 않아도 범위지정이 되어서 방화벽 허용 룰 규칙 입력이 아주 편해졌습니다. 뭐 리눅스는 원래 된거다라고 하면  할말 없지만 지금까지 윈도우 버젼에 대한 불편함이 2008 R2 버젼에는 별거 아니여도 그나마 많이 편하게 나왔다는것이 장점입니다. 비스타 버리는 모냥 2008 오리지널 버젼 역시도 R2 버젼에 묻히는 기분입니다. 확실히 IIS6 FTP 보다는 응답속도나 체감이 빠릇빠릇 하더군요.
2010/09/09 13:10 2010/09/09 13:10
Posted
Filed under Study

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
    1. Open the IIS Microsoft Management Console (MMC).
    2. Right-click on the Local Computer node.
    3. Select Properties.
    4. Make sure the Enable Direct Metabase Edit checkbox is checked.
  • Configure PassivePortRange via ADSUTIL script
    1. Click Start, click Run, type cmd, and then click OK.
    2. Type cd Inetpub\AdminScripts and then press ENTER.
    3. Type the following command where the range is specified in "..". cscript.exe adsutil.vbs set /MSFTPSVC/PassivePortRange "5001-5201"
    4. Restart the FTP Publishing Service.
    You'll see the following output, when you configure via ADSUTIL script:

    Microsoft (R) Windows Script Host Version 5.6
    Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

    PassivePortRange : (STRING) "5001-5201"

  • Add each port to the Windows Firewall
    1. Click Start, click Control Panel, open Windows Firewall, and select the Exceptions tab.
    2. Click the Add Port button.
    3. Enter a Name for the Exception and the first number in the port range.
    4. Click TCP if not already selected and click OK.
    5. Repeat for each port in the range - for large ranges see the end of the document.
    6. Enable the Windows Firewall on the General Tab.

On Windows 2000 Server with IIS5 Configure PassivePortRange via Registry Editor
  1. Start Registry Editor (Regedt32.exe).
  2. Locate the following registry key: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msftpsvc\Parameters\
  3. Add a value named "PassivePortRange" (without the quotation marks) of type REG_SZ.
  4. Close Registry Editor.
  5. 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
  1. Click Start, click Run, type cmd, and then click OK.
  2. 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
  3. Each port in the range will be added with an "OK" confirmation.

위 포트범위는 많이 지정되었지만 필자는 5001-5005 정도만 사용하고있다 간간히 NAT와 겹치면서 사용한다면 50001-50005 정도 더 큰 범위를 사용한다. 대부분 1024에서 65535포트는 내부 세션을 임시로 열었다가 닫히는 임시 랜덤포트라서 겹치면 소켓통신에 장애가 발생하기 때문이다.

2000서버에서는 레지스트리 수정을 해주고 2003서버는 편하게 메타베이스 XML수정을 해주고 서비스 재시작을 해주면 적용이 된다.
2008서버 IIS7 역시도 메타베이스 수정으로 해결이 가능한데 필자는 IIS7에서는 단번에 안된걸로 기억한다. IIS7을 아예 죽이고 메모장을 관리자모드로 열고 수정하고 저장하고 서비스시작하니 되었던건데 좀 이상하긴 했었다. ㅎㅎ <---- 이건 IIS7의 IIS6 FTP를 사용할때여서 그렇다. FTP7 버젼은 다르다. 친절하게도 FTP PASSIVE 범위를 설정하는 옵션이 GUI로 나와서 특별하게 고민할게 없을듯 하다.
IIS7 FTP 설정 유의점 사이트 바로가기
 
FTP에서 PASSIVE를 사용해야 되는 이유?를 알고싶을것이다.
첫째, 비정규포트 21번이 아닌 다른 포트를 사용하겠다면 PASSIVE 포트를 설정해줘야 한다.
둘째, FTP서버가 NAT밑으로 구성되었다면 21번 포트를 사용한다고 해도 PASSIVE를 설정해줘야만 한다.

위 두가지를 항상 머리속에 넣어야 한다. 그렇지 않으면 방화벽 문제네 뭐 문제네 네책임 내책임 말들이 나올것이다.

2009/07/16 18:14 2009/07/16 18:14