NETWORK ENGINEER BLOG

Tips and Reviews for Engineers

CentOS で FTP サーバ構築

検証用に FTP サーバが必要になったので、CentOS で構築した際のメモ。
こちらのサイトがとても分かりやすかったので、参考にさせて頂きました。

vsftpd インストール

[root@hostname ~]# yum -y install vsftpd 

vsftpd.conf 設定

[root@hostname ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO			 <- 匿名ログイン禁止
ascii_upload_enable=YES			 <- コメントアウト:アスキーモードでの転送を許可
ascii_download_enable=YES		 <- コメントアウト:アスキーモードでの転送を許可
chroot_local_user=YES			 <- コメントアウト:chroot有効
chroot_list_enable=YES 			 <- コメントアウト:chroot有効
chroot_list_file=/etc/vsftpd/chroot_list <- コメントアウト:chroot リストファイル指定
ls_recurse_enable=YES			 <- コメントアウト:ディレクトリごと一括での転送有効
local_root=public_html			 <- 最終行へ追記:ルートディレクトリ指定
use_localtime=YES			 <- 最終行へ追記:ローカルタイムを使う

chroot_list 設定

[root@hostname ~]# vi /etc/vsftpd/chroot_list
ftpuser					 <- chroot を適用しないユーザーを追加

ユーザアカウント作成

[root@hostname ~]# useradd ftpuser
[root@hostname ~]# passwd ftpuser

ルートディレクトリ作成

[root@hostname ~]# mkdir /home/ftpuser/public_html

SELinux 無効化

[root@hostname ~]# setenforce 0
[root@hostname ~]# getenforce
※Enforcing:SELinux が有効の場合、クライアントからの接続時に下記エラーが出力される場合があります。
500 OOPS: cannot change directory:/home/user1
500 OOPS: priv_sock_get_cmd
接続がリモート ホストによって閉じられました。

vsftpd 再起動

[root@hostname ~]# /etc/rc.d/init.d/vsftpd start 

vsftpd 起動設定

[root@hostname ~]# chkconfig vsftpd on

以上