» Linux ディストリビューション » CentOS » FTP

FTP サーバーを構築する

 FTP サーバーを構築するときによく使用される vsftpd パッケージは、Chris Evans 氏が開発した非常にシンプルで高速な動作をする FTP サーバーであり、匿名・通常の FTP どちらでも使用することができます。


ここでの説明は、内部ネットワークでの使用を前提としています。 外部ネットワークから使用する場合には、別途セキュリティ対策が必要になります。

ネットワーク端末から接続を行う場合には、パケットフィルタリングを停止しておく必要があります。

パッケージのインストール

 FTP サーバーパッケージは、yum コマンドを使用してインストールします。

[root@web ~]# yum install vsftpd

[ CentOS 6 / CentOS 5 ]

パッケージインストール後の設定

 FTP に関する設定は、独自のポリシーに基づいて多くのオプションが用意されていますので、FTP サーバーの機能やセキュリティに関するオプション設定を変更します。

[root@web ~]# vi /etc/vsftpd/vsftpd.conf

# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
# 匿名ユーザーでのログイン制御
anonymous_enable=NO [ YES : 許可 | NO : 拒否 ]
          :
        ( 中略 )
          :
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
# ASCIIモードでのアップロード制御
ascii_upload_enable=YES [ YES : 許可 | NO : 拒否 ]
# ASCIIモードでのダウンロード制御
ascii_download_enable=YES [ YES : 許可 | NO : 拒否 ]
          :
        ( 中略 )
          :
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# ユーザーホームディレクトリより上位階層へのアクセス制御
chroot_list_enable=YES [ YES : ユーザー制御する | NO : ユーザー制御しない ]
# (default follows)
# ユーザーホームディレクトリより上位階層へのアクセス制御ファイル
chroot_list_file=/etc/vsftpd/chroot_list
          :
        ( 中略 )
          :
# This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6
# sockets, you must run two copies of vsftpd whith two configuration files.
# Make sure, that one of the listen options is commented !!
#listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
# タイムスタンプのローカル時刻制御(参照制御されるユーザーについては無効)
use_localtime=YES [ YES : 有効 | NO : 無効(デフォルト : GMT) ]

[ CentOS 6 / CentOS 5 ]

FTP サーバーの起動

 パッケージをインストールした段階では、セキュリティを考慮しているため自動起動されません。 システムの再起動後に FTP サーバーを自動起動するための設定を行います。

FTP サーバーを起動する

[root@web ~]# /etc/rc.d/init.d/vsftpd start

vsftpd 用の vsftpd を起動中:                               [  OK  ]

FTP サーバーの自動起動を設定する

[root@web ~]# chkconfig vsftpd on

[root@web ~]# chkconfig --list vsftpd

vsftpd          0:off   1:off   2:on    3:on    4:on    5:on    6:off

[ CentOS 6 / CentOS 5 ]