UbuntuにFTP Serverの設定 ~Amazon EC2の立ち上げ~
Contents
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 に登録して外のディレクトリにアクセスを出来るようにした。
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をインストールする」に続く。
最近のコメント