Computer Science/Network

[Network] FTP(File Transfer Protocol)

LeeJaeJun 2023. 12. 23. 23:45
728x90
반응형

- FTP

  • OSI 7 Layer, TCP/IP Protocol의 응용 계층(Application Layer)에 속하는 프로토콜
  • TCP/IP 프로토콜을 이용하여, 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜
  • 대용량 데이터 파일을 주고받을 때 사용합니다.(HTTP 프로토콜은 문자, 사진, 음악, 컨텐츠 등 작은 데이터 파일을 주고받는데는 용이하지만, 큰 크기를 가진 데이터를 주고받기에 어려움)
  • FTP 서버는 기본적으로 명령을 주고받기 위해 21번 포트(제어채널)를 사용하고, 데이터를 주고받기 위해 20번 포트를 사용(데이터 채널)합니다.
  • FTP 모드는 무차별 대입 공격, FTP 바운스 어택, 패킷 가로채키, 포트 훔치기(다음에 열릴 포트를 추측하여 적절한 연결을 빼았는 것), 스푸핑 공격, 사용자 이름 열거 등의 공격에 취약하며, 보안성이 개선된 SFTP, SCP 등의 방법이 있습니다.
  • 명령 연결: 먼저 제어 포트인 서버 21번 포트로 사용자 인증, 명령을 위한 연결이 만들어지고, 여기를 통해 클라이언트에서 지시하는 명령어가 전달됩니다. 클라이언트가 FTP 서버의 명령포트(21번 포트)에 접속하여 자신의 데이터 포트를 알려줍니다. 서버는 클라이언트가 명령포트에 잘 연결되었는 지 응답합니다.
  • 데이터 전송용 연결
    • 능동 모드(액티브 모드): 서버의 데이터 포트(20번 포트)가 클라이언트의 데이터 포트에 접속하고, 클라이언트는 이에 응답합니다.
    • 수동 모드(패시브 모드): 클라이언트가 서버의 포트에 접속하는 방식입니다. 보통 서버와 클라이언트 모두 1023보다 더 큰 포트를 사용합니다. 수동 모드일 경우 클라이언트가 서버의 명령 포트에 접속한 후, 서버가 클라이언트에게 클라이언트가 접속해야 하는 서버 포트 번호를 알려줍니다. (서버의 데이터 포트가 클라이언트의 접속하려고 할 때, 클라이언트의 방화벽이 클라이언트의 포트의 인바운드를 막는다면, 서버와 클라이언트의 명령 포트는 연결되었지만, 데이터 포트는 연결되지 않기 때문에 이러한 경우 수동 모드를 사용하는 것입니다.)

Active mode

 

Passive mode

 

728x90
반응형