ftpユーザごとにNAS上の利用ディレクトリを制限する
NASをマウントしたftpサーバで、ftp上のディレクトリをftpユーザごとに干渉せずに使いたいので調べてみました。まずはメモベースで書き込み。後で手順を整理するかも知れません。
使った環境は、CentOS5.5、vsftpdの組み合わせ。NASはautofsを使ってcifsをオートマウント。ftpユーザは上位ディレクトリへのchrootを禁止。マウントポイントは/nas。ftpユーザのホームディレクトリは/home/ftpuser。
2.ftpユーザごとにホームディレクトリ上にマウントポイントを追加してみる。
マウントできて、他ユーザのディレクトリを見えないような構成を実現できた。でも、ユーザが増えるごとに/etc/auto.masterを追加しないといけない。ユーザを追加したタイミングでautofsの再起動が必要になるので、運用と相談が必要。
3.ftpユーザのホームディレクトリをNASマウント上に設定してみる。
オートマウントするディレクトリ上にホームディレクトリを設定するのには抵抗がありましたが、一番試してみたかった手法です。結果、難なくftp接続成功。NASを落とした状態でアクセスすると、ディレクトリが存在しないためエラーになる。
PS C:\> ftp 192.168.1.xxx
192.168.xxx.xxx に接続しました。
220 (vsFTPd 2.0.5)
ユーザー (192.168.xxx.xxx:(none)): ftpuser
331 Please specify the password.
パスワード:
500 OOPS: cannot change directory:/nas/mountpoint
500 OOPS: child died
接続がリモート ホストによって閉じられました。
/etc/passwdを変更するだけなので設定は楽です。