vsftpdをxinetdで動作させる
vistaから検証環境へのFTP接続をする機会はそうそう多くない。だから常時起動しているのはリソース的にもったいない。でもたまに必要。そんな時にいつも検証環境に一度ログインをして、rootになって、vsftpdのデーモンを起動するのにはちょっと手間がかかる。そういった『あまり頻繁には必要ではないけれども、必要な時は手間を掛けないで起動したい』と言ったものはxinetdで起動してしまおう。
xinetd
スーパーサーバと呼ばれ、とあるポートに対するアクセスがあった場合に、各ポートに対応するデーモンを起動する。
vsftpdの自動起動設定を削除
vsftpdが自動で起動されてしまう設定を削除しておく。
[worker@CentOS-5.2 ~]$ su - パスワード: [root@CentOS-5.2 ~]# [root@CentOS-5.2 ~]# chkconfig --list vsftpd vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off [root@CentOS-5.2 ~]# chkconfig --del vsftpd [root@CentOS-5.2 ~]# chkconfig --list vsftpd サービス vsftpd は chkconfig をサポートしますが実行レベルで参照されていません (run 'chkconfig --add vsftpd') [root@CentOS-5.2 ~]#
chkconfigコマンドで/etc/rc.d/?.d 配下のシンボリックリンクは削除してしまうが、/etc/rc.d/init.d/vsftpd自体は必要になるかもしれないのでファイルを削除はしない。
vsftpd設定変更
vsftpdをデーモン(サービス)で起動していた場合、下記の設定が有効になっていたはずである。
/etc/vsftpd/vsftpd.conf listen=YES
これはvsftpdがスタンドアローンで動作するという設定なので、xinetd経由で起動する場合には上記設定を変更する。コメントアウトで構わない。
/etc/vsftpd/vsftpd.conf # listen=YES
vsftpdのxinetd用ファイルを準備する
vsftpdをRPMでインストールしている場合には、xinetd用のファイルが既に準備されているのでコピーをする。もちろん下記のファイルを自身で記述しても問題ない。
[root@CentOS-5.2 ~]# cp /usr/share/doc/vsftpd-2.0.5/vsftpd.xinetd /etc/xinetd.d/vsftpd [root@CentOS-5.2 ~]#
ファイルを編集する。
1 : # default: off 2 : # description: The vsftpd FTP server serves FTP connections. It uses \ 3 : # normal, unencrypted usernames and passwords for authentication. 4 : service ftp 5 : { 6 : socket_type = stream 7 : wait = no 8 : user = root 9 : server = /usr/sbin/vsftpd 10: server_args = /etc/vsftpd/vsftpd.conf 11: nice = 10 12: disable = no 13: flags = IPv4 14: }
12行目の『disable』の値を『yes』から『no』へ編集する。
xinetd設定ファイル再読込
xinetdの設定ファイルを再読込みさせる。xinetdの再起動でも設定ファイルは再読込されるので、どちらでも構わない。
[root@CentOS-5.2 ~]# service xinetd reload 設定を再読み込み: [ OK ] [root@CentOS-5.2 ~]#
xinetdベースのサービス確認
下記コマンドでxinetdベースのサービスとして設定されているかを確認する。
[root@curious-52 ~]# chkconfig --list : xinetd ベースのサービス: : vsftpd: on
『xinetdベースのサービス』にvsftpdが入っている事、状態が『on』になっている事を確認する。状態が『off』の場合は/etc/xinetd.d/vsftpdファイルのdisable欄の編集が正常にされていないという事なので要確認。
ローカルから接続確認
vistaから接続ができればOK。
[root@CentOS-5.2 ~]# ps -ef | grep vsftpd root 7925 22855 0 21:04 pts/0 00:00:00 grep vsftpd [root@CentOS-5.2 ~]# ps -ef | grep vsftpd worker 7928 1 0 21:04 ? 00:00:00 vsftpd /etc/vsftpd/vsftpd.conf root 7930 22855 0 21:04 pts/0 00:00:00 grep vsftpd [root@CentOS-5.2 ~]# ps -ef | grep vsftpd root 7932 22855 0 21:05 pts/0 00:00:00 grep vsftpd [root@CentOS-5.2 ~]#
1回目のpsコマンド:vistaからFTP接続をする前
2回目のpsコマンド:vistaからFTP接続中
3回目のpsコマンド:vistaからのFTP接続を切断
上記を見てもらえればわかるように、必要な時にだけvsftpdが起動している状態になってくれた。満足♪
コマンド/ファイル
- コマンド
- /bin/su
- /sbin/chkconfig
- /sbin/service
- ファイル
- /etc/vsftpd/vsftpd.conf
- /etc/xinetd.d/vsftpd