FTP (File Transfer Protocol) 란?
- File Transfer Protocol 의 약자로, 파일 전송을 위한 프로토콜이다.
- 평문으로 데이터를 주고받으며, 보안을 위해서는 SSH 기반 암호화 파일 전송 SFTP 를 사용한다.
- 기본적으로 등록된 사용자 계정만이 서비스 이용이 가능하다.
- 단, 설정에 따라 익명 사용자도 접속이 가능하다. (Anonymous user)
- 명령 전달을 위한 TCP/21번 포트와 데이터 전송을 위한 TCP/20번 포트를 사용한다.
1) Active mode
클라이언트가 데이터 포트로 사용할 포트번호를 서버에게 전달하면, 해당 포트를 통해 서버가 클라이언트로 접속하는 방식이다.
- Client 가 Server 의 21번 TCP 포트로 연결을 요청하며, 자신의 데이터 포트 정보를 함께 전달한다.
- Server 는 Client 의 요청에 대한 응답을 보낸다.
- Server 는 20번 TCP 포트를 통해 전달받은 Client 의 데이터 포트와의 연결을 요청한다.
- Client 는 Server 의 요청에 대한 응답을 보내고, Data channel 의 연결이 성립된다.
2) Passive mode
서버가 데이터 포트로 사용할 포트 번호를 클라이언트에게 전달하면, 해당 포트를 통해 클라이언트가 서버로 접속하는 방식이다. (포트 번호는 보통 1024 이후 번호를 사용한다.)
- Client 가 Server 의 21번 포트로 Passive 모드로 연결을 요청한다.
- Server 는 Client 의 요청에 대한 응답과 함께, 임의 생성된 자신의 데이터 포트 번호를 전달한다.
- Client 는 자신의 데이터 포트를 통해, 전달받은 Server 의 데이터 포트로의 연결을 요청한다.
- Server 가 Client 의 요청에 대한 응답을 보내고, Data channel 의 연결이 성립된다.
3) FTP 서비스 데몬
- Server 프로그램 : vsftpd
- Client 프로그램 : ftp
FTP 설정 파일
/etc/vsftpd/vsfpd.conf 파일을 통해, FTP 서버의 환경 설정이 가능하다.
다음과 같은 내용들이 존재하며, 주요 항목에 대한 동작 결과는 FTP 접속 관련 설정 실습 예제 게시글을 통해 살펴보도록 하자.
공부하면서 정리한 내용을 글로 작성하였습니다.
혹시나 잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다. :)
'OS > Rocky' 카테고리의 다른 글
[Linux / Rocky] DNS 영역 전달 (0) | 2025.03.04 |
---|---|
[Linux / Rocky] FTP 접속 관련 설정 실습 예제 (3) | 2025.02.16 |
[Linux / Rocky] 프로세스 스케줄링 (작업 예약) (0) | 2025.01.29 |
[Linux / Rocky] 리눅스 프로세스 관리 (0) | 2025.01.28 |
[Linux / Rocky] 리눅스 쉘 구동 관련 예제 (0) | 2025.01.26 |