server 2003 FTP Port 변경

2003 설치했다. 포트 변경했다가.

그런데 FTP 를 기본 21이 아닌 다른 포토로 변경

리얼IP면 상관 없지만 사설일경우에 문제가 생긴다…

사설이라 들어오는 포트가 차단되다 보니 서버와 FTP 통신이 안된다.

이럴때 사용되는것이 Passive 모드 통신이다.

하지만 기본적으로 서버가 지정한 랜덤 패시브 포트 역시…. 방화벽에 의해 기본 차단되어 있다….

이럴때 해결법은 서버에서 Passive 모드에 대한 셋팅을 지정하고 방화벽 또한 맞추어준다.

1> 메타베이스를 수정한다.

메타 수정도 2가지 방법이 있다.

2가지 방법은 MS사이트에 소개돼 있다.
http://support.microsoft.com/kb/555022
a) 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.

b) 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 from a command prompt.
adsutil.vbs set /MSFTPSVC/PassivePortRange “5500-5700”
4. Restart the FTP service.

한글로 설명하자면 IIS관리창의 서버에서 속성->메타베이스 직접편집 허용을 체크한후

C:\WINDOWS\system32\inetsrv\metabase.xml   파일을 열어서

<IISFtpService> 부분을 찾어서

 PassivePortRange=”5000-5010″      <= 를 추가한다.   (사이에공란이 없도록)

위줄을 추가한후 저장. IIS 를 재시작 한다.

이때 방화벽에서 포트 하나 하나 열어야 되므로 범위를 좁게 잡자…… 난 11개 열었다….

* 방화벽을 열때 5000-5010 까지 tcp 와 udp 같이 열어야 한다 안그럼 ftp 시작 안됨

그리고 ADSUTIL 을 이용한 방법은..
Adsutil.vbs set /MSFTPSVC/PassivePortRange “5000-5010”

2> 방화벽 포트를 연다.

패시브 포트로 연 포트들을 방화벽에서 하나하나 등록해야 된다….

위 작업을 간단히

배치파일로 처리가 가능하다.

================= PassivePort.bat ======

Echo OFF

ECHO ADDING PORT RANGE TO IIS
CScript.Exe C:\Inetpub\AdminScripts\adsutil.vbs set /MSFTPSVC/PassivePortRange “5000-5010”

ECHO OPENING FIREWALL PORTS
FOR /L %%I IN (5000,1,5010) DO NETSH FIREWALL ADD PORTOPENING TCP %%I 패시브FTP%%I

iisreset

ECHO FINISHED
Pause

=========================================

위 내용부분을 서버에서 bat  파일로 저장후에 실행하자….. 간단히 해결된다….
http://support.microsoft.com/kb/555022
http://www.dervishmoose.com/blog/index.cfm/2008/9/2/Windows-2003-Server-FTP-and-Firewall-Passive-port-range-tweak

http://clintm.esria.com/2006/11/20/configuring-windows-2003-firewall-and-iis-6-for-pasv-ftp-port-range/
http://cafe.naver.com/younetwork.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=286

참조 : http://blog.naver.com/forioso?redirect= ··· 42590075

passive 방식이라면 data 포트의 범위를 방화벽(서버측 혹은 ISP측)이 그다지 제한하지 않는 30000번 이상의 포트로 지정함으로써 크게 문제가 생기지 않죠 

추가

Passive FTP uses a range of ports to transfer data. This can be a problem because the port range that IIS uses has to be opened up at the Firewall. Many administrators would like to limit the port range between specific values so that they can have a better control on the ports that need to be opened on the Firewall. IIS can be configured to limit the port range but with multiple versions of IIS the configuration has changed a bit. So here is how you configure the port range (say 5500-5525) on IIS 5.0 / IIS 6.0 / IIS 7.0

IIS 5.0
=======

– On IIS 5.0 the Passive FTP Port range is controlled via a registry key

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msftpsvc\ParametersPassivePortRange        REG_SZ          5500-5525

IIS 6.0
=======

– On IIS 6.0 the Passive FTP port range is controlled via a metabase key

/MSFTPSVC/PassivePortRange

adsutil.vbs set /MSFTPSVC/PassivePortRange “5500-5525”

IIS 7.0
=======
– IIS 7.0 has two FTP services available

1. Classic FTP Service
————————————-
– The classic FTP service is similar to IIS 6.0 and requires IIS 6.0 Metabase compatibility to be installed
– Here the Passive FTP port range is controlled via the  metabase key

/MSFTPSVC/PassivePortRange

– Similar to IIS 6.0

2. FTP7 Module
————————–
– This is an OutOfBand Module that is shipped as an addon
– FTP7 module is used when SSL over FTP is required
– Here the Passive FTP port range is controlled via an entry in applicationHost.config
– You can also set this using the IIS Manager UI

Global Level (Server name) > FTP Firewall Support > Data Channel Port Range

FTP2008_01

FTP2008_02