Ftp 전송방식 active모드 vs passvie 모드

1 minute read

FTP 전송방식 Active모드 VS Passvie 모드

FTP다운로드시 확인해야 할 것 중 하나가 데이터 전송방식이 passive 모드인지 active 모드인지 확인을 해야한다.

일반적으로 FTP 포트는 21을 사용 함

Acttive 모드를 선택하면 데이터 채널은 일반적으로 FTP 포트 20이 됨

Passive 모드를 선택하면 임의의 포트가 됨

Active 모드는 mainframes 보편화 되고 보안적으로 별로 고려되지 않음.

Passive 모드는 PASV 명령은 기본적으로 데이터 전송을 위해 서버 포트가 연결될 수 있도록 요청하는 것 서버가 응답하면 후속 데이터 전송을 위해 연 데이터 포트 번호가 표시 됨

동작 방식

ActiveMode

  1. 사용자는 파일 전송 클라이언트의 임의의 포트로 FTP 연결을 함

  2. 서버가 연결할 클라이언트측 포트를 지정하는 포트를 지정하는 PORT 명령 수행
  3. 서버는 데이터 채널용으로 지정된 클라이언트 포트로 연결됨 데이터 연결이 설정되면 클라이언트 및 서버 포트를 통해 전송이 이루어 짐

PassiveMode

  1. 클라이언트는 임의의 포트에서 서버 포트로 연결하고 PASV 명령을 실행
  2. 서버가 응답하여 데이터 전송을 위해 랜덤포트를 표시
  3. 클라이언트는 다른 임의의 포트에서 서버의 응답에 지정된 임의 포트로 연결
  4. 연결이 설정되면 이러한 클라이언트 및 서버 포트를 통해 데이터가 전송 됨

결정 사항

방화벽이 없다면 무엇을 사용하든가 상관이 없다 하지만 보안적 이슈가 증가하고 있음에 따라 방화벽이 거의 대부분 존재 함

이 경우 외부에서 미리 정의된 포트만 액세스 할 수 있음

주의 사항

Active Mode의 경우 클라이언트에서 인바운드 포트를 하나만 열고 아웃바운드 포트를 임의로 지정해서 열어 줌 (포트가 고정되 보안에 취약)

Passive Mode 는 인바운드포트를 열어주고 아웃바운드 포트를 많이 열어줘야 된다

(클라이언트 Client로 접속 시도하는 취약점은 방지하지만 아웃바운드 포트가 노출 됨 )

Active Mode에서는 DATA Channel 요청을 서버->클라이언트 방향으로 접속합니다.

Passive Mode에서는 DATA Channel 요청을 클라이언트->서버 방향으로 접속합니다.

Updated: