아직은 잠이 안와
article thumbnail
FTP(File Transfer Protocol)는 하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP에 의해 제공되는 표준 기능

FTP에 사용되는 Port 번호 // 각 채널이 독립적으로 동작

-  데이터 포트[20] :   *데이터 연결을 위해 사용

   -  DTP(Data Transmission Process) : 데이터를 송/수신하는 역할

-     명령 포트[21] :   *제어 연결을 위해 사용(USER, PASS, GET 등 FTP 명령을 FTP 서버에 전송하기 위한 포트)

   - PI(Protocol Interpreter) : 제어 명령 송/수신하는 역할

 * 제어 연결: 클라이언트에서 서버로의 명령과 응답을 위한 연결, 전체 FTP 세션 동안 계속 연결 상태 유지

 * 데이터 연결: 파일이 전송될 때 생성되는 데이터 연결, 20번 혹은 1024 이후 포트 사용, 각 파일 전송 때마다 설정 되며 전송이 완료되면 폐쇄


FTP 응답 코드 

FTP 명령 FTP 응답 코드 

  • USER username
  • PASS password
  • LIST // 현재 디렉터리 리스트를 리턴 
  • CWD dirname // 디렉터리 변경
  • RETR filename // 특정 파일 전송
  • STOR filename // 파일을 서버에 저장
  • EPRT |1|ip|port| // Active 모드 셋팅
  • PASV(EPSV) // Passive 모드 세팅
  • DELE // 서버에서 파일 삭제
  • QUIT
  • First code
    - 1: Positive Preliminary reply | 긍정적인 예비 회신
    - 2: Postive Completion reply | 긍정적인 완료 회신
    - 3: positive Intermediate reply | 긍정적인 중간 회신
    - 4: Transient Negative Completion reply | 일시적 부정적 완료 회신
    - 5: Permanent Negative Completion | 영구적인 부정적 완료 회신
  • Second code
    - 0: 문법 오류에 따른 실패
    - 1: 정보 요청에 대한 응답
    - 2: 연결 정보와 관련된 응답
    - 3: 계정과 인증과 관련된 응답
    - 5: 서버 파일 시스템의 상태 

 

FTP 연결 종류 

- Active Mode(능동) | 서버가 21번, 20번 포트 사용

  FTP 클라이언트의 기본 값

  클라이언트에서 21번 포트로 접속하여 제어 채널을 생성

  데이터는 서버에서 클라이언트로 접속하여 데이터 전송

  *방화벽이 설치되어 외부에서 접속을 허용하지 않아도 FTP 접속은 가능(제어 채널 연결, 데이터 채널 연결 불가)

  동작방식

  1.  클라이언트가 21번 포트로 연결 설정하여 제어 채널을 생성
  2.  사용자가 파일 목록을 보기 위해 "ls" 명령을 입력하면 FTP 클라이언트는 사용할 임시 포트(1024번 이상)를 결정
  3.  FTP 서버에게 결정한 포트 번호를 EPRT 명령을 사용해 알린 후, 서버는 클라이언트가 알려준 포트(1024번 이상)로 연결을 설정
  4.  데이터 채널을 생성하고, 그 채널을 통해 데이터를 송신한 후, 데이터 채널 연결을 종료  

- Passive Mode(수동) | 서버가 21번, 1024번 이후 포트 사용

  클라이언트에서 21번 포트로 접속하여 제어 채널을 생성

  데이터 채널도 클라이언트에서 서버로 접속하여 데이터를 전송 

  동작방식

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

FTP NAT/Firewall 설정

- NAT와 방화벽은 외부에서 내부로 들어오는 모든 연결을 거부, 내부에서 외부는 자유

- FTP에선 명령 및 데이터 연결이 분리되어 있기 때문에 데이터 연결은 NAT/방화벽에서 쉽게 차단 될 수 있음

문제가 되는 경우들

  • Active 모드에서 클라이언트 측의 NAT/방화벽이 설치된 경우 => Passive 모드를 사용해 문제를 해결
  • Passive 모드에서 서버 측의 NAT/방화벽이 설치된 경우 => Active 모드를 사용해 문제를 해결
  • 서버, 클라이언트 양쪽에서 NAT/방화벽이 설치된 경우 => NAT/방화벽에서 FTP/프록시를 운영

익명 FTP

- 계정이 없는 사용자가 서버 자원에 한정된 접근을 할 수 있는 권한을 제공

- 기술지원, 고객지원, 파일 배포등을 하고자 하는 단체에서 사용

- 접속할 때, 아이디로 [anonymous]란 단어를, 패스워드로 [이메일 주소]를 사용할 수 있음

- 이때 입력한 비밀번호는 로그 기록용 

 

FTP 서버 로그인 과정

  1. FTP 클라이언트는 서버 호출 USER와 PASS 명령으로 사용자 ID와 패스워드를 입력
  2. FTP 서버는 로그인 성공시 응답코드 230번으로 FTP 클라이언트에게 전송하여 로그인 성공을 알림

- FTP 서비스 운영

  - Unix/Linux에서 사용자별로 FTP Server에 접근 제어를 하려면 /etc/ftpusers에 등록함

  - Window에선 FTP Server를 만들려면 IIS가 설치, Third Party 프로그램으로 간이 설정 가능

'정보보안 > 정보보안 기사' 카테고리의 다른 글

WebHacking - OWASP Top 10(2019.ver), 웹 보안  (0) 2022.04.19
이메일 보안 기술  (0) 2022.04.15
Network - Transfer Layer  (0) 2022.04.13
FTP 보안 위협 및 대책  (0) 2022.04.13
FTP - TFTP  (0) 2022.04.13
profile

아직은 잠이 안와

@Dirstibone

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!