FTP

B·2023년 9월 13일

하루CS

목록 보기
4/6

1. FTP란?

FTP (File Transfer Protocol) : 파일 전송 프로토콜. TCP/IP 네트워크상의 장치가 파일을 전송할 때 사용하는 규칙

프로토콜 전자기기가 서로 통신하는 데 필요한 절차나 규칙

2. FTP 원리

클라이언트 - 서버 프로토콜로, 클라이언트가 파일을 요청하면, 서버가 요청된 파일을 제공 -> FTP 프로토콜 연결을 설정하려면 두 개의 기본 채널이 필요

  • 명령 채널(21번 포트): 명령을 시작해 어떤 파일에 엑세스할 것인지 등과 같은 기본 정보를 전달
  • 데이터 채널(20번 포트) : 두 장치 간에 파일 데이터 전송

3. FTP 능동과 수동

능동모드 서버가 클라이언트에게 데이터 연결을 요청하는 방식(클라이언트가 포트 번호 지정)
수동모드 서버가 클라이언트에게 데이터 연결을 요청받는 방식(서버가 포트번호 지정)

능동모드를 사용할 때, FTP bounce 공격에 취약하다

FTP bound 공격
능동모드에서는 클라이언트가 파일을 받을 IP/Port를 지정하고 전달하는 과정이 있는데, 이 과정에서 IP를 변경하여 공격자가 원하는 목적지로 데이터를 보내거나, 목적지의 포트를 스캔하는 등의 공격을 한다.

해결 방법

  • FTP 원래 규약을 어느 정도 제한
  • FTP 원래 규약을 인정하되 다른 서비스가 20 포트 접속 요청시 거절 (능동모드 접근 거절)

4. FTP 명령어

USER - 서버에 사용자 이름을 제공하여 인증
PASS - 사용자 비밀번호를 제공하여 인증
PORT - ACTIVE / 능동 모드에서 사용자가 클라이언트에서 데이터 연결
PASV - PASSIVE / 수동 모드로 전환해서 클라이언트 측에서 데이터 연결
RETR - Retrieve / 서버에서 파일 다운로드 (클라이언트로 전송)
STOR - Store / 클라이언트에서 파일을 서버로 업로드 (서버로 전송)

5. FTP의 단점과 SFTP & FTPS

FTP 의 단점
보안. 1970년대에 개발된 FTP는 보안 프로토콜로 설계된 것이 아니기 떄문에 FTP 전송은 암호화되지 않는다. 그래서 패킷 캡처 공격을 통해 비밀번호, 사용자 이름, 민감한 데이터를 읽을 수 있다

이를 막기 위해, 인증 옵션을 통해 보호 기능을 제공하는 SFTP, FTPS를 사용한다.

SFTP (SSH 기반 파일 전송 프로토콜)
시큐어 셸(SSH) 데이터 스트림을 통해 파일 전송 시 높은 수준의 파일 보호를 실현하는 별도의 프로토콜. 초기 인증, 실행된 명령, 데이터 등 모든 통신에 단일 포트번호를 사용한다.

FTPS (FTP + SSL/TLS)
기존 FTP에서 SSL/TLS를 사용한 통신으로 보안성을 추가했다. FTP 기반의 프로토콜이기 떄문에, FTPS도 두 가지 채널이 필요하다.

FTPSSFTP
기반FTP에 계층 추가 - SSL/TLS로 보호SSH 기반
포트여러 포트 번호단일 포트 번호
암호화명령& 데이터 채널 / 데이터 채널만 암호화하나의 연결 사용 : 인증정보 & 데이터 모두 암호화
인증신뢰할 수 있는 인증서SSH 키 : SSH 개인키 & 공개키
구현방화벽에서 다양한 포트를 열어야 함비교적 쉬움
속도명령, 데이터 채널이 비동기적으로 실행 -> 약간 빠름

참고 링크
https://experience.dropbox.com/ko-kr/resources/what-is-ftp
https://cloudedi.tistory.com/17

profile
아직 찾는 중

0개의 댓글