반응형
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>를 라인 변경으로 규정
반응형