Windows Server 2019 - FTP서버(IIS) 설치 및 운영

    FTP Server (IIS)

    FTP(File Transfer Protocol) Server는 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜입니다. TCP/IP 통신 포트는 21(Port)을 사용합니다. IIS 하위 패키지에 포함되어 있으며 기본적으로 설치는 되어있지 않으므로 서버 관리자(또는 제어판의 Windows 기능 켜기/끄기)에서 역할 기능 추가 설치를 해야 이용이 가능합니다. 그럼 설치 및 간단한 테스트에 대해서 알아보도록 하겠습니다.

     

    Web Server (IIS) 설치 : https://foxydog.tistory.com/49

    기본적으로 IIS설치가 되어있어야 합니다.


    STEP01 → 역할 및 기능 추가

    1-1 서버 관리자[대시보드]에서 추가 (부팅 시 기본으로 팝업창 오픈)

     

    1-2 제어판에서 추가

     

     

    STEP02 → FTP 설치하기 (순서대로)

    앞부분은 기본으로 [다음]만 넘어가시고 바로 [서버 역할]로 넘어옵니다. 그중 FTP Service 만 추가로 체크하여 다음으로 넘어갑니다. 확장성은 전문가용으로 일반 사용자의 경우는 필요 없습니다. 물론 체크해도 상관은 없습니다.

    ※ IIS(인터넷 정보 서비스) 관리자 실행시 FTP 관련 메뉴가 활성화가 된 것을 확인할 수 있습니다.

     

     

    STEP03 → 일반 사용자 계정 생성

    윈도우 서버는 개인이 사용하기에는 수지타산이 맞지 않습니다. 호스팅 서비스로 하나의 서버에 여러 사용자가 이용한다는 가정하에 진행하도록 하겠습니다. 보안을 위해 각각의 웹 디렉터리에만 접근이 가능한 일반 사용자 계정을 생성하는 게 좋습니다. 사용자를 추가하기 위해서는 컴퓨터 관리에서 가능합니다.

    위치 : 제어판 ▷ 시스템 및 보안 ▷관리 도구 ▷ 컴퓨터 관리
    테스트를 위해 임의의 계정 eztest01, eztest02 2개 이상 생성합니다.

     

     

    STEP04 → 웹 디렉토리 생성 및 웹 디렉터리에 일반 계정 권한 부여

    ※ 디스크 관리를 위해 별도 로컬 디스크(D:)를 추가(분리)하는 게 좋습니다.

     

    4-1 최상위 디렉터리 생성

    ※ 사용자별로 격리가 필요하므로 최상위 폴더는 무조건 LocalUser 이름으로 생성할 것

    [이는 하나의 약속(문법)으로 어떠한 경로를 지정하던 격리를 할 경우는 LocalUser 폴더 아래에 각 사용자별 디렉터리를 생성해야 합니다.]

     

    4-2 디렉토리에 일반 계정 권한 부여

    ※ eztest01 사용자 계정이 eztest01 폴더에만 접근하여 읽기 쓰기(수정)을 할 수 있게 보안 설정을 한다고 생각하시면 됩니다. eztest02 사용자 계정에게도 이하동문 설정

     

     

    STEP05 → FTP 사이트 추가하기

    ※ 일반적으로는 사이트별로 FTP 설정을 하는 게 좋지만 만약 사용자별로 계정 및 디렉터리를 다르게 설정을 했다면 콘텐츠 디렉터리를 최상위 폴더를 잡아주시면 됩니다.

     

    5-1 FTP 사이트 추가 설정(순서대로)

     

    5-2 FTP 사용자 격리 설정

     

     

    STEP06 → FTP 접속을 위한 방화벽 허용

     

    6-1 IIS에서 방화벽 설정(FTP 수동 연결을 위한 설정)

     

    6-2 Windows 고급 방화벽 설정

    ※ FTP 접속을 위한 기본 포트는 21입니다. 추가로 FTP SSL 포트는 990, FTP 수동 포트는 1024-65535이며 통과하기 위해서는 [Windows Defender 방화벽]에서 들어올 수 있도록 인바운드 허용 처리를 해야 합니다. 관리 도구에서 선택하거나 제어판에서도 접속이 가능합니다.

     

     

    STEP07 → FTP 접속 테스트

    FTP 클라이언트는 여러 가지가 있지만 주로 알드라이브(구 알FTP), 파일 질라(FileZilla) 같은 프로그램을 이용하시면 됩니다.

    저는 파일질라를 통해 테스트를 진행해보겠습니다.

    파일 질라 공식 다운로드 사이트 : https://filezilla-project.org/download.php?type=client

     

    □ 계정 연결 테스트

    호스트 : 도메인 주소(eztest01.com)이나 본인 테스트 서버 IP 입력

    사용자명 : eztest01 (비밀번호 입력)

    포트 : 21

     

     

    참고사항 → 사용자 격리에 대한 설명

    ■ 사용자 격리를 안 할 경우

    일반 사용자가 로그인 할 경우 최상위 하위 폴더 모두 조회가 가능하므로 보안에 취약합니다.

    이 방법은 호스트(도메인)는 여러 개 이용하지만 단독형 서버로 본인 혼자 관리할 경우에만 이용하는 게 좋습니다.

     

    ■ 사용자 격리를 했지만 최상위 폴더 이름을 LocalUser 하지 않을 경우 (STEP04 참고)

    로그인 패스워드를 정확히 입력을 하더라도 디렉터리 경로를 찾지 못해 해당 메시지의 오류가 발생합니다.

    오류 응답 코드 : 530 User cannot log in, home directory inaccessible.

     

     

    마치며

    앞서 말했듯이 윈도우 서버는 단독형으로 단 하나의 호스트(도메인)를 연결하여 사용하기에는 비용적으로 매우 비효율적입니다. 그렇기 때문에 자연스럽게 하나의 서버에 여러 호스트(도메인)를 연결하여 관리를 합니다. 이는 각 사용자별로 웹 디렉터리를 연결할 수 있게 해야 하며 보안적으로 격리 운영하기 위해서 꼭 필요한 작업입니다.

    Designed by JB FACTORY