본문 바로가기

웹/웹 기초

# FTP_기초

728x90
반응형
SMALL

<FTP (File Transfer Protocol)>

 

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

 

파일 전송 프로토콜은 TCP/IP 프로토콜 테이블의 응용 계층에 속한다.

 

 

- 연결 종류

 

1) 명령 연결

 

: 서버 21번 포트(=제어포트)로 사용자 인증, 명령을 위한 연결이 생성됨

-> 이 연결을 통해

-> 클라이언트에서 지시하는 명령어가 전달

 

 

2) 데이터 전송용 연결

 

: 실제의 파일 전송은 필요할 때 새로운 연결이 만들어진다.

 

 

2-1) 능동 모드 (Active mode)

: 서버가 20번 포트(=데이터포트)에서부터 클라이언트가 지정한 지점으로의 데이터 연결 생성

(클라이언트가 지정하는 포트는 주로 1023 보다 큰 번호가 매겨진 포트)

 

 

클라이언트가 방화벽, NAT(IP 마스킹) 등을 사용하는 환경일 때에 잘 동작하지 않을 수 있는데,

이때 수동 모드를 이용하면 된다.

 

 

2-2) 수동 모드 (Passive mode)

: 클라이언트가 서버가 지정한 서버 포트로 연결할 수 있게 한다.

보통 양쪽 포트 모두 1023 보다 큰 포트를 사용한다.

 

포트 21을 사용하여 수동 연결을 시작하는 그림

 

 

- 보안

 

: FTP는 보안 프로토콜로 계획되지 않았으므로

-> 수많은 보안 취약점 존재

 

~ 무차별 대입 공격

~ FTP 바운스 어택

~ 패킷 가로채기

~ 포트 훔치기

(다음에 열릴 포트를 예측하여, 적절한 연결을 뺏는 것)

~ 스푸핑 공격

~ 사용자 이름 열거

 

: 파일 전송 프로토콜은 서버의 파일을 바꾸거나 지울 수 있기 때문에

-> 전송하기 앞서 사용자 이름과 암호를 묻는 인증 과정 필요

 

보통 FTP에서는 암호가 암호화X

-> "원 타임 암호"(한번만 묻는 암호)를 이용한 인증 사용

-> or 아예 SFTP, SCP 등 다른 방법을 사용

728x90
LIST

' > 웹 기초' 카테고리의 다른 글

윈도우 볼라틸리티 (volatility) 설치하기  (0) 2021.02.18
# HTTP_상태 코드(Status code)  (0) 2021.02.15
# TCP_기초  (0) 2021.02.11
#JSP  (0) 2021.02.10
데이터베이스_#기초  (0) 2021.02.05