ライン

ポイント:*

ライン

 はじめに

ftp/vsftpd

 サーバを作り直ししていて、FTPサーバも作り直しになりました。
そんなメモです。
 FreeBSD 11.0での例です。

 導入と設定

導入

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

#pkg install vsftpd-ssl
reeBSD repository update completed. 25859 packages processed.
The following 1 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        vsftpd-ssl: 3.0.3

Number of packages to be installed: 1

119 KiB to be downloaded.

Proceed with this action? [y/N]:

/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
tcp_wrappers=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=xxxxx
pasv_max_port=yyyyy
ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=NO
require_ssl_reuse=NO
rsa_cert_file=/usr/local/etc/vsftpd.pem

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

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

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

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

想定通りに拒否されました。
/usr/local/etc/vsftpd.chroot_listを作成し、この中にftpで接続していいユーザ名を入れたリストを作成しログインができるようになったことを確認します。

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

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

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

 これで無事に利用ができるようになりました。

SSL関連の設定は過去ページを参考にしています。

 Firewall設定

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

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

 接続確認

FFFTPとホームページビルダー

これまでの接続ができればいいので、確認をしました。
SSL通信を設定していたのですが、FFFTPでは問題なし。
ただし、ホームページビルダーでは、エラーコード 1001で先に行きませんでした。
ログを見る限り、接続まではできています。認証までは来ていないみたいです。

しかし、過去にもやっていたんでした。

ssl_ciphers=HIGH

これで接続できるようになりました。

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

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