본문 바로가기

운영체제/윈도우

IIS에서 FTP passive mode 문제



FTP 서비스는 두개의 포트를 열어서 운영을 하게 되는데, 기본 FTP 의 경우 21번포트로 접근을 해서 인증을 받은후에 20번 포트를 열어서 LIST 를 보여주고, 데이터를 전송을 합니다.

(21번 command port, 20번 data port)
보통 보안상의 문제등으로 그 포트를 변경해서 사용하게 되는데,

이 경우, 방화벽이 있을시에 비정규 포트의 접근은 가능하지만, 리스트가 보이지 않게 되는 경우가 발생하게 됩니다. 

IIS4,5에서는 1024-5000, IIS6에서는 1024-65535의 임시번호를 FTP 서버에서 사용하게 되는데,
방화벽을 설치한 보람이 없어지니, 이 문제를 해결해야합니다.

간단하게 방화벽에서는 특정포트를 제외하고 막은뒤에,
FTP에서 랜덤하게 열리는 포트범위만 방화벽에서 조절해주면 됩니다.

일단 FTP 를 열 포트 하나와(예:2121) 랜덤하게 열 5개의 포트(5001-5005)를 가정합니다.

(2008서버의 경우)
1. 관리도구>방화벽 으로 가서, 인바운드 규칙에 2121번 포트와, 5001-5005번 포트를 열어둡니다.

2. IIS 관리자의 속성에 보면, 메타베이스 직접 편집허용 란을 체크해줍니다. 

3. C:\Windows\System32\inetsrv\MetaBase.xml 파일을 열어
IISFtpService 의 마지막 부분에 PassivePortRange="5001-5005" 라고 삽입합니다.

4. FTP 서비스를 재시작 합니다.