FTP 란?
FTP는 File Transfer Protocol의 약자로 파일을 전송하는 통신 규약이다.
FTP 서버에 파일들을 업로드, 다운로드할 수 있도록 해주는 프로토콜이며, 이는 FTP 서버와 FTP 클라이언트 간에 통신에서 이루어진다.
FTP는 Active 모드와 Passive 모드 2개의 모드가 존재하며, 각각의 모드에서는 2개 또는 2개 이상의 포트가 연결을 맺고 데이터를 전송하는데 사용된다.
사용되는 포트는 연결을 제어하는 Command 포트가 있으며 데이터를 전송하는 Data 포트가 있다.
FTP는 TCP 기반으로 기반으로 만들어져 있으며, 기본으로 동작 모드로는 Active모드를 사용한다. 일반적으로 Command포트는 20번 or 1024번 포트를 사용하고 Data 포트는 21번 포트를 사용한다.
Active 모드
Active 모드는 클라이언트가 서버에 접속하는 것이 아닌 서버가 클라이언트에 접속하는 방식이다.
FTP 클라이언트에 방화벽이 설치가 되어있는 즉 외부에서의 접속을 허용하지 않는 상황이라면 FTP 접속이 정상적으로 이루어지지 않을 것이다. 접속이 되더라도 데이터 목록을 받아오지 못하게 되는 경우가 있다.
- Active 모드 장단점
- 장점
- 서버에서 클라이언트로 접속하는 구조로 서버 측 보안위험이 낮음
- 단점
- FTP 구조를 잘 모르는 클라이언트의 경우, 정상 접속이 힘듬(방화벽,ACL 등)
- 장점
Passive 모드
Passive 모드는 클라이언트가 서버에 접속해서 데이터를 받아가는 방식이다.
FTP 서버측의 데이터 채널 포트가 막혀있는 경우 데이터 채널 연결이 불가능하게 된다.
- Passive 모드 장단점
- 장점
- 클라이언트에서 서버로 접속하는 구조로 사용이 Active 보다 용이
- 단점
- Passvice Mode에 사용되는 Port에 대한 ACL관리 필요 클라이언트에서 서버로 접속하는 구조로 서버측 보안위험이 높음
- 장점
FTP 연결 방식에 따른 설정 주의사항
- Active 모드
- 클라이언트 측의 방화벽 20번 포트가 차단되어 있으면, 데이터 채널 연결이 불가능해진다. 연결이 가능해지더라도 데이터 조회부터 실패되는 경우가 발생할 수 있다.
- 그러므로 서버는 20번 포트는 아웃바운드(Outbound, 서버에서 외부로 보내는 요청) 방화벽 허용과
클라이언트는 인바운드(inbound, 외부에서 내 서버로 들어오는 요청) 방화벽 허용이 필요하다.
- Passive 모드
- 서버의 데이터 채널 포트가 막혀있는 경우 데이터 채널 연결이 불가능해진다.
- 그러므로 inbound 모두 허용이 필요하게 되는데, 서버 측에서 데이터 채널 포트 범위를 지정해서 특정 범위 포트만 허용해주면 모든 포트 허용의 문제를 해결할 수 있다.
'IT Infra > Network' 카테고리의 다른 글
쿠키와 세션 (0) | 2022.02.16 |
---|---|
CNAME과 A record 차이 (0) | 2022.01.10 |
HTTP 상태코드 정리 (0) | 2022.01.05 |