Amazon Linux 2, CentOS, Ubuntu 또는 Debian을 실행하는 Lightsail 인스턴스에서 FTP 서버와 FTP 사용자를 설정하려고 합니다. 어떻게 해야 합니까?
해결 방법
참고: FTP는 모든 데이터와 암호를 일반 텍스트로 전송합니다. SFTP는 보다 안전하게 인스턴스에 연결하고 데이터를 전송하는 방법입니다. SFTP 사용에 대한 자세한 내용은 SFTP를 사용하여 Amazon Lightsail에서 Linux 또는 Unix 인스턴스에 연결을 참조하세요. SFTP 사용자 생성에 대한 자세한 내용은 Lightsail 인스턴스에서 SFTP 사용자를 생성하려면 어떻게 해야 합니까?를 참조하세요.
1. 다음 명령을 실행하여 VSFTPD 패키지를 설치합니다.
Amazon Linux 2 및 CentOS
sudo yum install vsftpd -y
Ubuntu 및 Debian
sudo apt install vsftpd -y
2. vsftpd.config 파일을 편집하여 환경에 필요한 변수를 변경합니다.
vsftpd.config 파일 위치는 운영 체제에 따라 다릅니다.
- Amazon Linux 2 및 CentOS: /etc/vsftpd/vsftpd.conf
- Debian 및 Ubuntu: /etc/vsftpd.conf
환경의 필요에 따라 다음 예제에서 변수를 변경합니다.
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=NO
xferlog_std_format=YES
chroot_local_user=YES
allow_writeable_chroot=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
listen_port=10021
pasv_enable=YES
pasv_min_port=21000
pasv_max_port=21999
pasv_addr_resolve=NO
참고: 포트 21은 FTP의 기본 포트입니다. 포트 21을 사용할 수 있습니다. 그러나 앞의 예에서 사용자 지정 포트 10021은 보안상의 이유로 FTP의 포트로 사용되었습니다. 포트를 사용자 지정하려면 listen_port를 사용하려는 포트로 변경하고 connect_from_port_20을 NO로 설정합니다. 인스턴스 방화벽의 FTP에 사용할 포트를 활성화해야 합니다. 위의 예에서 포트 10021 및 21000~21999는 사용자 지정 방화벽과 Lightsail 방화벽에서 활성화됩니다.
3. 다음 명령을 실행하여 FTP 사용자를 추가합니다.
sudo adduser --home /home/ftp_user ftp_user
참고: 앞의 예에서 ftp_user를 원하는 사용자 이름으로 바꿉니다.
4. 다음 명령을 실행하여 사용자의 암호를 생성합니다.
sudo passwd ftp_user
5. 다음 명령을 실행하여 /home/ftp_user 파일의 소유권을 변경합니다. 이 명령은 ftp_user를 파일 소유자로 만듭니다.
sudo chown ftp_user:ftp_user -R /home/ftp_user/
6. 다음 명령을 실행하여 vsftpd user_list에 새 사용자를 추가합니다. -a 플래그를 사용하여 파일에 추가합니다.
Amazon Linux 2 및 CentOS
sudo echo "ftp_user" | sudo tee -a /etc/vsftpd/user_list
Debian 및 Ubuntu
다음 명령을 실행하여 userlist 파일을 생성하고 새 사용자를 파일에 추가합니다.
sudo echo "ftp_user" | sudo tee -a /etc/vsftpd.userlist
7. vsftpd 서비스를 다시 시작합니다.
sudo systemctl restart vsftpd
8. FTP 서버에 연결합니다. 다음 예제에서는 Filezilla 일반 FTP를 사용합니다.
Status: Connecting to 54.xxx.xxx.x2:10021...
Status: Connection established, waiting for welcome message...
Status: Plain FTP is insecure. Please switch to FTP over TLS.
Status: Logged in
Status: Retrieving directory listing...
Status: Server sent passive reply with unroutable address. Using server address instead.
Status: Calculating timezone offset of server...
Status: Timezone offset of server is 0 seconds.
Status: Directory listing of "/" successful
Status: Connecting to 54.xxx.1xx.52:10021...
Status: Connection established, waiting for welcome message...
Status: Plain FTP is insecure. Please switch to FTP over TLS.
Status: Logged in
Status: Starting upload of C:\Users\Administrator\Documents\FTPtest.txt
Status: Server sent passive reply with unroutable address. Using server address instead.
Status: File transfer successful, transferred 10 bytes in 1 second
Status: Retrieving directory listing of "/"...
Status: Server sent passive reply with unroutable address. Using server address instead.
Status: Directory listing of "/" successful
FTP 서버 설정 문제 해결
vsftpd.conf 파일의 잘못된 옵션으로 인해 vsftpd 서비스가 중지될 수 있습니다. 시작할 수 없는 경우 다음 명령을 실행하여 올바르게 구성되지 않은 옵션을 찾습니다.
Amazon Linux 2 및 CentOS
sudo /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Debian 및 Ubuntu
sudo /usr/sbin/vsftpd /etc/vsftpd.conf