Lightsail 인스턴스에서 FTP 서버와 FTP 사용자를 설정하려면 어떻게 해야 하나요?

3분 분량
0

Amazon Linux 2, CentOS, Ubuntu 또는 Debian을 실행하는 Amazon Lightsail 인스턴스에서 파일 전송 프로토콜(FTP) 서버 및 FTP 사용자를 설정하려고 합니다.

해결 방법

참고: FTP는 모든 데이터와 암호를 일반 텍스트로 전송합니다. SFTP(SSH 파일 전송 프로토콜)는 인스턴스에 연결하고 데이터를 전송하는 보다 안전한 방법입니다. SFTP 사용에 대한 자세한 내용을 보려면 SFTP를 사용하여 Amazon Lightsail에서 Linux 또는 Unix 인스턴스에 연결을 참조하세요.

FTP 서버 및 FTP 사용자 설정

1.    다음 명령을 실행하여 VSFTPD 패키지를 설치합니다.

Amazon Linux 2 및 CentOS:

sudo yum install vsftpd -y

Ubuntu 및 Debian:

sudo apt install vsftpd -y

패키지를 사용할 수 없다는 오류가 표시되면 다음 명령을 실행하여 패키지 목록을 업데이트합니다.

sudo apt update -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
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
listen_port=10021
pasv_enable=YES
pasv_min_port=21000
pasv_max_port=21999
pasv_addr_resolve=NO

참고: 포트 21은 FTP의 기본 포트입니다. 그러나 보안상의 이유로 사용자 지정 포트 10021은 앞의 예에서 FTP용 포트로 사용됩니다. 포트를 사용자 지정하려면 listen_port를 원하는 포트로 변경하고 connect_from_port_20NO로 설정합니다. 인스턴스 방화벽에서 FTP에 사용할 포트를 활성화해야 합니다. 앞의 예에서 포트 10021 및 21000-21999는 사용자 지정 및 Lightsail 방화벽에서 활성화됩니다. 또한 listenlisten_ipv6 파라미터는 동시에 파일에 있을 수 없습니다. 하나만 YES로 설정되도록 구성 파일을 업데이트합니다.

다음 파라미터는 운영 체제에 따라 다릅니다. 앞의 예 외에도 운영 체제에 대해 다음 변수를 편집합니다.

Amazon Linux 2 및 CentOS

chroot_list_file=/etc/vsftpd/chroot_listuserlist_file=/etc/vsftpd/user_list

Debian 및 Ubuntu:

chroot_list_file=/etc/vsftpd.chroot_listuserlist_file=/etc/vsftpd.userlist

3.    다음 명령을 실행하여 FTP 사용자를 추가합니다.

sudo useradd -m 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 구성 파일의 파라미터가 올바르게 설정되지 않은 경우 FTP 서버가 시작되지 않을 수 있습니다. 이 경우 다음 명령을 실행하여 올바르게 구성되지 않은 옵션을 확인합니다.

Amazon Linux 2 및 CentOS

sudo /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Debian 및 Ubuntu

sudo /usr/sbin/vsftpd /etc/vsftpd.conf
AWS 공식
AWS 공식업데이트됨 일 년 전