웹사이트 검색

RHEL 8에서 FTP 서버를 설치, 구성 및 보안하는 방법


FTP('파일 전송 프로토콜 '의 약자)는 컴퓨터 네트워크에서 클라이언트와 서버 간에 파일을 전송하는 데 사용되는 표준이자 오래된 네트워크 프로토콜입니다. FTP 클라이언트를 통해 파일 및 디렉터리에 대한 액세스를 제공하고 서버에 파일을 업로드하고 서버에서 파일을 다운로드하는 클라이언트-서버 모델 아키텍처를 기반으로 구축되었습니다.

이전 기사에서는 컴퓨터 네트워크의 클라이언트와 서버 간에 컴퓨터 파일을 전송하기 위해 CentOS/RHEL 7에서 FTP 서버를 설치, 구성 및 보호하는 방법을 설명했습니다.

이 문서에서는 컴퓨터 간 기본 파일 공유를 위해 RHEL 8에 FTP 서버를 설치, 구성 및 보호하는 방법을 설명합니다.

RHEL 8에 FTP 서버 설치

1. 보안 FTP 패키지를 설치하려면 다음 dnf 명령을 사용하십시오.

dnf install vsftpd

2. 설치가 완료되면 그동안 vsftpd 서비스를 시작하고 시스템 부팅 시 자동으로 시작되도록 활성화한 후 다음 systemctl 명령을 사용하여 상태를 확인해야 합니다.

systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd

3. 다음으로 외부 시스템에서 FTP 서비스에 대한 액세스를 허용하려면 시스템 방화벽에서 FTP 포트 21을 열어야 합니다.

firewall-cmd --zone=public --permanent --add-port=21/tcp
firewall-cmd --zone=public --permanent --add-port=45073/tcp
firewall-cmd --reload

RHEL 8에서 FTP 서버 구성

4. FTP 서버를 구성하려면 다음 복사 명령을 사용하여 기본 FTP 구성 파일 /etc/vsftpd/vsftpd.conf를 백업해야 합니다.

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig

5. 그런 다음 원하는 명령줄 편집기를 사용하여 구성 파일을 엽니다.

vi /etc/vsftpd/vsftpd.conf

해당 값으로 다음 매개변수를 설정합니다(구성 매개변수의 의미는 man vsftpd.conf 참조).

anonymous_enable=NO             
local_enable=YES		
write_enable=YES		
local_umask=022		        
dirmessage_enable=YES	        
xferlog_enable=YES		
connect_from_port_20=YES        
xferlog_std_format=YES          
listen=NO   			
listen_ipv6=YES		        
pam_service_name=vsftpd        

6. 다음으로 사용자 목록 파일 /etc/vsftpd.userlist를 기반으로 FTP 서비스에 대한 사용자 액세스를 허용/거부하도록 FTP를 구성해야 합니다.

기본적으로 /etc/vsftpd.userlist 파일에 나열된 사용자는 userlist_enable인 경우 userlist_deny 옵션이 YES로 설정된 액세스가 거부됩니다. =YES, 액세스를 활성화합니다.

그러나 userlist_deny=NO 매개변수를 설정하면 설정이 변경됩니다. 즉, userlist_file=/etc/vsftpd.userlist에 명시적으로 나열된 사용자만 로그인이 허용됩니다.

따라서 vsftpd.conf 구성 파일에 다음 줄을 추가하십시오(또는 이미 있는 경우 주석 처리를 제거하고 표시된 대로 값을 설정하십시오).

userlist_enable=YES                   # allow access to list of usernames from the userlist_file
userlist_file=/etc/vsftpd.userlist    # stores usernames.
userlist_deny=NO   

7. 이제 vsftpd.conf 구성 파일에 다음 줄을 추가하여 FTP 사용자를 홈 디렉터리로 제한하세요.

chroot_local_user=YES		#means local users will be placed in a chroot jail, their home directory after login by default settings.
user_sub_token=$USER         	
local_root=/home/$USER/ftp   	

파일의 변경 사항을 저장하고 닫습니다.

8. FTP가 사용자 홈 디렉토리의 파일을 읽고 쓸 수 있도록 다음 SELinux 부울 규칙을 설정합니다.

semanage boolean -m ftpd_full_access --on

9. 마지막으로 vsftpd 서비스를 다시 시작하여 지금까지 위에서 적용한 모든 변경 사항을 적용합니다.

systemctl restart vsftpd

RHEL 8에서 FTP 서버 테스트

10. 위의 FTP 설정이 제대로 실행되는지 테스트하려면 useradd 명령을 사용하여 FTP 사용자를 생성하고 해당 사용자에 대한 비밀번호를 생성하는 것으로 시작하십시오.

useradd -m -c "Tecmint HowTos" -s /bin/bash tecmint
passwd tecmint

11. 그런 다음 다음과 같이 echo 명령을 사용하여 /etc/vsftpd.userlist 파일에 tecmint 사용자를 추가합니다.

echo "tecmint" | tee -a /etc/vsftpd.userlist
cat /etc/vsftpd.userlist

12. 그런 다음 사용자를 위한 대체 로컬 루트 디렉토리(tecmint, 귀하의 디렉토리는 다를 수 있음)를 생성하고 이 디렉토리에 대한 적절한 권한을 설정하십시오.

mkdir -p /home/tecmint/ftp
chown nobody:nobody /home/tecmint/ftp
chmod a-w /home/tecmint/ftp

13. 다음으로, 사용자가 자신의 파일을 보관할 로컬 루트 위치 내에 디렉토리를 만듭니다.

mkdir /home/tecmint/ftp/files
chown tecmint:tecmint /home/tecmint/ftp/files
chmod 0700 /home/tecmint/ftp/files/

14. 이제 다음과 같이 FTP 클라이언트를 사용하여 FTP 서버에 연결합니다.

ftp [email 
샘플 출력
Connected to 192.168.56.100
220 Welcome to TecMint.com FTP service.
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls

그게 다야! 이 문서에서는 RHEL 8에서 FTP 서버를 설치, 구성 및 보호하는 방법을 설명했습니다. 다음 기사에서는 SSL/TLS 연결을 사용하여 FTP 서버를 보호하는 방법을 보여 드리겠습니다. 그때까지 우리와 함께 있어주세요.