FTP(File Transfer Protocol)는 가장 오래되면서 가장 공통으로 사용되고 있는 프로토콜이다.
FTP는 외부에서 컴퓨터간 신뢰성 있는 파일전송을 지원한다.
Linux에서 가장 대표적으로 사용되는 FTP는 vsftpd 데몬이다.
rhel 7.0에서도 이전 버전과 마찬가지로 vsftpd를 사용한다.

FTP는 TCP 프로코톨 위에서 동작한다. TCP는 오래된 프로토콜로 암호화되지 않기 때문에 보안성은 취약하다.

FTP는 멀티 네트워크 포트를 사용한다. 이는 초기에 21번 포트를 사용해서 서버를 연다. 일반적으로 알려진 FTP포트가 21번이다.

서버로부터의 데이타는 별도의 data 포트를 통해 클라이언트로 전달된다. 이 포트의 번호는 passive mode, active mode에 따라 달라진다.

Active mode vs Passive mode



Active mode
Active 모드에서 클라이언트는 21번 포트를 사용해 서버와의 연결을 초기화 한 후 클라이언트에서 data용으로 사용할 port를 서버에 전달한다.

이후 서버의 20번 포트는 클라이언트에서 받은 data 포트로 데이터를 전달하고, 전달 완료 후 클라이언트는 ack로 서버의 20번 포트에 응답한다.

클라이언트에서 방화벽 등으로 port가 막혀있을 시 서버에서 클라이언트 port로 파일을 전달하지 못한다.

-> Command 포트는 클라이언트 -> 서버로 접속, Data 포트는 서버 -> 클라이언트로 접속하는 형태


Passive mode
Passive mode는 Active 모드와 같이 초기 21번 포트를 사용하여 클라이언트 -> 서버로 접속한 후 서버에서 data용으로 사용할 포트 번호를 전달 받는다.
클라이언트는 이후 전달 받은 data 포트로 2차 접속을 시도한다.
Passive mode에서는 클라이언트로의 접속 문제를 해결했다. 하지만 서버의 1024~65535 포트를 방화벽에서 다 열어야 하는 문제점이 있었다.( 서버의 data용 port 후보군)

아래는 Redhat 공식 문서의 active vs passive 비교 설명

active mode
Active mode is the original method used by the FTP protocol for transferring data to the client application. When an active-mode data transfer is initiated by the FTP client, the server opens a connection from port 20 on the server to the IP address and a random, unprivileged port (greater than 1024) specified by the client. This arrangement means that the client machine must be allowed to accept connections over any port above 1024. With the growth of insecure networks, such as the Internet, the use of firewalls for protecting client machines is now prevalent. Because these client-side firewalls often deny incoming connections from active-mode FTP servers, passive mode was devised.

passive mode
Passive mode, like active mode, is initiated by the FTP client application. When requesting data from the server, the FTP client indicates it wants to access the data in passive mode and the server provides the IP address and a random, unprivileged port (greater than 1024) on the server. The client then connects to that port on the server to download the requested information.
While passive mode does resolve issues for client-side firewall interference with data connections, it can complicate administration of the server-side firewall. You can reduce the number of open ports on a server by limiting the range of unprivileged ports on the FTP server. This also simplifies the process of configuring firewall rules for the server.

다른 카테고리의 글 목록

Linux 카테고리의 포스트를 톺아봅니다