왓풀(whatpull)

FTP(File Transfer Protocol) 본문

웹개발/[지식] 프로그래밍

FTP(File Transfer Protocol)

이연수(Allen) 2022. 7. 31. 23:06

파일 전송 프로토콜(File Transfer Protocol,FTP) TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜이다. 파일 전송 프로토콜은 TCP/IP 프로토콜 테이블의 응용 계층에 속하며, 역사는 오래 되었지만 지금도 인터넷에서 자주 사용된다. 최초의 FTP 클라이언트 애플리케이션들은 운영 체제 그래픽 사용자 인터페이스를 갖추기 이전에 개발된 명령 줄 프로그램이었으며, 대부분의 윈도우, 유닉스, 리눅스 운영 체제에 현재도 기본 포함되어 있다.[1][2] 그 뒤로 수많은 FTP 클라이언트 및 오토메이션 유틸리티들이 데스크톱, 서버, 모바일 장치, 하드웨어용으로 개발되고 있으며, FTP는 웹 페이지 편집기와 같은 생산성 응용 프로그램들에 통합되고 있다.

 

파일 전송 프로토콜 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. FTP은 여기로 연결됩니다. 다른 뜻에 대해서는 FTP (동음이의) 문서를 참고하십시오. 파일 전송 프로토콜(File Transfer Protocol, FTP)은 TCP/IP 프로토콜을 가지고 서버와

ko.wikipedia.org

 

 

프로토콜 개요

HTTP와는 달리 연결의 종류는 2가지가 있다:

  • 명령 연결: 먼저 제어 포트인 서버 21번 포트로 사용자 인증, 명령을 위한 연결이 만들어지고, 여기를 통해 클라이언트에서 지시하는 명령어가 전달된다.
  • 데이터 전송용 연결: 실제의 파일 전송은 필요할 때 새로운 연결이 만들어진다.
    • 능동 모드(액티브 모드): 서버가 자신의 데이터 포트인 20번 포트에서부터 클라이언트가 지정한 지점으로의 데이터 연결을 만든다. 클라이언트가 지정하는 포트는 주로 1023 보다 큰 번호가 매겨진 포트이다. 클라이언트가 방화벽, NAT(IP 마스킹) 등을 사용하는 환경일 때에 잘 동작하지 않을 수 있는데, 이때 수동 모드를 이용하면 된다.
    • 수동 모드(패시브 모드): 클라이언트가 서버가 지정한 서버 포트로 연결할 수 있게 한다. 이 때에는 보통 양쪽 포트 모두 1023 보다 큰 포트를 사용한다.

어느 모드에서도 2개의 연결을 만드는 점은 다르지 않다. 하지만 FTP 포트를 변경하게 되고 방화벽이 있는 경우, 방화벽 Inspection 모드 설정에 따라 FTP 통신은 정상적이지만, get 명령이나 ls 명령 등 FTP-DATA포트를 이용한 통신은 정상적으로 이루어지지 않을 수 있다.

 

보안

FTP는 보안 프로토콜로 계획되지 않았기 때문에 수많은 보안 취약점이 존재한다.[4] 1999년 5월에, RFC 2577 저자들은 다음의 문제에 대한 취약점을 나열하였다:

파일 전송 프로토콜은 서버의 파일을 바꾸거나 지울 수 있기 때문에 전송하기 앞서 사용자 이름과 암호를 묻는 인증 과정이 필요하다. 보통 FTP에서는 암호가 암호화되지 않아 위험하기 때문에 원 타임(한 번만 묻는) 암호를 이용한 인증을 이용하며, 아니면 보안을 더욱 철저하게 하려면 아예 SFTP, SCP 등 다른 방법을 사용하여 파일을 전송한다.

 

 

'웹개발 > [지식] 프로그래밍' 카테고리의 다른 글

DNS(Domain Name System)  (0) 2022.08.01
HTTP(HyperText Transfer Protocol)  (0) 2022.07.31
XML-RPC  (0) 2022.07.31
SOAP  (0) 2022.07.31
소켓(Socket)  (0) 2022.07.31
Comments