ライン

ポイント:ユーザの扱い方がいろいろ可能

ライン

 はじめに

ftp/vsftpd

 FTPサーバを久々に再導入しています。ports利用で導入しています。

 FreeBSD 9.2での例です。

 導入と設定

導入

 インストールを開始します。

# cd /usr/ports/ftp/vsftpd
# make config
# make install clean

PIDファイルという選択ができていました。
とりあえず、そのままでコンパイルすることにします。

/etc/rc.confに設定ファイルを追加します。

# vsftpd
vsftpd_enable="YES"

 tcp wrapper用の設定を追加します。
/etc/hosts.allowの設定はこんな例で指定します。

vsftpd : localhost,\
        .example.jp,\
        .example.ne.jp : allow
vsftpd : ALL : deny

ちゃんと効いていることを確認しました。アクセスしてみればいいですね。ログ出力結果を確認します。

- [pid ] CONNECT: Client "192.168.x.x", "Connection refused: tcp_wrappers denial."

さて、具体的な設定を行います。

設定

 設定ファイル /usr/local/etc/vsftpd.conf を設定していきます。
今回はPASV利用にしてあります。

# grep -v "^#" vsftpd.conf | grep -v '^$'
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_list_enable=YES
secure_chroot_dir=/usr/local/share/vsftpd/empty
listen=YES
background=YES
use_localtime=YES
userlist_deny=YES
userlist_file=/etc/ftpusers
text_userdb_names=YES
allow_writeable_chroot=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_min_port=xxxxx
pasv_max_port=yyyyy

 これで再起動してみます。

# touch /var/log/vsftpd.log
# /usr/local/etc/rc.d/vsftpd start

問題なく起動しました。アノニマウス接続(匿名接続)してみます。

500 OOPS: vsftpd: both local and anonymous access disabled!

想定通りに拒否されました。
ログインアカウントでの接続も試します。

500 OOPS: could not read chroot() list file:/usr/local/etc/vsftpd.chroot_list

設定忘れです。/usr/local/etc/vsftpd.chroot_listを作成し、この中にftpで接続していいユーザ名を入れたリストを作成します。

ログのローテートの指定を加えておきます。
/etc/newsyslog.conf に指定を加えます。

/var/log/vsftpd.log                     600  12    100  $M1D0 Z

 これにより、毎月の1日にローテートして12ヶ月分を残すことができます。

 これで無事に利用ができるようになりました。現在のパッケージの表示は、vsftpd-ssl-3.0.2です。

 Firewall設定

pf

 FreeBSDでは、ipfilterやipfwやpfで設定することが可能ですし、人により様々です。
PASV利用にしているので追加した部分をメモします。
 /etc/pf.confに以下のようにくわえました。該当箇所の抜粋ですが、

pass in log quick on em0 inet proto tcp from any to em0 port {ftp, ftp-data} flags S/SA keep state
pass in log quick on em0 inet proto tcp from any to em0 port xxxxx:yyyyy keep state

のようにしました。

# service pf reload
Reloading pf rules.
No ALTQ support in kernel

こんな感じで反映させました。

【改訂履歴】作成:2013/03/31 更新:2014/09/10
【参考リンク】
vsftpd - Secure, fast FTP server for UNIX-like systems … vsftpdのオフィシャルページ

Copyright © 1996,1997-2006,2007- by F.Kimura,