[FTP] Windows Server FTP 설정하기

2019. 11. 27. 15:46WEB

이 글은 Windows Server 2008에서 작성되었으며, Windows Server 2012나 이후 버전에서도 사용할 수 있는 방법입니다.

FTP 용어정리

포트 설정

FTP는 기본적으로 2개의 포트를 사용합니다.

  • 제어포트(Control Port): 사용자 인증 및 명령입력에 사용되는 포트입니다. 주로 21번 포트가 사용됩니다.
  • 데이터포트(Data Port): 실제 데이터를 전송하는 포트입니다. 20번 포트가 기본적으로 사용되지만 설정에 따라 달라집니다.

Passive vs Active

Passive Mode와 Active Mode 구분은 클라이언트와 서버 중 누가 접속을 시도할 것인가에 따라 나누어 집니다.

  • Passive Mode: 클라이언트가 서버에 접속하는 모드입니다. 근래에는 대부분 Passive Mode를 사용합니다. 구체적으로 설명하자면 클라이언트가 서버의 21번 포트로 접속하여 사용자 인증을 진행하면, 서버는 클라이언트에게 데이터전송을 위한 접속포트를 알려주게 되고, 클라이언트는 다시 해당 포트로 서버에 접속합니다. Passive Mode의 장점은 클라이언트의 다양한 환경(공유기 등)에 영향을 많이 받지 않으며, 클라이언트가 FTP의 설정을 잘 몰라도 접속이 용이하다는 것입니다. Passive Mode의 단점은 서버에서 방화벽의 데이터 포트를 열어야 하기 때문에 상대적으로 서버가 보안설정에 손이 더 많이 가게 됩니다.
  • Active Model: 서버가 클라이언트에 접속하는 모드입니다. 자세히 설명하자면 클라이언트는 서버의 21번 포트로 접속하여 사용자 인증을 진행하고, 인증이 완료되면 클라이언트는 20번 포트로 서버에게 데이터전송포트를 알려줍니다. 서버는 전달받은 포트로 클라이언트 PC에 접속합니다. 장점은 클라이언트에서 방화벽 포트를 여는 설정을 해야 하기 때문에 서버는 상대적으로 보안에 이점을 가지게 된다는 것입니다. 단점으로는 FTP구조를 잘 모르는 클라이언트는 FTP 접속에 어려움을 겪는 다는 것입니다.

참고로 IIS는 Passive Mode와 Active Mode를 모두 지원합니다. IIS에서 따로 설정하는 부분은 없고 클라이언트가 요청하는 방법에 따라 결정됩니다.

FTP 서버구축 방법

  1. IIS를 실행하고 FTP 사이트 추가를 클릭합니다.
    IIS에서 FTP 사이트추가 클릭
  2. FTP 사이트 이름경로를 입력 후 다음을 클릭합니다.
    FTP 사이트 추가 : 사이트 이름과 경로 설정
  3. 접속할 IP, Port, 인증서를 설정하고 다음을 클릭합니다.
    FTP 사이트 추가 : 바인딩 및 SS 설정
  4. 기본 인증을 선택하고 로그인 할 계정을 입력합니다.
    FTP 사이트 추가 : 인증 및 권한 부여 정보
  5. FTP가 추가되면 클릭 후 좌측 상단의 사용 권한 편집을 클릭합니다.
    사용 권한 편집 클릭
  6. 보안에서 IIS_IUSRS 사용자를 추가해줍니다.
    IIS_IUSRS 추가
  7. 필요한 권한을 반드시 체크해주시기 바랍니다.
    FTP폴더 권한 추가
  8. 방화벽 포트를 설정해야 합니다. 인바운드 규칙 → 새 규칙 → 미리 정의됨에서 FTP 서버를 선택합니다.
    미리 정의됨: FTP 서버 선택
  9. 규칙을 선택하고 다음을 클릭 후 연결 허용을 선택하여 방화벽 설정을 마무리해주세요.
    포트 인바운드 허용: FTP 서버
  10. IIS에서 FTP 사이트를 재시작 하신 후 FTP에 접속해보시기 바랍니다.

FTP 접속문제 해결

  • "550 Keyset does not exist" 오류
    1. [C:\ProgramData\Microsoft\Crypto\RSA] 폴더로 이동합니다.
    2. [MachineKeys] 폴더의 속성을 열고 [보안] 탭으로 이동합니다.
      MachineKeys 폴더의 속성열기
    3. FTP 접속 시 사용하는 사용자 계정을 추가하고 읽기 권한을 부여합니다.
      읽기 권한 추가
  • "디렉터리 목록을 조회하는 데 실패함" 오류
    1. Windows Server에서 명령 프롬프트 실행
    2. net stop ftpsvc를 입력한 후, net start ftpsvc를 입력
      Microsoft Windows [Version 10.0.17763.107] (c) 2018 Microsoft Corporation. All rights reserved. C:\Users\Administrator>net stop ftpsvc Microsoft FTP Service 서비스를 멈춥니다.. Microsoft FTP Service 서비스를 잘 멈추었습니다. C:\Users\Administrator>net start ftpsvc Microsoft FTP Service 서비스를 시작합니다.. Microsoft FTP Service 서비스가 잘 시작되었습니다. C:\Users\Administrator>

사설망(공유기 사용)에서 FTP설정

서버가 공유기를 사용하는 내부망에 위치하면 추가적인 설정이 더 필요합니다.

  1. 먼저 IIS를 실행하고 좌측에서 홈을 선택합니다.
    IIS를 실행하고 좌측에서 홈을 선택합니다.
  2. FTP방화벽 지원을 클릭합니다.
    FTP방화벽 지원을 클릭합니다.
  3. 외부에 노출할 포트범위를 입력합니다. 그리고 공유기의 주소를 외부 IP주소에 입력합니다.
    ※ 참고 : [방화벽의 외부 IP주소]가 비활성화되어 있다면, 좌측 [연결] 패널에서 개별 FTP 사이트를 선택한건 아닌지 확인해주세요. 개별 FTP 사이트가 아니라 IIS의 최상위 홈을 선택한 후 [FTP 방화벽 지원]을 클릭해야합니다. .
  4. 명령 프롬프트를 실행하고 FTP를 재시작합니다. net stop ftpsvc, net start ftpsvc를 차례로 입력하시면 됩니다.
    명령 프롬프트를 실행하고 FTP를 재시작합니다. net stop ftpsvc, net start ftpsvc를 차례로 입력하시면 됩니다.
  5. 마지막으로 공유기 설정에서 포트포워딩 설정을 해줍니다. 위에서 5000-6000으로 설정했으므로 포트포워딩도 5000-6000대로 설정하였습니다.
    마지막으로 공유기 설정에서 포트포워딩 설정을 해줍니다. 위에서 5000-6000으로 설정했으므로 포트포워딩도 5000-6000대로 설정하였습니다.

'WEB' 카테고리의 다른 글

[IIS] 무료 TLS 인증서 발급 및 HTTPS 설치  (0) 2020.04.23
[Blazor] ASP.NET Core Blazor 소개  (0) 2020.03.25
HSTS (HTTP Strict Transport Security)  (0) 2018.11.09
URL분해 및 Domain의 포함관계  (1) 2017.10.18
URL vs URI vs URN  (0) 2017.10.18