본문 바로가기
📄Document/📝 etc

[IT 지식] FTP(File Transfer Protocol)란? (파일 전송 프로토콜의 역사, FTP의 구조에 대한 이해, 데이터 전송용 연결(능동 모드, 수동 모드), FTP의 특징)

by 후누스 토르발즈 2022. 11. 25.
반응형

FTP란?

 

FTP(File Transfer Protocol)

  • 컴퓨터 프로그램이나 데이터의 공유
  • 원격으로 컴퓨터를 사용할 수 있도록 함
  • 다수의 사용자들 간의 파일 공유를 원할하게 함
  • 안정적이고 효과적으로 데이터를 전송

 

 

파일 전송 프로토콜의 역사

  • TCP/IP 이전 NCP 기반에서 구현 (RFC 114)
  • 1980년 TCP/IP 기반 버전 정의 (RFC 765)
  • 1985년 현재의 FTP로 대체됨 (RFC 959)
  • 1994년 방화벽 친화 FTP 수동 모드 활성화 (RFC 1579)
  • 1997년 보안 모드 확장 제한 (RFC 222)
  • 1998년 IPv6지원 추가, 새로운 수동 모드 추가

 

 

FTP의 보안

  • 보안 프로토콜로 계획되지 않았음
  • 1999년 RFC 2577에서 취약점 나열
    • 무차별 대입 공격
    • 패킷 가로채기
    • 포트 훔치기

 

 

FTP의 구조에 대한 이해

명령 연결

  • 제어 포트 21번으로 연결
  • 사용자 인증 및 명령 전송 (오류 확인 메시지 전송)

 

 

명령어들
USER <SP> <username> <CRLF>
PASS <SP> <password> <CRLF>
ACCT <SP> <account-information> <CRLF>
CWD <SP> <pathname> <CRLF>
CDUP <CRLF>
SMNT <SP> <pathname> <CRLF>
QUIT <CRLF>
REIN <CRLF>
PORT <SP> <host-port> <CRLF>
PASV <CRLF>
TYPE <SP> <type-code> <CRLF>
STRU <SP> <structure-code> <CRLF>
MODE <SP> <mode-code> <CRLF>
PETR <SP> <pathname> <CRLF>
STOR <SP> <pathname> <CRLF>
STOU <CRLF>
APPE <SP> <pathname> <CRLF>
ALLO <SP> <dicimal-integer> [<SP> R <SP> <decimal-integer>] <CRLF>
REST <SP> <marker> <CRLF>
RNFR <SP> <pathname> <CRLF>
ABOR <CRLF>
DELE <SP> <pathname> <CRLF>
RMD <SP> <pathname> <CRLF>
MKD <SP> <pathname> <CRLF>
PWD <CRLF>
LIST [<SP> <pathname>] <CRLF>
NLST [<SP> <pathname>] <CRLF>
SITE <SP> <string> <CRLF>
SYST <CRLF>
STAT [<SP> <pathname>] <CRLF>
HELP [<SP> <string> <CRLF>]
NOOP [<SP> <string> <CRLF>]

 

 

데이터 전송용 연결

실제 파일 전송이 필요할 때 새로운 연결 생성

* 방화벽 설정 시 일부 명령의 수행이 불가능할 수도 있음

 

능동 모드 (Active Mode)

  • 클라이언트가 지정해준 포트로 서버가 접속을 시도
  • 서버는 20번 포트를 사용
  • 클라이언트에서 지정해주는 포트는 주로 1023번보다 큼
  • 클라이언트측에 방화벽이 사용되는 경우, 작동이 안 될 수도 있음

 

 

수동 모드 (Passive Mode)

  • 클라이언트가 서버가 지정한 포트로 연결을 시도
  • 양측 모두 1023번 이상을 사용

 

 

 

FTP의 특징

서로 다른 시스템 간의 데이터 교환을 위해 표준 사이즈를 지정

  • 전송 시에는 8bit 바이트를 기준으로 함
  • 전송 시 4Byte로 구성된 Word 단위를 사용
  • <CR><LF>를 라인 변경으로 규정

 

 

 

 

반응형