2015.09.23 20:26
IIS기반 FTP 서비스는 패시브모드(Passive-mode)와 액티브모드(Active-mode) 2가지를 지원합니다.
Active-mode 는 클라이언트 기반 접속이며, 웹서버쪽에 20,21 번이 열린 FTP 접속시 클라이언트에서는 포트가 랜덤포트를 이용하나 서버 포트는 변함이 없습니다.
Passive-mode 는 서버쪽 21번 포트로 접속시, 클라이언트의 랜덤포트가 아니라 서버쪽 랜덤포트를 이용하게 되며 서버는 클라이언트에게 pasv 명령어를 보내며, 클라이언트는 승인하게 됩니다.
문제는, 패시브모드의 경우 서버쪽에 1024 에서 65535 포트 사이를 랜덤하게 할당하며, 네트워크 세션이 있을때마다 신규포트를 이용하게 됩니다. 이때, 서버쪽에 방화벽을 운영하거나 대량접속서비스가 운영중일때는 네트워크 자원이 부족하게 되어 접속장애가 있을 수 있습니다.
패시브모드에서의 서버쪽 랜덤 포트범위를 조정함으로써 이를 해결할 수 있으며,
해결책은 다음과 같습니다.
Windows Server 2003의 경우
1. 메타베이스를 수정하는 방법.(에러 발생시 iis 실행이 안될수 있으므로 주의해야함)
(메타베이스를 수정할려면, IIS MMC에서 메타베이스 직접수정 허용 설정이 되어 있어야 한다.)
2. ADSUTIL을 이용하는 방법.
Adsutil.vbs set /MSFTPSVC/PassivePortRange "5500-5700"
값으로는, 5500-5700 을 설정합니다.
명령프롬프트에서 Adsutil.vbs 파일이 있는(일반적으로 C:\Inetpub\AdminScripts 에 존재) 곳에서 명령을 실행하면 됩니다.
이때 PassivePortRange 이후의 " " 안에 포트구간을 설정하는데 ftp 접속이 많지 않은 경우
범위를 좁게하여 등록합니다.
해당 포트는 윈도우 자체방화벽 및 방화벽에서 정책으로 등록하셔야 합니다.