CentOS5.0でvsftpdでFTPサーバを動かす

vsftpdはVery Secure FTP daemonの略で、CentOS5.0ではデフォルトでインストールされる。しかし実際に使うためにはvsftpd以外の部分でちょっと設定がいる。

SELinuxの設定

[root@storage1 ~]# setsebool -P ftp_home_dir=on

iptablesの設定

[root@storage1 ~]# vi /etc/sysconfig/iptables
...
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.0.0/16 --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.0.0/16 --dport 21 -j ACCEPT
...

iptablesでFTPのデータコネクションを許可するためのモジュールをロード

[root@storage1 ~]# vi /etc/sysconfig/iptables-config
...
IPTABLES_MODULES="ip_conntrack_ftp"
...

そしてiptablesを再起動。

[root@storage1 ~]# service iptables restart

あとはservice vsftpd startでFTPサービスを開始すればよい。恒久的に使うのであればchkconfig vsftpd onとする。vsftpdの設定はデフォルトでroot以外のユーザはログインが出来て、anonymous ftpも使える。anoymous ftpはchrootが有効になっており、anonymousユーザには/var/ftpがルートに見える。