FTP(File Transfer Protocol)란, 인터넷 망을 이용하여 파일을 주고 받을 수 있도록 해주는 프로토콜이다. 특히나 TCP/IP를 이용하는 네트워크 장치가 파일을 전송할 때 사용하는 프로토콜이다.
이를 통하여, A라는 컴퓨터에 B라는 외부 접속자가 파일을 다운로드 및 업로드 할수 있게 되고,
A 컴퓨터에 접근하는 B, C, D 등의 외부 접속 권한을 열고 닫을 수 있게 된다.
rpm -qa | grep ftp
가장 먼저 시스템에 설치된 패키지 중, 'ftp'가 포함된 패키지가 있는지 찾아본다.
아직 설치하지 않았다면, 아무 메시지도 뜨지 않는 것이 정상이다.
yum install -y vsftpd
이후 vsftpd를 설치해준다.
systemctl enable vsftpd
systmectl start vsftpd
systemctl status vsftpd
위 명령어를 순차적으로 입력하고,

이런식으로 정상 실행되는지 확인한다.
firewall-cmd --permanent --zone=public --add-port=21/tcp
firewall-cmd --reload
대개 ftp는 21번 포트를 이용한다.
vi /etc/vsftpd/vsftpd.conf
이제 특정 사용자에게만 접속을 허용하도록 보안 설정을 할 차례이다.

이와 같은 창이 뜨게 될 것이다.
anonymous_enable=NO (익명 접속자 허용)
local_enable=YES (로컬 접속자 허용)
write_enable=YES (FTP 전송 명령어 중 write를 허용하지 않으려면 바꿔도 된다)
익명 접속자 허용을 제외하고는 기본적으로 'YES' 세팅이 되어있을 것이다.

위와 같이 101, 102, 104번째 줄에 있는 내용들을 주석처리 해제한다.
(INSERT 입력 상태를 풀고, ':set nu'을 입력하면 줄 번호를 볼수 있다.)
chroot_list 파일에 등록된 사용자를 제외한
나머지 사용자들이 상위 디렉토리 이동이 제한이 된다.
cd /etc/vsftpd
그 다음, 위 경로로 이동하여 'chroot_list' 파일을 만들어야 한다.

vi /etc/vsftpd/chroot_list

일단 root와 'terry'라는 계정에만 상위 디렉토리 접근 권한을 주도록 했다.
터미널을 이용하여 FTP를 localhost로 테스트하는 방법도 있지만,
대표적으로 사용되는 클라이언트인 파일질라를 이용하여 접속을 해보려한다.

먼저 밑에 있는 주소로 들어가 클라이언트를 다운받고 설치한다.
https://filezilla-project.org/download.php?platform=win64

그 다음 파일을 켜서
호스트: IP주소
사용자명: 사용자ID(리눅스)
비밀번호: 사용자PW(리눅스)
포트: 21~23 (보통 FTP는 21을 이용한다)
이렇게 설정하고 나서 '빠른 연결'을 클릭하면,

이런식으로 연결이 될 것이다.
이제 왼쪽 -> 오른쪽, 혹은 오른쪽 -> 왼쪽으로 드래그하여 파일을 업로드 및 다운로드 할수 있게 됐다.