サーバ構築(5) FTPサーバ(VSFTPD)

Pocket

コンテンツをサーバにアップロードするために、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

この記事にコメントする

Powered by WordPress, WP Theme designed by WSC Project. ログイン