FTPサーバー:vsftpd

vsftpdとは?

Very Secure Ftp Daemon
Linuxにおける標準的FTPサーバー

インストール

# yum -y install vsftpd

サービス

vsftpd起動
# /etc/rc.d/init.d/vsftpd start
(service fsftpd start も可?)
vsftpd自動起動設定
chkconfig vsftpd on
vsftpd自動起動設定確認
# chkconfig --list vsftpd
vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ランレベル2~5のon確認

設定ファイル編集

設定ファイルパス

# vi /etc/vsftpd/vsftpd.conf

匿名ユーザのログイン禁止
anonymous_enable=NO

アスキーモードでのアップロードを許可
ascii_upload_enable=YES

アスキーモードでのダウンロードを許可
ascii_download_enable=YES

FTPログイン時にソフト名とバージョンが表示禁止
ftpd_banner=Welcome to blah FTP service.

ホームディレクトリより上層へのアクセスを禁止
chroot_local_user=YES

ホームディレクトリより上層へのアクセス禁止を除外するユーザリストの有効化
chroot_list_enable=YES

ホームディレクトリより上層へのアクセス禁止を除外するユーザリストパス
chroot_list_file=/etc/vsftpd/chroot_list

ディレクトリごとの削除許可
ls_recurse_enable=YES

以下を最下行へ追加
タイムスタンプ時間を日本時間に
use_localtime=YES

SSLの有効化
ssl_enable=YES

サーバー証明書を指定
rsa_cert_file=~

ログイン時にSSL接続を強制しない
暗号化しない接続もできるようにする場合
force_local_logins_ssl=NO

データ転送時にSSL接続を強制しない
暗号化しない接続もできるようにする場合
force_local_data_ssl=NO

hosts.allow/hosts.denyによるアクセス制限の有効化
tcp_wrappers=YES
設定は「ホスト制限」参照

PASVモード設定

(追記)
PASVモード接続先IPアドレスをホスト名から取得する
pasv_addr_resolve=YES

PASVモード接続先IPアドレスが牽けるホスト名
pasv_address=centossrv.dip.jp

PASVモード接続時の最小ポート番号
pasv_min_port=60000

PASVモード接続時の最大ポート番号
pasv_max_port=60030

PASVモードとは?

PassiveMode
パッシブモード
FTP通信においてデータ転送のためのコネクション(ポート番号通知)をクライアントから発信する方式
クライアントがファイアウォールの内側にあり、
外部から直に接続要求を行うことができないような環境ではファイルの送信が行えない。
PORTモードの場合(通常)、コネクション(ポート番号通知)をサーバーから行う

外部リスト

ユーザー制限

FTP利用不可ユーザー一覧
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list (変更可)

ホスト制限

/etc/hosts.allow
vsftpd : XXX.XXX.XXX.XXX

/etc/hosts.deny
vsftpd : ALL

TCPWrappers」参照

chroot制限

chroot禁止除外リスト
/etc/vsftpd/chroot_list
※/etc/vsftpd/vsftpd.conf
chroot_local_user=YESの場合

user_listをFTP利用可能ユーザー一覧へ

userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list