(S)FTP

문정현·2024년 11월 28일

FTP란?

🗨️ File Transfer Protocol : 파일을 전송하는 통신규약 (Port = 21) 포트는 보안이 좋지 않아서 실무에 사용하진 X 대표적인 공개 FTP 접속 프로그램은 Filezilla

일반적으로 FTP 서비스는 아이디 및 패스워드가 암호화되지 않은 채로 전송되어 간단한 스니핑 공격에도 취약하기 때문에 SSH 프로토콜을 사용한 SFTP사용을 권장한다.

ACTIVE 모드 : 클라이언트가 서버에게 포트 번호를 알려줘서 서버가 동작

프로세스

  1. FTP클라이언트는 FTP서버의 21번 포트로 연결 설정하여 제어채널을 생성
  2. 사용자가 “ls” 명령어를 입력하면 FTP클라이언트는 사용할 임시포트(5151) 를 결정하여 FTP 서버에 알림
  3. FTP서버는 FTP클라이언트가 알려준 포트로 연결 설정하여 데이터 채널 생성
  4. 데이터채널을 통해 데이터를 송신한 후 데이터채널 연결 종료함

만약 클라이언트 환경에서 방화벽이 설치되어 있는 경우 SERVER의 20번 포트에서 연결되는 데이터 연결포트가 방화벽에 막히게 된다.

이러한 경우를 방지하고자 해서 만들어진 모드가 TCP PASSIVE 모드이다.

PASSIVE 모드 : 서버가 클라이언트에게 포트 번호를 알려줘서 클라이언트가 동작을 하는 것

PASIVE 모드는 ACTIVE모드와 달리 데이터 제어포트 연동 과정이 CLIENT에서 시작하는 것임을 알 수 있다.

프로세스:

  1. FTP클라이언트는 FTP 서버의 21번 포트로 연결 설정하여 제어 채널 생성
  2. 사용자가 파일 목록을 보기 위해 “ls” 명령어 입력하면 FTP클라이언트는 수동모드로 연결하기 위해 PASV명령 전송 후 이 명령을 받은 FTP서버는 사용할 임시포트(3267)를 결정하여 FTP클라이언트에게 알림
  3. FTP클라이언트는 FTP서버가 알려준 포트로 연결 설정 후 데이터 채널 생성
  4. 데이터 채널을 통해 데이터를 송신한 후 데이터채널 연결 종료

profile
기록 == 성장

0개의 댓글