Ftp 전송방식 active모드 vs passvie 모드
FTP 전송방식 Active모드 VS Passvie 모드
FTP다운로드시 확인해야 할 것 중 하나가 데이터 전송방식이 passive 모드인지 active 모드인지 확인을 해야한다.
일반적으로 FTP 포트는 21을 사용 함
Acttive 모드를 선택하면 데이터 채널은 일반적으로 FTP 포트 20이 됨
Passive 모드를 선택하면 임의의 포트가 됨
Active 모드는 mainframes 보편화 되고 보안적으로 별로 고려되지 않음.
Passive 모드는 PASV 명령은 기본적으로 데이터 전송을 위해 서버 포트가 연결될 수 있도록 요청하는 것 서버가 응답하면 후속 데이터 전송을 위해 연 데이터 포트 번호가 표시 됨
동작 방식
ActiveMode
-
사용자는 파일 전송 클라이언트의 임의의 포트로 FTP 연결을 함
- 서버가 연결할 클라이언트측 포트를 지정하는 포트를 지정하는 PORT 명령 수행
- 서버는 데이터 채널용으로 지정된 클라이언트 포트로 연결됨 데이터 연결이 설정되면 클라이언트 및 서버 포트를 통해 전송이 이루어 짐
PassiveMode
- 클라이언트는 임의의 포트에서 서버 포트로 연결하고 PASV 명령을 실행
- 서버가 응답하여 데이터 전송을 위해 랜덤포트를 표시
- 클라이언트는 다른 임의의 포트에서 서버의 응답에 지정된 임의 포트로 연결
- 연결이 설정되면 이러한 클라이언트 및 서버 포트를 통해 데이터가 전송 됨
결정 사항
방화벽이 없다면 무엇을 사용하든가 상관이 없다 하지만 보안적 이슈가 증가하고 있음에 따라 방화벽이 거의 대부분 존재 함
이 경우 외부에서 미리 정의된 포트만 액세스 할 수 있음
주의 사항
Active Mode의 경우 클라이언트에서 인바운드 포트를 하나만 열고 아웃바운드 포트를 임의로 지정해서 열어 줌 (포트가 고정되 보안에 취약)
Passive Mode 는 인바운드포트를 열어주고 아웃바운드 포트를 많이 열어줘야 된다
(클라이언트 Client로 접속 시도하는 취약점은 방지하지만 아웃바운드 포트가 노출 됨 )
Active Mode에서는 DATA Channel 요청을 서버->클라이언트 방향으로 접속합니다.
Passive Mode에서는 DATA Channel 요청을 클라이언트->서버 방향으로 접속합니다.