個人的プログラムの備忘録

プログラム初心者の自分の為に書く備忘録なのでこのサイトに載っているコードで不具合が起きても責任は取れませんので自己責任でお願いします。

AWSでFTPユーザーごとのログインディレクトリを変更する

      2015/12/23

FTPに接続する際、ルートユーザーではなくFTPユーザーを作成して繋ぐのが一般的だと思うが、ルートユーザー以外がルートディレクトリにアクセス出来てしまうのはセキュリティ的にもどうなのかと思い、作成したユーザーごとに接続した際のホームディレクトリを変更し、上位階層へアクセスできないようにした。
今回はFTPサーバーはvsftpdを使用している。

AWSへのFTPサーバーのインストール方法は「AWSのEC2でFTPを使う」を参考にインストールして欲しい。
ここでFTPユーザーまでは作成しているものとする。

EC2にSSHで接続

ssh -i xxxxx.pem ec2-user@ec2-XXXXXXXXXXXXXXXXXX

管理者権限(rootユーザー)になる

$sudo su -

vsftpdディレクトリに移動

# cd /etc/vsftpd/

vsftpdディレクトリの中を「lsコマンド」で確認すると以下のファイル、ディレクトリがある。

# ls
chroot_list
ftpusers
user_list
vsftpd.conf
vsftpd_conf_migrate.sh

環境により存在しないファイルもあるみたい。
なければ必要なファイル、ディレクトリは作成する。

vsftpd.confの設定を確認。

userlist_enable=YES
userlist_deny=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

vsftpd_user_confディレクトリを作成する

# mkdir /etc/vsftpd/vsftpd_user_conf

ユーザー毎の設定ファイルを参照する為のパスを記載

# vi /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vsftpd_user_conf
を一番下に記載する。

ホームディレクトリを指定したいユーザー(作成済みのユーザー)の名前のファイルを作成

hogeユーザーを作成していた場合

# vi vsftpd_user_conf/hoge

新規作成したファイルに指定したいホームディレクトリを記載して保存

local_root=/var/www/html

user_listに作成したユーザーを追加

user_listファイルを編集しユーザー名を追加

# vi /etc/vsftpd/user_list
user
hoge
を一番下に記述

追加したユーザーが指定したディレクトリより上の階層にいけないようにする

# vi /etc/vsftpd/chroot_list

追加したユーザーを記述

hoge

vsftpdを再起動

# service vsftpd restart

あとは指定したユーザーでFTPに接続すれば指定したディレクトリがホームディレクトリになっているのが確認できると思う。
それよりも上位の階層にいけないことも確認。
うまく行かないときはどこかで設定ミスや記述ミスしていると思われるのでよく確認してほしい。

 - AWS

Sitio web optimizado por: SEO Valencia
Plugin Modo Mantenimiento patrocinado por: Plugin WordPress Maintenance