왓풀(whatpull)
FTP(File Transfer Protocol) 본문
파일 전송 프로토콜(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 바운스 어택
- 패킷 가로채기
- 포트 훔치기 (다음에 열릴 포트를 추측하여 적절한 연결을 빼앗는 것)
- 스푸핑 공격
- 사용자 이름 열거
파일 전송 프로토콜은 서버의 파일을 바꾸거나 지울 수 있기 때문에 전송하기 앞서 사용자 이름과 암호를 묻는 인증 과정이 필요하다. 보통 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 |