반응형
FTP(파일 전송 프로토콜)

파일 전송 프로토콜(File Transfer Protocol, FTP)TCP/IP 프로토콜을 가지고

서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜입니다.

 

파일 전송 프로토콜은 TCP/IP 프로토콜 테이블의 응용 계층에 속하며,

역사는 오래되었지만 지금도 인터넷에서 자주 사용되고 있습니다.

 

포트(port)는 21(제어), 20(데이터 전송)을 사용하고 있습니다.

 

정리하자면, FTP란 파일을 이동할 때 사용하는 프로토콜이라고 보면 된다.

 

FTP 서버

FTP 서버란 파일을 하나의 장치에서 다른 장치로 전송하는 소프트웨어 어플리케이션을 말한다.

기본적으로 FTP 서버는 FTP 주소를 가지고 있고 FTP 연결을 수신하는데 사용되는 컴퓨터라고 볼 수 있습니다.

FTP 서버는 두 가지 간단한 작업을 실행합니다. '받기''보내기' 입니다.

우리가 파일을 업로드하면 업로드된 파일이 내 개인용 장치에서 서버로 전송되고, 

우리가 파일을 다운로드하면 다운로드된 파일이 서버에서 개인용 장치로 전송됩니다.

기본적인 관점에서 보면 FTP 서버는 수신자와 전송자 사이에 위치한 중간 지점과 같습니다.

 

프로토콜 개요

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

명령 연결 : 먼저 제어 포트인 서버 21번 포트로 사용자 인증, 명령을 위한 연결이 만들어지고,

여기를 통해 클라이언트에서 지시하는 명령어가 전달된다.

데이터 전송용 연결 : 실제의 파일 전송은 필요할 때 새로운 연결이 만들어진다.

  • 능동 모드(액티브 모드) : 서버가 자신의 데이터 포트인 20번 포트에서부터 클라이언트가 지정한 지점으로의 데이터 연결을 만든다. 클라이언트가 지정하는 포트는 주로 1023 보다 큰 번호가 매겨진 포트이다.                                          클라이언트가 방화벽, NAT(IP 마스킹) 등을 사용하는 환경일 때에 잘 동작하지 않을 수 있는데,                                이때 수동 모드를 이용하면 된다.
  • 수동 모드(패시브 모드) : 클라이언트가 서버가 지정한 서버 포트로 연결할 수 있게 한다.                                          이 때에는 보통 양쪽 포트 모두 1023보다 큰 포트를 사용한다.

어느 모드에서도 2개의 연결을 만드는 점은 다르지 않다. 하지만 FTP 포트를 변경하게 되고 방화벽이 있는 경우,

방화벽 Inspection 모드 설정에 따라 FTP 통신은 정상적이지만 get 명령이나 ls 명령 등 FTP-DATA포트를 이용한 통신은 정상적으로 이루어지지 않을 수 있다.

 

보안

FTP는 보안 프로토콜로 계획되지 않았기 때문에 수많은 보안 취약점이 존재한다.

1999년 5월에, REFC 2577저자들은 다음의 문제에 대한 취약점을 나열하였다.

  • 무차별 대입 공격
  • FTP 바운스 어택
  • 패킷 가로채기
  • 포트 훔치기
  • 스푸핑 공격
  • 사용자 이름 열거

파일 전송 프로토콜은 서버의 파일을 바꾸거나 지울 수 있기 때문에

전송하기 앞서 사용자 이름과 암호를 묻는 인증 과정이 필요하다.

보통 FTP에서는 암호가 암호화되지 않아 위험하기 때문에

원 타임(한 번만 묻는) 암호를 이용한 인증을 이용하여,

아니면 보안을 더욱 철저하게 하려면 아예 SFTP, SCP 등 다른 방법을 사용하여 파일을 전송한다.

 

FTP의 장단점

장점

  • 오래된 프로토콜이기 때문에 간편하게 사용할 수 있는 데스크톱 도구가 다양하다.
  • 여러 개의 파일을 동시에 전송할 수 있다.
  • 연결이 끊긴 겨우, 전송을 다시 시작할 수 있다.
  • 전송 일정을 예약할 수 있다.

단점

  • FTP 전송은 파일을 암호화하지 않아서 보안에 취약하다.
  • 이러한 보안상 문제들로 오늘날에 FTP에 대한 지원이 점점 줄어들고 있다.
여담

회사 내에서 쓰는 프로그램들에 대한 용어들이 하나씩 궁금해지기 시작해서 하나씩 파헤치기 시작했다.

그래서 이런 용어도 찾아보고 저런 용어도 찾아보면서 정리하는데,

대학교에서 배울 때는 '이걸 도대체 어디다 써먹는거지?' 라는 생각으로 암기하고 시험치고 이랬었지만, 막상 실무에서 직접 쓰는 프로그램들 하나하나 호기심이 생겨 이렇게 정리하다보니,

'아 그때 그 말이 이런 것들이구나!' 라는 걸 깨닫고 있다. ㅎㅎ 

참고

https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC_%EC%A0%84%EC%86%A1_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C

 

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

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

ko.wikipedia.org

https://experience.dropbox.com/ko-kr/resources/what-is-ftp

 

FTP란?

FTP는 유용한 파일 전송 방식이지만, 그보다 더 간단하게 파일 전송 문제를 해결하는 솔루션도 있습니다. FTP란 무엇이고, FTP가 정말 도움이 되는지 알아보세요.

experience.dropbox.com

 

반응형

'Etc > Network' 카테고리의 다른 글

멀티프로세싱(Multiprocessing) vs 멀티쓰레딩 (Multithreading)  (0) 2023.06.01
IIS(인터넷 정보 서비스)란?  (0) 2021.10.26
DMZ란?  (0) 2021.10.25
포트(Port) 란?  (0) 2021.10.21
포트 포워딩이란?  (0) 2021.10.20

+ Recent posts