Fileile Transfer Protocol의 줄임말이다. 하나의 호스트에서 다른 호스트로 파일을 옮기기 위한 TCP기반 프로토콜이다. 보통 FTP는 웹상에 파일을 올리기 위한 목적으로 널리 사용되고 있다. FTP는 서버&클라이언트 모델을 따른다. 클라이언트는 서버에 연결해서 파일 업로드 및 다운로드 요청을 하고, 요청을 받은 서버가 응답 데이터로 파일을 전송하거나 수신한다.
Anonymous FTP
인증 과정없이 유저의 접근을 허용한다. 인증과정 없이 접근 한 유저를 Anonymous 유저라고 한다. Anonymous 유저에게는 읽기 권한만을 주는게 일반적이다. 파일을 공유하기 위한 목적으로 주로 사용한다.
NAT traversal
NAT는 IP 기반의 기술이다. FTP는 L7 프로토콜이기 때문에, 기본적으로는 NAT와 상관없이 작동할 수 있다. 하지만 Host relay 기능을 사용하는 FTP 서버는 NAT 하에서 문제가 될 수 있다. FTP 서버는 유저 데이터 영역에 relay할 호스트의 IP 정보를 입력을 한다. 클라이언트는 유저데이터를 읽어서 realy 호스트의 주소를 읽고, 해당 서버로 연결을 시도하는데 relay 주소가 Private IP를 가르키기 때문에 relay ftp 서버로 연결을 할 수 없게 된다.
NAT 장비는 이 문제를 해결하기 위해서, 특정 포트에서 출발하는 패킷을 열어서 데이터를 수정하는 방법을 사용한다. 예를 들어 22번 포트에서 출발하는 FTP 패킷은 유저 데이터를 읽은 다음 relay ip 주소를 masquerade 주소로 변환한다음 전송하는 식이다.
웹 브라우저 지원
모든 웹 브라우저는 FTP 프로토콜을 지원한다. 직접 FTP 클라이언트가 돼서, FTP 서버에 연결할 수 있다. 접근 방법은 다음과 같다.
FTP
Anonymous FTP
NAT traversal
웹 브라우저 지원
Secure FTP
FTPS
SFTP
FTP over SSH
Recent Posts
Archive Posts
Tags