vsftpd
FTPサーバー。めったに使わないけどたまに使う。SMTPサーバー同様、セットアップは大抵1年に数回しかしないからどの製品を使ってるのかよく忘れる。
CentOSにVsftpdをインストールする
1. yumでインストールします。
2. 設定ファイルを変更します。
>|sh|
#vi /etc/vsftpd/vsftpd.conf
||<
>|sh|
anonymous_enable=NO # 匿名ログインを禁止します
listen=NO # xinetdで起動する場合には"NO"に変更します。スタンドアロンで動作させる場合にはYESのままにします。
||<
3. ファイヤーウォール(iptables)を設定します。
>|sh|
#vi /etc/sysconfig/iptables
||<
パッシブモード用の設定です。RELATEDというのが重要です。
設定されていない場合には設定してください。
>|sh|
- A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
||<
こういった形のエントリが1行増えます。もちろん21というのは
アクセスに必要なポート番号です。ルール名は必要に応じて変更してください。
>|sh|
- A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
||<
編集が終わったらiptablesを再起動して設定を反映してあげます。
>|sh|
#service iptables restart
||<
OSにip_conntrack_ftpモジュールを組み込みます。このモジュールでOSが接続を追跡できるようになり、パッシブモードで動作するよう動的にポートを開いてくれます。
先ほどのiptablesに設定したRELATEDという設定と関連しています。
>|sh|
#vi /etc/sysconfig/iptables-config
||<
IPTABLES_MODULESというエントリに "ip_conntrack_ftp" を設定します。
NATの背後にある場合には、"ip_nat_ftp"も設定します。
複数設定する場合にはスペースで区切ります。
>|sh|
IPTABLES_MODULES="ip_conntrack_netbios_ns ip_conntrack_ftp"
||<
iptables-config ファイルで設定しても現在動作中のOSには反映されないため、
動的にモジュールを読み込んであげるようにします。
>|sh|
#modprobe ip_conntrack_ftp
||<
※このコマンドは何も出力しません。もしエラーが発生した場合にはメッセージが表示されます。
4. xinetdで起動するよう、設定ファイルを配置します。
(この項目はxinetdでvsftpdを起動する場合にのみ行います。)
>|sh|
#cp -p /usr/share/doc/vsftpd-2.0.5/vsftpd.xinetd /etc/xinetd.d/vsftpd
||<
デフォルトで disable=yes となっており無効化されているので、 disable=noに変更して動作するようにしてあげます。
>|sh|
#vim /etc/xinetd.d/vsftpd
disable = no
||<
設定ファイルを反映させるためにxinetdを再起動します。
>|sh|
service xinetd restart
||<
終わり
以上でした。社内LAN内でたまに動作させるだけの目的のため、特に設定変更せずデフォルトで使っています。
匿名アクセス(anonymous)はたまにドツボにはまる以外に特に役にたった経験が無いため無効にしてあります。
OSの操作に慣れていると何も見なくても上記の設定はできるようになります。が、デフォルトの設定で不都合がある場合が多いと思うのでマニュアルは読んでおいたほうが良いと思います。
ところで最近の公開サーバーではセキュリティのためFTPではなく、FTPSがよく使われています。多くのFTPサーバーはFTPSで動作させることができ、設定もそんなに難しくないので、FTPアクセスは無効にし、FTPSでのアクセスに制限しても良いと思います。