13
6

More than 3 years have passed since last update.

【備忘録】FTPサーバーをAWSで立てる

Last updated at Posted at 2020-05-03

今回の目的

AWSでサーバーを作成し、HTMLファイルとかFTPで置けるようにしたい。
本来であれば、ftpuserというFTPを実施する専用のユーザーを作成して、きちんと権限与えてFTPを行うものだが、今回はそれが面倒でまた個人開発用としてFTPを使いたいだけなので、rootユーザーでできるように設定する。

EC2でポートのルールを設定する。

セキュリティグループで以下のポートを追加する。
※2つ追加する理由は、
「ポート21」はFTP通信でFTPサーバーに繋ぐ用のポートで、
「ポート60001-60010」はファイルを置く時に使用するポート。
分けている理由は、多くのファイルを置く時に重たくなるため、負荷を分散しているそうです。

image.png
image.png

「sudo su」で root ユーザーになっておく

sudo su

vsftpをインストールする

※AWSにインストールするのであれば、ec2-userでログインしておく。
「サーバーという箱にApacheを入れるとWEBサーバーになる」と同じ考え方で、
「サーバーという箱にvsftpを入れるとFTPサーバーになる」というイメージです。

yum install vsftpd

vsftpd.confのバックアップをとっておく

編集する前に、オリジナルのものをコピーして別名で保存し残しておきましょう。
※.orgはオリジナルの略称で、「このファイルはオリジナルのものですよ」と表すために付けています。
※cpコマンドの「-a」は元ファイルの属性とディレクトリの構成を保持してコピーするために使うオプション。

cd /etc/vsftpd/
cp -a vsftpd.conf  vsftpd.conf.org

vsftpd.confを編集する

以下のコマンドで編集画面に入る。
※「i」を入力するとINSERTモードになり、編集できる。
※「o」を入力するとINSERTモードになり、且つ改行してくれる。(これ結構使うらしい。)
※Shift + G で一番したの行に移動できる。

vi vsftpd.conf

以下の内容をvsftpd.confの一番下に追記する。

vsftpd.conf
pasv_address=XX.XXX.XXX.XXX <!-- AWSのグローバルアドレスを入力 -->
pasv_enable=YES
pasv_addr_resolve=YES
pasv_min_port=60001 <!--60001~60010の中からランダムでこのPort番号を利用するという意味-->
pasv_max_port=60010

escキーでINSERTモードから戻れて、「:wq + enter」で保存する。

vsftpを再起動する

基本的に、configファイルを編集すると、再起動する。
編集したconfigファイルを読み込んでもらうため。

service vsftpd restart

「ftpuser」と「user_list」ファイルを編集する

vsftpd配下に「ftpuser」と「user_list」があるので編集する。

コマンドはそれぞれ
vi ftpusers
vi user_list

「root」と記載されている箇所があるので「#」でコメントアウトする。
root → #root

■管理ファイル「user_list」について
/etc/vsftpd/user_list の挙動は、userlist_deny の値によって変わります。
userlist_deny=YES もしくは記述が無い場合には、user_list は接続禁止リストとして機能します。つまり、「このリストに記述されているユーザーは FTP 接続ができない」ということになります。
→今回はrootユーザーでFTPを使いたいので、「root」をリストからコメントアウトする。

■管理ファイル「ftpusers」について
/etc/vsftpd/ftpusersもあります。
こちらはとにかくアクセスを禁止するためのリスト。
user_listよりも優先順位が高いので、user_listで許可されているユーザーであっても、このリストにユーザー名を書かれてしまうとアクセスできなくなります。

rootユーザーにパスワードを設定しておく

rootにパスワードが設定されていない場合、FTPでアクセスした時に拒否されるので、設定する。

passwd root

もしFTPユーザーを作成し、アクセスしたい場合

以下のコマンドでFTPでアクセスする専用のユーザー「ftpuser」を作成し、パスワードを設定する。

useradd ftpuser
passwd ftpuser

もしWebサーバーの「/var/www/html」にアクセスしたい場合、フォルダの所有者がApacheになっていると思われるので、Apacheユーザーと同じ所有者グループをftpuserに設定してあげないと、「/var/www/html」にアクセスできない。

Filezilaで確認する

ホストにはAWSのグローバルアドレスを入力する。
スクリーンショット 2020-05-03 18.04.11.png

ファイルがアップロードできれば完了!!

13
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
6