yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆

FTP 프로토콜 본문

기타 기본 지식

FTP 프로토콜

yehey 2020. 9. 14. 16:52

FTP 프로코톨 (File Transer Protocol)

: 표준 파일 전송 프로토콜

 

TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜 (Application 계층)

사용자의 시스템과 원격 시스템 간에 파일을 송수신할 때 사용하는 인터넷 통신 규약

동작방식이 단순하고 직관적이다.

 

FTP 동작 원리

FTP 통신은 서비스를 제공하는 서버와 클라이언트 사이에 두개의 연결이 생성된다. (port를 2개 사용한다.)

-제어 연결(=명령연결, Control connection): 데이터 전송을 제어하기 위한 신호를 주고 받기 위한 연결

-데이터 연결(Data connection): 실제 데이터(File) 전송에 사용하는 연결

 

FTP 서버,클라이언트 간의 2가지 연결

제어 연결(=명령연결, Control connection)

-클라이언트에서 서버로의 명령과 명령에 대한 서버의 응답을 위한 연결 (명령을 위한 연결 생성)

-전체 FTP 세션동안 연결상태를 유지

-21번 포트(제어 포트)를 사용하여 명령 또는 응답 형태의 제어 정보를 전송

 

데이터 연결(Data connection)

-실제파일을 전송하기 위해서 사용하는 연결

-20번 혹은 1024번 이후의 포트를 사용하며 각각의 파일 전송이 완료되면 폐쇄한다.

 

FTP 접속 방식

Active Mode (능동 모드)

진행 순서

1. 클라이언트가 서버의 21번 포트로 접속 후 제어 채널을 생성하고 클라이언트가 사용할 2번째 포트번호(>1023)를 서버에 알려준다. 

2. 서버는 이에 ACK로 응답

3. 서버는 20번 포트(data port)를 사용하여 클라이언트가 알려준 2번째 포트로 접속 후 데이터 채널을 생성한다.

4. 마지막으로 클라이언트가 ACK로 응답한다.

ACK 신호: 수신 측에서 메시지를 에러없이 정상적으로 수신했거나, 송신해도 된다는 것을 송신 측에 알리기 위한 제어용 신호

FTP Active Mode

 

작동 방식

제어 채널: 클라이언트->서버 21번 포트

데이터 채널: 서버 20번 포트-> 클라이언트가 지정한 2번째 포트 

 

Active Mode의 문제점

-TCP/IP의 특징인 클라이언트가 서버에 접속을 시도하는 것이 아닌 서버가 클라이언트에 접속하기 때문에 문제 발생

-클라이언트 PC 내부적인 환경요인(ex. 방화벽, NAT)으로 접속을 허용하지 않으면 데이터 채널 연결이 불가능

-외부적인 환경요인(ex. FTP를 제대로 인지하지 못하는 공유기)때문에 FTP 접속이 제대로 되지 않거나, 접속 후 데이터 목록을 받아오지 못하는 에러가 발생할 수 있음

 

Passive Mode(수동 모드)

진행 순서

1. 클라이언트가 서버의 21번 포트로 접속 후 제어 채널을 생성

2. 서버에서는 서버가 사용할 두 번째 포트 (>=1024)를 알려준다

3. 클라이언트는 다른 포트를 열어 서버가 알려준 이 포트로 접속을 시도하여 데이터 채널을 생성한다.

4. 서버는 ACK로 응답

 

FTP Passive mode

작동방식

제어 채널: 클라이언트-> 서버 21번 포트

데이터 채널: 클라이언트-> 서버 임의의 포트 (>=1024)

Passive mode에서는 두번째 data 포트로 Active mode가 사용했던 20번을 사용하지 않고, 임의의 비특권 포트(>=1024)를 사용한다.

 

Passive mode의 문제점

-data 포트(20번)를 사용하지 않고 동적 포트(>=1024)를 랜덤으로 사용하기 때문에 서버의 동적 포트를 전부 열어야 하는 보안상의 문제가 있다.

 

FTP 접속 방식의 Default는 Active mode이다.
데이터 채널은 Active의 경우 서버가 요청하고, Passive인 경우 클라이언트가 요청한다는 차이가 있다.

 

더보기

Anonymous(익명) FTP

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

ex. 기술지원, 고객 지원, 파일 배포 등

 

취약점: 익명 사용자가 보안 절차를 걸치지 않고 서버에 접속할 수 있고, 쓰기 권한이 있을 경우 악성코드 생성 가능

 

Anonymous FTP 보안 대책

-사용자에 대한 최소한의 정보만 유지하여 유출을 방지

-정기적으로 로그 파일을 분석-> 불필요한 접근, 명령어의 시도 유무 감지

-호스트에서 제공할 서비스와 사용할 계정을 고려하여 불필요한 계정을 만들지 않는다.

-반드시 사용하지 않아도 되는 경우 서비스를 제거한다.

-최소한의 서비스를 위한 권한만을 사용자에게 제공

-핵심 디렉토리 권한을 설정해서 익명 사용자는 접근하지 못하게 한다.

 

'기타 기본 지식' 카테고리의 다른 글

알고리즘  (0) 2020.10.19
Port 스캔  (0) 2020.10.10
백도어  (0) 2020.09.28
FTP 취약점 및 보안  (0) 2020.09.15
소켓(Socket) 통신  (0) 2020.09.13
Comments