FTP & TFTP

보안노트·2024년 11월 16일
0

FTP란?


  • FTP(File Transfer Protocol)는 하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP에서 제공하는 표준 메커니즘이다.

  • 호스트 간 다른 파일 이름 규칙, 텍스트 및 데이터 표현 방식, 디렉토리 구조가 다른 문제를 FTP로 해결이 가능하다.

  • FTP는 TCP를 사용한다.

  • 두 개의 TCP 연결이 필요하다.

  • Well known Port 21번은 FTP의 Control Connection에 사용된다.

  • 20번 Port는 FTP의 Data Connection에 사용된다.




Control Connection

  • 서버는 21번 포트에서 Passive open을 실행하고 클라이언트를 기다린다.

Passive open이란? : 연결요청을 수용하기 위해 수동적으로 포트를 열고 있는 상태.

  • 클라이언트는 임시 포트를 사용하고 active open을 실행한다.

Active open이란? : 연결요청을 위해 능동적으로 포트를 열고 있는 상태.




Data Connection

  • 클라이언트가 임시 포트를 통해 passive open을 실행한다.

    • 클라이언트가 파일 전송을 원하기 때문에 클라이언트 측에서 passive open을 하는 것.
  • 클라이언트가 PORT 명령을 통해 해당 임시 포트 번호를 서버에 전송한다.

  • 서버는 포트 번호를 수신하고 20번 포트와 전달받은 임시 포트 번호를 사용하여 Active open 실행한다.




Communication over Control Connection

  • FTP는 TELNET 및 SMTP와 동일한 접근 방식을 사용한다.

    • NVT ASCII 문자 집합을 사용한다.
  • 커뮤니케이션은 command와 response를 통해 이루어진다.

    • 한 번에 하나의 명령 또는 응답을 보내기 때문에 Control connection에 적합하다.




Communication over Data Connection

  • Data Connection을 통해 파일을 전송한다.

  • 클라이언트는 전송할 파일 유형, 데이터 구조, 전송 모드를 정의해야 한다.

    • Data Connection을 통해 파일을 전송하기 전, Control Connection을 통해 데이터 전송을 준비한다.




Command Processing

  • FTP는 Control Connection을 사용하여 클라이언트 제어 프로세스와 서버 제어 프로세스 간의 통신을 설정한다.

  • 통신하는 동안 명령은 클라이언트에서 서버로 전송되고, 응답은 서버에서 클라이언트로 전송된다.

  • Access Commands

    • 해당 명령을 통해 사용자가 원격 시스템에 액세스할 수 있다.

  • File management commands

    • 해당 명령을 통해 사용자가 원격 컴퓨터의 파일 시스템에 액세스할 수 있다.

  • data formatiting commands

    • 사용자는 데이터 구조, 파일 유형 및 전송 모드를 정의할 수 있다.

  • Port defining commands

    • 클라이언트에서 Data Connection을 위한 포트 번호를 정의한다.
    • 첫 번째 방법 : PORT 명령을 사용하여 클라이언트가 임시 포트 번호를 서버에 보낼 수 있다.
    • 두 번째 방법 : PASV 명령을 사용하여 클라이언트가 서버에 먼저 포트 번호를 선택하도록 요청.

  • File transfer commands

    • 해당 명령어를 통해 사용자가 파일을 전송할 수 있다.

  • Miscellaneous commands

    • 클라이언트 FTP 사용자에게 정보를 전달.

  • Response

    • 모든 FTP 명령은 하나의 response값을 생성한다.




File transfer

  • 파일 전송은 Control Connection을 통해 전송된 후, Data Connection을 통해 발생한다.

  • 서버에서 클라이언트로 파일을 복사(다운로드)

    • Retrieving a File 이라고 한다.
    • RETR 명령에 의해 수행.
  • 클라이언트에서 서버로 파일을 복사(업로드)

    • file stored 이라고 한다.
    • STOR 명령에 의해 수행.
  • 디렉터리 및 파일 이름 목록이 서버에서 클라이언트로 전송

    • LIST 명령에 의해 수행.




TFTP

  • FTP 프로토콜의 모든 기능이 필요하지 않아 단순히 파일을 복사해야 하는 경우

  • 즉, 파일을 빠르게 복사하는 프로토콜이다.

  • FTP와 달리, UDP를 사용하며 69번 포트 번호를 사용한다.




Message

  • TFTP 메세지에는 RRQ, WRQ, DATA, ACK, ERROR이 있다.

RRQ(Read Request) : 파일 읽기 요청
WRQ(Write Request) : 파일 쓰기 요청


  • TFTP는 보안에 문제가 되지 않는 기본 파일 전송에 유용하다.

  • DHCP와 함께 사용된다.

  • 적은 양의 메모리만 필요로 하며, UDP 및 IP 서비스만 사용한다.

  • 전원이 켜진 기기는 DHCP 클라이언트를 사용하여 DHCP 서버에서 구성 파일의 이름을 가져온다.

    • 이후 기기는 파일 이름을 TFTP 클라이언트에 전달한 후, TFTP 서버에서 구성 파일의 내용을 가져온다.

0개의 댓글

관련 채용 정보