Lightsail インスタンスに FTP サーバーと FTP ユーザーを設定する方法を教えてください。

所要時間2分
0

Amazon Linux 2、CentOS、Ubuntu、または Debian を実行している Amazon Lightsail インスタンスにファイル転送プロトコル (FTP) サーバーと FTP ユーザーをセットアップしたいと考えています。

解決策

**注:**FTP は、すべてのデータとパスワードをプレーンテキストとして送信します。SSH ファイル転送プロトコル (SFTP) は、インスタンスに接続してデータを送信する、より安全な方法です。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 ファイアウォール で有効になっています。また、listen パラメータと listen_ipv6 パラメータを同時にファイルに含めることはできません。設定ファイルを更新して、1 つだけが 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公式更新しました 1年前
コメントはありません

関連するコンテンツ