UbuntuにFTP Serverの設定 ~Amazon EC2の立ち上げ~ | そう備忘録

UbuntuにFTP Serverの設定 ~Amazon EC2の立ち上げ~

FTPサーバーの設定

前回は「ubuntuにLAMP環境をインストールする」で Ubuntu にApache、MySQL、PHP のインストールを行った。

今回は Ubuntu に FTP Server を設定した時の備忘録とする。

ただ最初に言っておくと、このブログでは FTP Server は設定していない。

WordPress では今のところ ssh で接続できれば充分だしセキュリティの面からも必要がなければ設定しないほうが良いので設定をしていない。

なので、試しに Ubuntu Server 16.04 LTS に FTP Server を設定した時の事を記事となる。

誰かの参考になれば幸いだ

FTP User用のアカウントの作成

FTP 接続用のアカウントをまずは作った。

別のアカウントが必須という訳ではないのだが、取り敢えず通常のアカウントとは分けておいた。

以下のコマンドで新たなアカウントを作成する。

名前やら何やらを聞かれるので入力する。

sudo adduser NewftpAccount

FTP Serverのインストール

以下のコマンドで FTP Server をインストールする。

sudo apt-get -y install vsftpd

設定ファイル(vsftpd.conf)の編集

FTP Server の設定ファイル(vsftpd.conf)を編集する。

cd /etc
sudo vim vsftpd.conf

以下の設定を行った。

userlist_enable=YES

userlist_file でリストアップしたユーザだけがアクセス可能になる。

ユーザは userlist_deny によるアクセス制御の対象になる

userlist_deny=NO

リストアップユーザのアクセスのみを許可する(ホワイトリスト方式)。

YESだとその逆でリストアップユーザのアクセスを拒否する(ブラックリスト方式)

userlist_file=/etc/vsftpd.user_list

このファイル(/etc/vsftpd.user_list)にftpアクセス可能なユーザを指定する。

write_enable=YES

FTPコマンドでファイルの更新を行うので更新可能(YES)にする

allow_writeable_chroot=YES

最初、この行の指定が無い時に接続した時に “refusing to run with writable root inside chroot()” のエラーが出た。

どうやら chroot 先のディレクトリに書き込み権限がある為のエラーの模様。

書き込み権限を無くすとファイルのアップロードが出来ないのでこの行を追加したらエラーが消えた。

dirmessage_enable=NO

ユーザが初めてのディレクトリに入った時にメッセージを表示するかどうか。

余計なメッセージは表示させたく無いので NO にした。

xferlog_enable=YES

エントリー名は xferlog なのだが vsftpd 形式のログを取得するかどうかの指定も兼ねているので YES を設定する。

ログの形式は xferlog 形式と vsftpd 形式の2種類が選べる。

vsftpd_log_file=/var/log/vsftpd.log

ログファイルの出力先を指定する。

未指定の場合、このファイル名がデフォルト適用されるが明示しておいた方が分かりやすいので指定した。

xferlog_std_format=NO

YES にすると xferlog 形式、NOにすると vsftpd 形式のログが記録される。

xferlog 形式だとファイルの転送のログしか取得しない。

vsftpd 形式だとサーバ接続ログも記録されるので情報量の多いこちらにした。

ascii_upload_enable=YES

ASCII モードでのアップロードを許可する。

Windows の改行コードをアップした時に変換される様にYES にする。

ascii_download_enable=YES

ASCII モードでのダウンロードを許可する。

上のパラメータとセットで YES にする

chroot_local_user=YES

ユーザの chroot を制御する

ログインディレクトリの外にアクセスさせない時に設定する。

但し chroot_list_file に指定されたユーザ名は例外とする。

chroot_list_enable=YES

指定ファイルに記載されたユーザ を chroot_local_user の設定に基づいて制御してログインフォルダーの外にもアクセスできるようにする

chroot_list_file=/etc/vsftpd.chroot_list

ログインディレクトリの外にアクセスできるユーザ名を指定する

通常のFTPユーザはログインディレクトリの外にはアクセス出来ないようにして、一部のユーザだけはvsftpd.chroot_list に登録して外のディレクトリにアクセスを出来るようにした。

vsftpd.conf

vsftpd.conf
vsftpd.conf
vsftpd.conf
vsftpd.conf
vsftpd.conf
vsftpd.conf
vsftpd.conf
vsftpd.conf

ftpアクセス可能なユーザの登録

/etc/vsftpd.user_list に登録されているユーザのみが ftpアクセス可能になる。

こうしておけば他のアカウントからftpアクセスが出来ない。

最初に adduser した NewftpAccount を vsftpd.user_list に追加する。

cd /etc
sudo vim vsftpd.user_list

NewftpAccount をファイルに記述して保存する。

ログインディレクトリの外に出れるユーザの登録

vsftpd.chroot_list にデフォルトディレクトリから外に出れるユーザを登録した。

cd /etc
sudo vim vsftpd.chroot_list

アカウントをファイルに記述して保存する。

vsftpdを再起動

以下のコマンドで vsftpd を再起動して設定を反映させる。

sudo service vsftpd restart

以上で今回の記事は終了とする。

次回はパソコンから MySQL を操作するためのGUIツール phpmyadmin のインストールに関する記事とする。

Ubuntuにphpmyadminをインストールする」に続く。

souichirou

やった事を忘れない為の備忘録 同じような事をやりたい人の参考になればと思ってブログにしてます。 主にレゴ、AWS(Amazon Web Services)、WordPress、Deep Learning、RaspberryPiに関するブログを書いています。 仕事では工場に協働ロボットの導入や中小企業へのAI/IoT導入のアドバイザーをやっています。 2019年7月にJDLA(一般社団法人 日本デイープラーニング協会)Deep Learning for GENERALに合格しました。 質問は記事一番下にあるコメントかメニュー上部の問い合わせからお願いします。

おすすめ

質問やコメントや励ましの言葉などを残す

名前、メール、サイト欄は任意です。
またメールアドレスは公開されません。