FTPサーバーをサクッと構築する

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ログイン可能になる。

Leave a Comment