1.概要
【vsftpd】でユーザーのホームディレクトリより
上層のディレクトリにアクセスできないように
【chroot】設定をしたのですが、
設定反映後、何故かログインできなくなってしまいました。
2.まず設定した内容
【/etc/vsftpd/vsftpd.conf】の下記の部分を変更しました。
chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES
ユーザをログインディレクトリより上層のディレクトリにアクセスできなくする
chroot_list_enable=YES
chroot_list_fileで設定したファイルに記述されているユーザーは
上層のディレクトリにアクセスが可能
chroot_list_file=/etc/vsftpd/chroot_list
上層のディレクトリにアクセスが可能なユーザー名を記載
今回は上層のディレクトリにアクセスが可能なユーザーは存在しないので
何も記載されていないchroot_listを作成します。
[root@localhost ~]# touch /etc/vsftpd/chroot_list
これで設定は完了!かと思ったのですが
設定を反映後、これまでログインできていたのにも関わらず
ログインさえもできないという状況に陥ってしまいました・・・
3.解決方法
解決するまでに2時間ほど費やしてしまいましたが
答えはこれでした。
allow_writeable_chroot=YES
これを【vsftpd.conf】に追加することで解決しました。
この設定は何かというと
ホームディレクトリが書き込み可能でも
【chroot】設定が可能になるという設定のようです。
早速ホームディレクトリのアクセス権限を調べてみると
[root@localhost home]# ls -l
total 12
drwxr-xr-x. 2 root root 4096 Jan 1 09:05 myapp
drwxr-xr-x. 2 root root 4096 Sep 13 2019 test
drwx------. 11 testuser testuser 4096 Jan 5 1970 testuser
と上記のように所有者に対しては全ての権限を与えているという状態でした。
ちなみに今回使ったユーザーは【testuser】になります。
書き込み不可能な【chroot】がセキュリティー上好ましいのが理解できますが
書き込みが出来ないとアップロード自体が出来ませんので
今回は【YES】と設定しました。
4.結果
接続確認は【FFFTP】で行いました。
結果は下図のとおりです。
【変更前】
【変更後】
変更後はアドレスバーに上層のディレクトリが表示されなくなっています。