Linux

FTPサーバ構築 -vsftpd-

vsftpd環境構築

vstpdをインストール
# yum install vsftpd
設定ファイル編集

まずは設定ファイルのバックアップから

# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

Vimでvsftpd.confを開く

# vim /etc/vsftpd/vsftpd.conf

以下の通り変更する

anonymous_enable=NO
ascii_upload_enable=YES
ascii_download_enable=YES
use_localtime=YES
userlist_enable=YES
userlist_deny=NO
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

anonymous_enable=NO    :匿名ユーザのログインを禁止する
ascii_upload_enable=YES  :ASCIIでのデータの送信許可
ascii_download_enable=YES :ASCIIでのデータの受信許可
userlist_enable=YES    :vsftpd.user_listに記載したユーザのみ接続を許可する
userlist_deny=NO      :接続を拒否するユーザ管理は実施しない
chroot_local_user=YES   :接続時のディレクトリをユーザのルートディレクトリにする
chroot_list_enable=YES  :ログインディレクトリより上の階層へのアクセスを拒否
chroot_list_file=/etc/vsftpd/chroot_list :chroot_listに記載してあるユーザのみ上の階層へのアクセスを許可

「/etc/vsftpd.user_list」の編集

user_listにFTP接続を許可するユーザを追加する

# vim /etc/vsftpd/user_list
「/etc/vsftpd/chroot_list」の作成(新規ファイル)

ログインディレクトリより上の階層参照を許可するユーザを記載する。

# vim /etc/vsftpd/chroot_list
# chmod 600 /etc/vsftpd/chroot_list
vsftpdの自動起動設定
# systemctl enable vsftpd.service
FTPサーバーの起動
# systemctl start vsftpd
※vsftpdが起動できない

サービス起動時に以下のエラーメッセージが出力されたら。。。。

Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details.

エラー原因としては基本的に設定ファイルの不正が多い。
/etc/vsftpd/vsftpd.confに余分なスペースが含まれていたり、定義が重複していたり、他には”listen”と”listen_ipv6”両方にYESが設定されてるとか。
設定ミスの場合は下記コマンドを実行することでエラー詳細が出力されます。

/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

ただし、何にも問題がなかった場合はvsftpdが起動してしまうので、サービスとしてsystemctl start vsftpd.serviceで起動し直したければpkill vsftpdで停止させる必要あり。