|
初期状態では、どのユーザに対しても、ルートディレクトリが見えてしまう設定になっています。これは、セキュリティ上、好ましくない設定なので、ホームディレクトリより上には移動できないように設定します。
(1) 設定ファイルの変更
# vi /etc/vsftpd/vsftpd.conf
修正前
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
#chroot_list_enable=YES
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
↓
修正後
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
chroot_list_enable=YES
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
修正前
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
#chroot_list_file=/etc/vsftpd/chroot_list
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
↓
修正後
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
chroot_list_file=/etc/vsftpd/chroot_list
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
追加
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
chroot_local_user=YES
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
※ これを追加しないと、このあと設定するchroot_listの意味が反対になってしまうので注意!
(2) chroot_listの設定
chroot_listのファイルを作成し、この中に、アクセス可能なディレクトリをホームディレクトリの配下に限定しないユーザ(言い換えれば管理者レベルのユーザ)を設定します。
# vi /etc/vsftpd/chroot_list
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
hiro
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
この例では、hiroは、どのディレクトリにもFTPでアクセスできるように設定しています。その他の一般ユーザは、各ユーザのホームディレクトリより上のディレクトリにはアクセスできないようになります。
また、(1)で、chroot_local_user=YESを設定しなかった場合、意味が反対になってしまい、この例では、hiroがホームディレクトリより上のディレクトリにはアクセスできないようになり、その他の一般ユーザは、どのディレクトリにもアクセス出来るようになってしまいます。
(3) vsftpdの再起動
再起動して、設定を反映させます。
# /etc/init.d/vsftpd restart
(4) 注意事項
SELinuxが有効な状況(/usr/sbin/getenforceの結果がEnforcingとなっている環境)では、そのままでは、ホームディレクトリ配下のファイル・ディレクトリにアクセスできません。
|