ftp #1

김다은·2025년 9월 30일
0

Linux

목록 보기
2/2

🔹 FTP, 기본 개념

FTP(File Transfer Protocol)는 말 그대로 파일을 전송하기 위한 프로토콜.
TCP/IP 위에서 동작하고, 클라이언트-서버 구조를 가진다.

클라이언트: 파일을 업로드하거나 다운로드하는 사용자

서버: 파일을 제공하거나 저장하는 쪽

👉 윈도우에서 FileZilla 같은 프로그램을 쓰거나 리눅스에서 ftp 명령을 쓰는 게 바로 클라이언트 역할이다.


🔹 포트 번호, 꼭 알아야 할 두 가지

FTP는 조금 독특하게 포트 두 개를 쓴다.

TCP 21번 → 제어 채널 (명령 전송: 로그인, cd, ls, get, put 등)

TCP 20번 → 데이터 채널 (파일 자체 전송, Active 모드일 때만)

즉, 21번은 "말하기(명령)", 20번은 "일하기(파일 데이터)"라고 생각하면 쉽다.


🔹 Active 모드 vs Passive 모드

FTP가 까다로운 이유 중 하나가 바로 모드 차이다.

Active 모드

클라이언트가 서버 21번에 연결 (명령 채널)

서버가 자기 20번 포트에서 클라이언트의 랜덤 포트로 접속 → 데이터 전송 시작

문제: 클라이언트 방화벽이 서버의 역방향 연결을 막으면 실패

Passive 모드

클라이언트가 21번에 연결

서버가 “내가 12345번 포트 열었으니 여기로 접속해라” 하고 알려줌

클라이언트가 서버의 해당 포트로 연결해서 파일 전송

장점: 모든 연결을 클라이언트가 시작하므로 방화벽 환경에서 안정적

👉 요즘은 Passive 모드를 주로 쓴다.


🔹 FTP의 단점과 보안 문제

FTP는 태생이 오래된 프로토콜이라 보안에 취약하다.

아이디/비밀번호가 평문(암호화 X)으로 전송됨

데이터도 그대로 노출돼 스니핑에 취약

그래서 대체 프로토콜이 등장했다.

FTPS: FTP + SSL/TLS (21번 그대로, 데이터 암호화 추가)

SFTP: 이름만 FTP고 사실은 SSH 기반 (22번 포트 사용)

👉 요즘은 SFTP가 더 많이 쓰이고, 실제 서버 운영에서도 안전하다.


🔹 정리

FTP = 파일 전송 프로토콜

기본 포트 = 21 (명령), 20 (데이터, Active 모드)

Active vs Passive → 데이터 채널 연결 방식 차이

보안 문제 때문에 실무에서는 FTPS/SFTP 많이 사용

리눅스에서 FTP 서버를 띄우려면 vsftpd가 대표적이다

profile
이제는 더이상 물러날 곳이 없다

0개의 댓글