본문 바로가기
작업/Linux, etc

Windows FTP Server 만들기

728x90

 

FTP ( File Transfer Protocol )

네트워크를 통해 파일을 송/수신할 때 필요한 통신 프로토콜 표준.

Client  <--> Server 간의 File Upload와 Download 시 사용.

보안이 적용된 방법으로 FTPS (FTP Secure - SSL/TLS 기반)와 SFTP (SSH 기반)이 있다.

 

Active / Passive Mode

FTP는 Client의 연결 요청에 필요한 제어(Control) Port로 기본값 21번을 사용합니다.

그리고 File(Data) 전송에 필요한 Port로 기본값 20번 또는 별도 지정된 값을 사용합니다.

 

File Transfer에 사용하는 Port는 실제 데이터(File)가 전송되는 통로입니다.

제어(21번)와 전송(20번 또는 별도 포트)을 독립적으로 처리하기 때문에 통신 과정에서의 충돌을 방지합니다.

데이터 전송에 사용하는 Port의 연결 방식에 따라 'Active'와 'Passive'로 구분합니다.

 

▶ Active

Server가 Client의 데이터 전송 Port에 Connection.

Client에서 '외부로 들어오는 연결'에 대한 방화벽 및 포트 포워딩 작업이 필요하다.

Client 쪽에서 Connection을 위한 포트 허용 상태 때문에 보안 취약점이 발생할 수 있다.

 

▶ Passive

Client가 Server의 데이터 전송 Port에 Connection.

제어/전송 Connection 요청이 모두 'Client'에 의해 이루어지므로 Client 환경에서는 안전함.


Windows 환경에서 특정 폴더(FTP Server의 root(/))에 접근할 수 있도록 FTP Server를 만들고,

외부에서 Connection 해서 파일을 확인하는 과정을 기록했습니다.

 

> FTP Server를 만들 PC의 네트워크 환경

  • 공인 IP : 58.aaa.bb.cc
  • 공유기 사설 IP : 192.168.3.20
  • 제어 Port : 21
  • 데이터 Port : 20

FTP Server를 만들 PC의 네트워크 환경

 

① Windows 기능 켜기/끄기

FTP Server 생성과 관리에 필요한 기능을 활성화합니다.

IIS (Internet Information Services) : Web/FTP 등의 서버를 운영할 수 있도록 도와주는 MS의 Software.

 

'Windows 기능'에서 'FTP 서버 - FTP 서비스'와 'IIS 관리 콘솔'을 활성화 후, 재부팅 합니다.

FTP 서버 - FTP 서비스 활성화
IIS 관리 콘솔 활성화

 

② FTP Server로 사용할 폴더와 접근 허가된 그룹 생성.

'FTP' 이름의 폴더를 생성하고 이를 FTP Server의 '/'(root)로 사용하겠습니다.

FTP Server로 사용할 폴더 생성

 

FTP Server에 접근할 수 있는 권한을 가진 그룹을 생성하겠습니다.

  • FTP 폴더를 우클릭 → 속성 → 보안 → 편집

 

  • '[폴더명]의 사용 권한'에서 '추가' 선택.

 

  • '사용자 또는 그룹 선택'에서 '고급' 선택.

  • '사용자 또는 그룹 선택 (고급)'에서 '지금 찾기' → 검색 결과에서 'IIS_IUSRS' 더블 클릭.

IIS_IUSRS 그룹은 IIS의 리소스(파일, 폴더 등)에 접근하기 위한 권한을 보여할 때 사용하는 보안 그룹입니다.

개인 필요에 따라 그룹은 자유롭게 생성하면 됩니다.

  • 선택한 그룹이 표시된 것을 확인.

선택한 그룹이 표시됨

  • 추가된 그룹의 폴더 사용 권한 설정.

선택 기본값으로 '읽기 및 실행', '폴더 내용 보기', '읽기' 3개가 선택되어 있습니다.

'쓰기'는 사용 목적에 따라 권한 부여하면 됩니다.

 

그룹의 사용 권한 부여

 

③ FTP Server 접근 사용자 생성

