サーバ構築(5) FTPサーバ(VSFTPD)
コンテンツをサーバにアップロードするために、FTPサーバをセットアップします。インストール時に「FTPサーバ」を選んでいるので、VSFTPDは既にインストール済みです。
設定ファイルは /etc/vsftpd/vsftpd.conf です。変更する箇所は3箇所で、そのうち必須の箇所は1箇所だけ(79,80行目)です。
# vi /etc/vsftpd/vsftpd.conf [/etc/vsftpd/vsftpd.conf] 12c12 < anonymous_enable=YES --- > anonymous_enable=NO 79,80c79,80 < #ascii_upload_enable=YES < #ascii_download_enable=YES --- > ascii_upload_enable=YES > ascii_download_enable=YES 94c94,95 < #chroot_list_enable=YES --- > chroot_list_enable=YES > chroot_local_user=YES |
12行目は AnonymousFTPを使用するかどうか。デフォルトはYES。使用しないのでNOに変更。79,80行目はASCIIモード転送の使用許可。Webサーバ用にFTPを使う場合、この変更が必須項目。これを有効にしておかないと、サーバにhtmlファイルを転送してもテキストファイルとならず、ブラウザで正しく表示されません。94行目はchrootするかどうかの設定。/etc/vsftpd/chroot_list が対象となるユーザのリストで、ログイン時にchrootするユーザを列記します。95行目の記述を追加すると、このリストがログイン時にchrootしないユーザのリストとなります。ユーザが多い場合には管理者のみを例外としてchrootしない設定にする方が楽でしょう。
VSFTPDはstandaloneモードで起動しますが、tcp_wrapperによってアクセス制限を行うことができます。我が家では家庭内LANからのみ接続を許可しています。
[/etc/hosts.deny] ALL : ALL [/etc/hosts.allow] ALL : 127.0.0.1 192.168.1.0/255.255.255.0 |
設定が終わったら、自動起動設定をして起動します。
# chkconfig vsftpd on # service vsftpd start |
なお、vsftpd.conf で設定可能な内容については man vsftpd.conf に詳しい解説がありますので、細かい制御をしたいときには目を通しておくと良いでしょう。
☆補足。FireWall(iptables) でアクセス制限をする場合の注意事項。
iptables によるアクセス制限を行っている場合、FTP を許可していても通信がうまくいかない場合があります。ログインはできるのにディレクトリリストが表示できない、といった状態です。
この場合、/etc/sysconfig/iptables-config に IPTABLES_MODULES の定義を追加して iptables を再起動すると通信が行えるようになります。お試しあれ。
# vi /etc/sysconfig/iptables-config [/etc/sysconfig/iptables-config] IPTABLES_MODULES="ip_conntrack_ftp" # service iptables restart |