CentOS6系でFTPサーバをサクっと構築する方法。
FTPはプレーンテキストでの通信という点だけご留意頂ますようお願い致します(絶句)。
必要なパッケージをインストール
念の為–downloadonlyオプションでローカルにrpmファイルを保存しておく。
yum -y install vsftpd --downloadonly --downloaddir=/root
デフォルトコンフィグコピー
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.org
コンフィグ編集
/etc/vsfstpd/vsftpd.conf を vi エディタ等で編集して以下内容にする。
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES idle_session_timeout=300 data_connection_timeout=30 ascii_upload_enable=YES ascii_download_enable=YES ftpd_banner=Welcome to FTP service. chroot_list_enable=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES xferlog_std_format=NO log_ftp_protocol=YES use_localtime=YES pasv_promiscuous=YES pasv_min_port=50000 pasv_max_port=50030
SELINUX無効化
/etc/selinux/config を vi エディタ等で編集して「SELINUX=enforcing」部分を「SELINUX=disabled」にして保存。
そして reboot 等でOS再起動。
「私はSELINUXマスターなんだ!」という人は無効化しなくてもなんとかできるかもしれない。
hosts.allow修正
/etc/hosts.allow に下記追記。最下行などでOK。
vsftpd : 127.0.0.1 [アクセスを許可するネットワーク]
アクセスを許可するネットワークの記法としては、例えば「192.168.0.0/24」を許可したいなら「192.168.0.」とすればOK。
hosts.deny修正
/etc/hosts.deny に下記追記。最下行などでOK。
vsftpd : ALL
自動起動設定
OS起動時にサービスが自動起動するようにする。
# CentOS 6
chkconfig vsftpd on
# CentOS 7
systemctl enable vsftpd
サービス開始
# CentOS 6
service vsftpd start
# CentOS 7
systemctl start vsftpd
iptables修正(CentOS 6)
/etc/sysconfig/iptablesに以下追記
iptables -I INPUT 4 -p tcp --dport 21 -j ACCEPT
/etc/sysconfig/iptables-configに以下追記
IPTABLES_MODULES="ip_conntrack_ftp ip_nat_ftp"
iptables再起動
seirvice iptables restart
この後CentOS上にユーザを作成すると、そのユーザでFTPログイン可能になる。