vsftpdを利用してchroot環境のFTPサーバーを構築
vsftpdを利用したchroot環境のFTPサーバーをインストール
前回の記事(OPENSSHでchroot環境を作る)でOpenSSHを利用したchroot環境は思っていたような挙動じゃなかったので、vsftpで下記の仕様のFTPサーバーを構築しました
【仕様】
・匿名ユーザー(annonymous)でのログインは拒否する
・特定のユーザーのみ接続可能
・ログインした上層へはアクセスを禁止する(chroot環境)
vsftpdインストール
vsftpdはyumを利用してインストールします。その後、vsftpd.confを編集してvsftpdを起動したら終了です
# yum install vsftpd
vsftpdの設定
設定ファイルをコピーして、その後編集します、設定では以下の設定をしています。
- 匿名を拒否
- 上位の階層へのアクセスを禁止
- 特定ユーザーのみ接続する
- ログインするディレクトリを変更する
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.org # vi /etc/vsftpd/vsftpd.conf # 匿名拒否 #anonymous_enable=YES anonymous_enabl=NO # 上層のディレクトリへのアクセスを禁止(chroot) chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list # 特定のユーザーのみ接続可能 userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd/ftpuser_list # ルートディレクトリを変更 user_config_dir=/etc/vsftpd/vsftpd_user_conf
上位のディレクトリにアクセス可能なユーザのリスト(chroot_list)作成します。上位のディレクトリへのアクセスが可能なユーザーはSCP接続するような感じで運用するので、chroot_listは空ファイルで作成します
# touch /etc/vsftpd/chroot_list
FTPで接続するユーザのリスト(ftpuser_list)を作成します。下記の設定では「ftpuser01」「ftpuser02」がFTPでの接続ができます
# vim /etc/vsftpd/ftpuser_list ftpuser01 ftpuser02
ルートディレクトリを変更するので、その設定をおこないます。まずは設定ファイルを保存するディレクトリを作成し、設定するユーザー名のファイル配置して設定していきます。
下記の設定では、ftpuser01のルートディレクトリは「/var/www/testweb/ftpuser01」としています。ftpuser02のルートディレクトリは「/var/www/testweb/ftpuser02」としています
ルートディレクトリを変更するファイルを配置するディレクトリを作成します # mkdir /etc/vsftpd/vsftpd_user_conf ftpuser01の設定ファイル作成します # vi /etc/vsftpd/vsftpd_user_conf/ftpuser01 local_root=/var/www/testweb/ftpuser01 ftpuser02の設定ファイル作成します # vi /etc/vsftpd/vsftpd_user_conf/ftpuser02 local_root=/var/www/testweb/ftpuser02
FTPサーバーの自動起動及び起動をおこないます
【CentOS 6.x】 # /etc/init.d/vsftpd start # chkconfig vsftpd on 【CentOS 7.x】 # systemctl start vsftpd # systemctl enable vsftpd.service
ディスカッション
コメント一覧
まだ、コメントがありません