FTP Server에 접근할 수 있는 사용자를 생성해서 관리합니다.

무분별한 사용자가 접근해서 발생할 수 있는 보안 문제를 방지하기 위함입니다.

 

  • Windows '실행'에서 ' lusrmgr.msc ' 실행

lusrmgr : Local Users and Groups Manager

msc : Microsoft Management Console

 

  • 사용자 목록이 표시된 공간을 우클릭 → '새 사용자' 선택.

 

  • 사용자 이름과 비밀번호(암호), 관련 옵션 선택.

본 글에서는 사용자 이름으로 'ftpuser'를 작성했습니다.

 

 

  • ftpuser 사용자의 기존 그룹은 삭제하고 'IIS_IUSRS' 그룹 추가하기.

사용자를 우클릭 -> 속성

 

기존 그룹은 제거, 추가로 'IIS_IUSRS' 그룹 선택

 

 

지금 찾기에서 나오는 IIS_IUSRS 그룹을 더블 클릭으로 추가

 

④ FTP Server Site 생성.

FTP Server로 사용할 'FTP' 폴더를 / (root)로 둘 수 있도록 Site를 생성합니다.

  • Windows 검색에서 'IIS 관리자'를 찾아 엽니다.
  • '사이트'를 우클릭 후 'FTP 사이트 추가'를 선택합니다.

Windows 검색에서 찾기

 

  • FTP 사이트 이름, FTP Server에 사용할 폴더 경로를 지정합니다.

 

  • '바인딩 주소', 'SSL 여부' 등을 설정합니다.

 

  • 인증은 '기본',  권한 부여에 '지정한 사용자'와 사용자 이름을 작성합니다.

 

  • 추가된 Site를 확인합니다.

 

  • 'FTP 권한 부여 규칙'에서 허용된 사용자를 확인할 수 있습니다.

 

 

⑤ 방화벽 Port 규칙 추가

FTP Tool은 Passive 방식의 Connection을 주로 다룹니다.

본 글에서는 'FileZila' 프로그램을 사용할 예정인데 기본값으로 Passive(수동형) 방식의 연결을 합니다.

FTP Server에서는 21번 port를 필수로 허용해야 합니다.

 

데이터 포트의 경우는 특정 값이나 범위를 지정해서 사용할 수 있습니다.

IIS에서 'FTP 방화벽 지원'에 들어가면 데이터 포트 값을 확인할 수 있습니다.

'0-0'은 특정 범위를 지정하지 않고 운영체제가 임의로 선택한 Port를 사용합니다.

 

방화벽은 20, 21번 Port를 허용하도록 하겠습니다.

인바운드 규칙으로 20, 21번 TCP Port 추가(허용)

 

 

⑥ 사설 IP 포트 포워딩

FTP Server로 사용하는 PC가 공인 IP로 직접 네트워크 연결되어 있다면 해당하지 않는 내용입니다.

본 글에서의 네트워크 구성은 공유기를 거쳐 연결된 사설 IP의 FTP Server이므로 포트 포워딩 작업이 필요합니다.

사설 IP 주소는  192.168.3.20 이므로 20,21번 Port에 대해 해당 IP로 접근할 수 있도록 추가합니다.

(공유기 모델별 관리 페이지 접속 방법을 확인하세요.)

 

사설 IP 포트 포워딩 작업

 

 

⑦ FTP Server 운영 및 Client 연결 확인

FTP Server의 / (root)로 사용하는 'FTP' 폴더에 파일을 추가했습니다.

 

 

 

FileZila Client 프로그램에서 연결을 시도해봅니다.

호스트는 FTP Server PC의 공인 IP.

FTP Server의 폴더에 접근할 수 있는 사용자 정보(ID, PW).

포트는 제어(Control) Port인 21을 입력합니다.

 

정상 연결되면 FTP Server에서 관리하는 파일 내역을 확인할 수 있습니다.

 

 

이렇게 FTP Server를 만들고 Client에서 파일을 확인하는 과정까지 정리했습니다.

읽어주셔서 감사합니다.

 

- 끝 - 

 

728x90