Amazon Linuxにvsftpをセットアップする方法

久々にAmazon EC2のAmazon Linuxにvsftpをセットアップしようとしたところ、手順を忘れかけていたのでメモを残しておく。

vsftpのセットアップ手順

Amazon Linuxへvsftpをセットアップするには、以下の手順に沿って行う。

  1. yumコマンドでvsftpをインストールする
  2. 使われていないポートを確認する
  3. vsftpを設定する
  4. ユーザを作成する
  5. vsftpの起動設定を行う
  6. vsftpを起動する
  7. Amazon EC2のSecurity Groupsを設定する

以下より、手順ごとに解説する。

yumコマンドでvsftpをインストールする

以下のコマンドを実行し、vsftpをインストールする。

sudo yum install vsftpd

使われていないポートを確認する

以下のコマンドを実行し,使われていないコマンドを確認する。

cat /proc/sys/net/ipv4/ip_local_port_range

以下のようなレスポンスが返ってきた場合,32768~61000までが空いていることが分かる。

32768 61000

vsftpを設定する

vsftp.confを編集する

以下のコマンドを実行し,vsftpの設定ファイルの編集を行う。

sudo vi /etc/vsftpd/vsftpd.conf

以下の表にvsftpd.confの変更内容を示す。

分類 内容 意味
修正 anonymous_enable=NO 匿名ユーザーのログインは許可しない。
修正 dirmessage_enable=NO ユーザが新しいディレクトリに初めて移動したとしてもメッセージは表示しない。
修正 ascii_upload_enable=YES アスキーモードのアップロードを有効にする。
修正 ascii_download_enable=YES アスキーモードのダウンロードを有効にする。
修正 chroot_local_user=YES ローカルユーザーのルートを各自のホームに変更する。
修正 chroot_list_enable=YES chroot_listを有効にする。ファイルはデフォルト(chroot_list_file=/etc/vsftpd/chroot_list)になる。
修正 tcp_wrappers=NO ホストへのアクセスを制御しない。(EC2のSecurity Groupsで設定する方がよい)
修正 connect_from_port_20=NO ActiveFTPを無効にする。
修正 xferlog_std_format=NO wu-ftpdではなく,vsftpdログ形式でログを記録する。
追加 pasv_enable=YES PASV FTPを有効にする。
追加 pasv_addr_resolve=YES PASVモード接続先IPアドレスをホスト名から取得する。
追加 pasv_address=固定IP Elestic IPを設定する。(インスタンスのPublic DNSを指定するとPASVモードでの接続はできない。バージョン2.0.4以降であれば、IPが固定でなくても pasv_addressにDDNSを書くことで動的なIPに対応できる。)
追加 pasv_min_port=60001 PASVモード接続時の最小ポート番号を設定する。(確認した空きポートの範囲で設定)
追加 pasv_max_port=60010 PASVモード接続時の最大ポート番号を設定する。(確認した空きポートの範囲で設定)
追加 use_localtime=YES ローカルタイムを使用する。(デフォルトはGMT)
追加 force_dot_files=YES .(ドット)で始まるファイルを隠さない。

 

chroot_listを編集する

続いて,chroot_listファイルを作成し,ルートを変更しないユーザーを指定する。ここで指定されたユーザは,ルートディレクトリにアクセスできるようになるので,rootなど特別なユーザーのみ指定する。とりあえず,空にしておいても問題ない。

sudo vi /etc/vsftpd/chroot_list

ユーザを作成する

FTPサーバに接続するためのユーザを作成する。デフォルトのec2-userでは,FTPサーバへの接続を行うことができないので,FTPサーバ接続用のユーザを作成する必要が生じる。

ユーザを作成するには,以下のコマンドを入力する。

sudo adduser ユーザ名

ユーザにパスワードを設定するには,以下のコマンドを入力する。

sudo passwd ユーザ名

vsftpの起動設定を行う

vsftpの起動設定を行う。これを行うことでシステムを再起動した場合でも,自動的にvsftpが起動するようになる。

以下のコマンドでvsftpの起動設定を行う。

sudo chkconfig vsftpd on

以下のコマンドでvsftpdの起動設定を正常に行うことができたかを確認する。

sudo chkconfig

vsftpdの項目が以下のように表示されれば,設定が成功している。

vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

vsftpを起動する

以下のコマンドを入力し,vsftpを起動する。

sudo service vsftpd start

Amazon EC2のSecurity Groupsを設定する

vsftpはAmazon EC2のインスタンス上で稼働しているが,そのインスタンスが使用しているSecurity Groupの設定を変更する。Security Groupを選択して、21番ポート(FTPがデフォルトで使用)と、60001-60010番ポート(FTPのPASVモード時に使用)を外部からアクセスできるように設定する。

これでFTPの設定が一通り完了した。あとはFTP接続クライアントを用いて,接続の確認を行うことになる。

参考
道はなくても進むのだ: Amazon EC2 (Amazon Linux) での vsftpd インストールと設定

投稿者 SmokyDog

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です