본문 바로가기
Windows

FTP - active mode 구성 [Window Server]

by Nirah 2022. 11. 10.

Stand along 환경을 구성해 보겠다.

이 환경은 각각 독립적으로 성립하지만 무겁다는 단점이 있다.

AD를 실습하기 이전에 구조를 익히기 위해서 먼저 구성해 보고자 한다.

 

설계도는 아래와 같다.

 

 

 

 

FTP ( File Transfer Protocol )

대용량 파일 전송 서비스,


 

 active 모드: TCP 20

 

  1. Client가 서버에 FTP 통신 요청 (tcp 21), 자기가 수신할 데이터 port 통보 (ex. tcp 5151)
  2. Server가 응답, Server가 데이터 전송 (ex. tcp 5151)
  3. Client측 포트가 열려있지 않으면 몇 번을 port로 사용하는지 모름
  4. Client 측에서 모든 Port Open
  5. FTP App에 대해서만 방화벽 Open

 

(Active mode 사용 시 Client와 Server 사이에 방화벽이나 세션 장비가 있다면 양방향 열어줘야 하는 단점)

 

 

 

 


 Passvice 모드: 서버가 지정한 포트,  TCP 21

  1. Client가 Server에 FTP 통신 요청 (tcp 21), PASV 모드를 사용하겠다고 통보
  2. Server가 응답, Server가 수신에 사용할 데이터 전송 포트를 Client에게 통보 (ex. tcp 3267)
  3. Server가 알려준 포트로 데이터 요청해서 데이터 받음 (ex. tcp 3267)

 

(PASV mode 사용 시 Client만 서버측에서 지정한 포트에 방화벽에서 오픈하면 가능한 장점)
그래서 passvice 모드를 더 많이 사용한다.

 

 

 

<< 구성 >>

 

우선 Active 모드 부터 구성해본다.

IIS 웹 서버를 설치한다. 여기에 ftp 기능이 포함돼 있다.

 

각 항목 왼쪽에 삼각형이 뜬다. 클릭하면 세부적인 설치 사항을 고를 수 있다.

만약 나중에 설치 옵션에서 세부 사항 몇 개를 빼먹었다면 몇 가지 기능이 없을 수도 있다.

그럴 땐 다시 여기 돌아와서 삼각형을 누르고 세부 항목을 더 추가할 수 있을 것이다.

 

 

아래와 같이 옵션을 체크해준다.

 

FTP에 대한 폴더를 만들 것인데,

보안상 공격자도 다 아는 기본 위치 (사용자) 말고 새로 생성해주자.

 

※ 주의할 점 : 폴더 이름은 특수문자 언더바 같은건 되지만 + 같이 다른 특수문자가 들어가면

홈디렉터리로 못들어가서 로그인이 안되는 문제가 생긴다.

 

ftp 들어가서 쉬프트키 우측버튼으로 파워쉘을 켠다.

 

이렇게 용량이 있는 더미파일을 생성한다.

 

서버 관리자에서 오른쪽 위 도구 탭 - IIS 관리자를 고른다.

 

우선 FTP 사이트를 만들어 보겠다.

웹 사이트 추가를 누른다.

 

아래와 같이 포트 21번에 ssl은 사용하지 않겠다.

 

 이런 식으로 특정 사용자는 허용하고 나머지도 허용하거나 거부하면 설정이 의미 없어진다.

그래서 보안에선 블랙리스트 방식을 주로 채택한다.

 

아래처럼 다시 설정해본다.

 

이렇게 되면 201번을 받은 윈도우 11머신은 접속이 안될것이고

101번인 윈도우 10머신은 접속이 될 것이다.

 

 

 

 

 

 

 

 

 

저 두개는 반드시 같이 설정해준다.

 

이미 접속중인 사용자는 여기서 허용을 삭제해도 dir이 먹힌다.

접속을 끊고 처리해주자.

 

방화벽 기능은 아래와 같이 전역 설정에서 해야한다.

 

chroot 기능이다. 

 

서버에선 아래와 같이 미리 열려있어서 FTP 관련한 포트는 따로 20-21 만 열여줘도 된다.

클라이언트는 ftp.exe 프로그램으로 여는 것이라 포트를 열어줄 필요가 없다.

(근데 이 프로그램은 방화벽에서 열어줘야 한다.)

열어준다.

클라이언트는 C:\Windows\System32 여기서 ftp.exe 파일을 찾아 허용해준다.

 

 

윈도우 10으로 접속이 된다. 101

 

 

 

 

사용자들을 자기 디렉토리에 로그인 되게 하고 격리시킬 것이다.

 

 

또는 shr 위에 마우스 오른쪽 - 탐색

아래 홈 디렉토리를 만들고 안에 확인용 텍스트파일을 만들어 준다.

 

여기서 세션 연결 끊음을 누르면 저 다운로드를 한 상대방과의 연결을 일방적으로 끊을 수 있다.

 

어나니머스는 디폴트가 아니라 퍼블릭이다.

어나니머스로 로그인을 허용하게 되면 어나니머스는 사용자 이름 디렉토리 옵션의 영향을 안받아

모든 홈디렉터리를 돌아다닐 수 있게 된다.

 

 

어나니머스까지 가두려면

localuser 폴더 아래 public 폴더를 만든다.

다른 a 같은 사용자도 홈을 localuser아래 둔다.

다만 저 옵션은 사용자 디렉토리 이름으로 된 실제 폴더가 존재해야 한다.

 

다음과 같이 갇혀있다.

 

 

 

 

제일 많이 쓰는 옵션이다.

실제 여기 없는 앤데 존재하는 것처럼 하는 원리이다.

사용자 이름으로 된 실제 디렉토리가 존재하지 않아도 가능하다.

한번 상위폴더를 등록하면 새로고침을 누르면 실제 편집한 하위폴더 내용이 자동 반영되어 추가되거나 제거된다.

 

각각 아까 만든 폴더와 매칭 시키면 된다.

가상 디렉토리와 물리적인 디렉토리를 분리하는 것은 보안상 좋은 기술이기 때문에 많이 쓰인다.

실제 위치를 알 수없게 하기 위해서 이다.

몇몇 계정은 가상 홈 디렉터리를 그 이름 그대로 물리적인 폴더 이름과 같게 쓸 수 도 있고,

계정명과 가상 홈 디렉터리는 이름이 같지만 사실은 다른 이름의 다른 동떨어진 위치의 물리폴더를 쓸 수도 있다.