Published 2022. 8. 9. 18:29

(Week 5 - Day 2)

FTP

- File Transfer Protocol

- 파일을 전송하기 위한 프로토콜

사용 포트

데이터 포트

데이터를 주고 받는 용도로 사용하는 포트

액티브 모드에서는 20번 포트 사용 / 패시브 모드에서는 1024번 이상의 포트 중에 임의의 포트 지정 후 사용

제어 포트

상대방의 연결을 기다리거나 연결을 시도하고 다른 장치와 연결을 맺고 명령어 전달에 사용

21번 포트 사용

동작 모드

액티브 모드

1단계 : 클라이언트에서 서버 측으로의 요청(21번 포트 사용)

2단계 : 서버 측에서 클라이언트 측으로 직접 연결 시도(20번 포트 사용)

방화벽으로 인해 연결 거부가 빈번히 발생

고로, 요즘은 많이 사용하지 않는다.

패시브 모드

액티브 모드의 문제점을 해결하기 위해 만들어진 방식

1단계 : 클라이언트에서 서버로의 연결 요청(21번 포트 사용)

2단계 : 서버에서 클라이언트로 서버가 사용할 포트 정보 전달(서버의 등록된 포트 중 하나 사용)

3단계 : 클라이언트가 사용할 데이터 포트를 통해서 서버가 전달한 테이터 포트로 연결 시도

(포트의 범위 제한과 같은 설정 방식으로 방화벽 문제 해결)


FTP 서버 구성

서버 패키지 설치

yum install vsftpd

서비스 시작

systemctl start vsftpd.service

# 부팅 시 자동 시작
systemctl enable vsftpd.service

방화벽 허용

firewall-cmd --add-service=ftp
firewall-cmd --add-service=ftp --permanent

vsftpd.conf 설정 주요 내용

연결 관련 설정

ftpd_banner  :  FTP 접속시 보여주는 메시지

connect_from_port_20  :  FTP Data Port 사용 여부 지정 (YES/NO)

listen  :  Port 수신 대기 여부 지정(Standalone/xinetd)  (YES/NO)

Max_clients  :  최대 클라이언트 수 지정 (0이면 무제한)

Max_per_ip  :  IP 주소당 접속 세션 제한 (0이면 무제한)

max_login_fails  :  패스워드 입력 횟수 (실패시)

local_max_rate  : 최대 전송 대역폭 지정 (0이면 무제한)

idle_session_timeout  :  FTP 접속 후 유휴시간 지정 (초단위)

pasv_enable  :  Passive(PASV) 접속 허용 여부 지정 (YES/NO)

pasv_min_port :  Passive Port 범위 지정 (시작 Port)

pasv_min_port :  Passive Port 범위 지정 (끝 Port)

사용자 관련 설정

local_enable  :  FTP 서버의 로컬 사용자 계정의 접속 허용 여부 지정 (YES/NO)

write_enable  :  업로드 허용 여부 지정

local_umask  :  로컬 사용자의 umask 값 정의

userlist_enable  :  특정 사용자에 대한 접근을 결정하는 사용자 목록 파일 사용 여부(YES/NO)

userlist_deny : userlist에 등록된 사용자 차단 여부 지정 (YES/NO)

                         YES : 해당 사용자 차단   /  NO :  해당 사용자만 접근 허용

userlist_file : userlist 파일 경로 지정

tcpwrappers  :  TCP Wrapper 사용 여부 지정

                          /etc/host.allow

                          /etc/host.deny

 

anonymous_enable  :  익명 사용자 접속 허용 여부 지정 (YES/NO)

anon_upload_enable  :  익명 사용자의 업로드 허용 여부 지정 (YES/NO)

anon_mkdir_write_enable  :  익명 사용자의 디렉터리 생성 허용 여부 지정 (YES/NO)

디렉토리 이동 제한 관련 설정

chroot_local_user  :  로컬 사용자의 FTP 디렉터리의 상위 디렉터리 이동 차단 (YES/NO)

chroot_list_enable  :  chroot 예외 사용자 지정 여부 (YES/NO)

chroot_list_file  :  chroot 예외 사용자 목록 설정 파일 경로

 

 

'Linux' 카테고리의 다른 글

[Linux] 24. iSCSI 블록 스토리지  (0) 2022.08.10
[Linux] 23. NFS 스토리지  (0) 2022.08.10
[Linux] 21. DNS 서버  (0) 2022.08.09
[Linux] 20. SELinux  (0) 2022.08.09
[Linux] 19. 소프트웨어 패키지  (0) 2022.08.03
복사했습니다!