FTP의 의미
FTP란 파일 전송 프로토콜(File Transfer Protocol)의 약자입니다. 기본적으로 ‘프로토콜’ 또는 인터넷 프로토콜은 전자기기가 서로 통신하는 데 필요한 절차나 규칙을 말합니다. FTP는 TCP/IP 네트워크(인터넷)상의 장치가 파일을 전송할 때 사용하는 규칙입니다. 인터넷을 사용할 때 우리는 다양한 프로토콜을 사용합니다. 인터넷을 둘러볼 때는 HTTP를 사용하고, 인스턴트 메시지를 주고받을 때는 XMPP를 사용합니다. 간단히 말해 FTP는 파일을 이동할 때 사용하는 프로토콜입니다.
FTP 서버란?
FTP 서버란 파일을 Mac, Windows, Linux 컴퓨터 등의 장치에서 다른 장치로 전송하는 소프트웨어 애플리케이션을 말합니다. 간단히 설명하면 FTP 서버는 FTP 주소를 가지고 있고 FTP 연결을 수신하는 데 사용되는 컴퓨터입니다. FTP 서버는 두 가지 간단한 작업을 실행합니다. ‘받기’와 ‘보내기’입니다. 우리는 FTP 서버로부터 파일을 ‘받을’ 수도 있고, FTP 서버로 파일을 ‘보낼’ 수도 있습니다. 파일을 업로드하면 업로드 된 파일이 개인용 장치에서 서버로 전송되고, 파일을 다운로드하면 다운로드 된 파일이 서버에서 개인용 장치로 전송됩니다. 따라서 기본적인 관점에서 보면 FTP 서버는 수신자와 전송자 사이에 위치한 중간 지점과도 같습니다.
FTP의 원리
FTP는 클라이언트-서버 프로토콜입니다. 즉, 클라이언트가 파일을 요청하면 서버가 요청된 파일을 제공합니다. 그래서 FTP 프로토콜 연결을 설정하려면 두 개의 기본 채널이 필요합니다.
- 명령 채널: 명령을 시작해 어떤 파일에 액세스할 것인지 등과 같은 기본 정보를 전달합니다.
- 데이터 채널: 두 장치 간에 파일 데이터를 전송합니다.
연결을 설정하려면 사용자가 FTP 서버 로그인 정보를 제공해야 하는데, 일반적으로는 21번 포트를 기본 통신 모드로 사용합니다. ‘포트’란 아주 간단히 설명하면 네트워크를 통한 정보 트랜잭션을 식별하는 데 사용되는 번호를 말합니다. FTP의 연결 모드에는 능동 모드, 수동 모드 2가지가 있다는 점도 알고 있어야 합니다.
능동 FTP 모드에서는 서버가 데이터 요청을 승인하는 능동적인 역할을 합니다. 하지만 능동 모드에서는 방화벽으로 인한 문제가 종종 발생합니다. 제 삼자가 권한이 없는 세션에 액세스하려고 하면 해당 세션이 차단되는 것이죠. 수동 모드가 역량을 발휘하는 순간이 바로 이때입니다. 수동 모드에서는 서버가 능동적으로 연결을 유지하지 않습니다. 즉, 사용자가 데이터 채널과 명령 채널 모두를 설정하죠. 서버는 기본적으로 ‘듣기만’ 할 뿐, 능동적으로 관여하지 않음으로써 다른 장치가 대부분의 작업을 처리하도록 합니다.
FTP가 유용하게 사용되는 경우
FTP는 주로 대량의 파일을 처리할 때 사용됩니다. 그래서 웹 개발에 특히 유용하죠. 웹사이트를 수정할 때 FTP 세션을 통해 파일 전송을 관리하면 특정한 파일 업로드, 이미지 파일 추가, 웹 템플릿 이동 등의 작업을 수월하게 처리할 수 있습니다. 이와 유사하게 IT 담당자들도 FTP를 통해 폐쇄형 시스템 내에서 대량의 서버 배치 파일을 간단하게 전송할 수 있죠.
FTP의 장점
FTP에는 꼭 알아야 할 몇 가지 장점이 있습니다. FTP의 가장 큰 장점은 동시에 여러 파일을 전송하고, 연결이 끊긴 경우 전송을 재개할 수 있으며, 전송 일정을 예약할 수 있다는 점입니다. 또한, 오랫동안 사용되어왔기 때문에 대부분의 사람들이 이미 이 프로토콜에 익숙합니다. FileZilla, WinSCP, Cyberduck 등 FTP를 보다 간편하게 사용할 수 있도록 지원하는 데스크톱 소프트웨어 도구도 다양하게 있죠.
FTP의 단점
FTP의 가장 치명적인 단점은 바로 보안이 취약하다는 것입니다. FTP는 1970년대에 개발되었습니다. 오늘날 우리가 사용하는 대부분의 사이버 보안 조치보다 먼저 개발되었죠. 또한, 보안 프로토콜로 설계된 것이 아니기 때문에 FTP 전송은 암호화되지 않습니다. 그래서 데이터 패킷을 캡처하려는 해커들이 패킷 캡처 공격을 통해 비교적 쉽게 비밀번호, 사용자 이름, 그 외 기타 민감한 데이터를 읽을 수 있죠.
이러한 보안상의 구멍으로 인해 오늘날에는 FTP에 대한 지원이 점점 줄어들고 있습니다. SFTP, HTTPS, AS2, FTPS처럼 FTP를 대체할 수 있는 옵션도 시장에 다양하게 출시되었죠. Google Chrome의 경우 2020년부터 FTP 지원을 중단했고, Firefox도 FTP 관련 코드를 모두 삭제했습니다.
출처) https://experience.dropbox.com/ko-kr/resources/what-is-ftp