VSFTPD インストール

この章を始める前に下記の設定が必要です
「logrotate インストール」 「暗号化通信 OpenSSL インストール」
自己証明書作成
[root@freebsd ~]# cd /etc/ssl/
[root@freebsd ssl]# openssl req -new -x509 -days 3650 -key server.key -out ftp.crt
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP ←国名
State or Province Name (full name) [Some-State]:Tokyo ←都道府県名
Locality Name (eg, city) []:Shibuya ←市区町村名
Organization Name (eg, company) [Internet Widgits Pty Ltd]:freebsd.orz ←ホスト名(または会社名)
Organizational Unit Name (eg, section) []: ←空エンター
Common Name (eg, YOUR name) []:ftp.freebsd.orz ←ホスト名(または管理者名)
Email Address []:postmaster@freebsd.orz ←管理者メールアドレス
[root@freebsd ssl]# cat server.key ftp.crt > ftp.pem
[root@freebsd ssl]# chmod 400 ftp.*
[root@freebsd ssl]# cd
pkgtools.conf編集
[root@freebsd ~]# vi /usr/local/etc/pkgtools.conf
  MAKE_ARGS = {
	'ftp/vsftpd' => 'WITH_VSFTPD_SSL=yes', ←追加
  }
vsftpdインストール
[root@freebsd ~]# cd /usr/ports/ftp/vsftpd
[root@freebsd vsftpd]# make BATCH=yes WITH_VSFTPD_SSL=yes install clean
[root@freebsd vsftpd]# cd
vsftpd.conf編集
[root@freebsd ~]# chmod 640 /usr/local/etc/vsftpd.conf
[root@freebsd ~]# vi /usr/local/etc/vsftpd.conf
anonymous_enable=YES
↓
anonymous_enable=NO ←変更(anonymous(匿名)のログインを許可しない)

#local_enable=YES
↓
local_enable=YES ←コメント解除(ローカルログインを許可)

#write_enable=YES
↓
write_enable=YES ←コメント解除(書き込みを許可)

#local_umask=022
↓
local_umask=022 ←コメント解除(新規ファイルのパーミッション設定)

#xferlog_file=/var/log/vsftpd.log
↓
xferlog_file=/var/log/vsftpd.log ←コメント解除(ログファイルの指定)

#ascii_upload_enable=YES
↓
ascii_upload_enable=YES ←コメント解除(ASCIIモードでのアップロードを許可)

#ascii_download_enable=YES
↓
ascii_download_enable=YES ←コメント解除(ASCIIモードでのダウンロードを許可)

#chroot_local_user=YES
↓
chroot_local_user=YES ←コメント解除(ホームディレクトリより上への移動を禁止)

#chroot_list_enable=YES
↓
chroot_list_enable=YES ←コメント解除(ホームディレクトリより上の移動を禁止)

#chroot_list_file=/etc/vsftpd.chroot_list
↓
chroot_list_file=/etc/vsftpd.chroot_list ←コメント解除(上記ユーザー指定ファイル)

#ls_recurse_enable=YES
↓
ls_recurse_enable=YES ←コメント解除(ディレクトリごとの削除を許可する)

listen=YES
↓
listen=NO ←変更(inetdで起動を許可)

↓最終行に下記を記入
# VSFTPD configuration
pasv_enable=YES
pasv_addr_resolve=YES
pasv_address=ftp.freebsd.orz
pasv_min_port=4000
pasv_max_port=4029
use_localtime=YES
ssl_enable=YES
rsa_cert_file=/etc/ssl/ftp.pem
require_ssl_reuse=NO
force_local_logins_ssl=NO
force_local_data_ssl=NO
force_dot_files=YES
ヒント
# VSFTPD configuration pasv_enable=YES ←パッシブモード有効 pasv_addr_resolve=YES ←pasv_address有効 pasv_address=ftp.freebsd.orz ←ルータのWAN側IPアドレス(動的IPの場合はホスト名) pasv_min_port=4000 ←パッシブモードの最小ポート番号 pasv_max_port=4029 ←パッシブモードの最大ポート番号 use_localtime=YES ←ローカルタイムを使用 ssl_enable=YES ←SSL接続を許可 rsa_cert_file=/etc/ssl/ftp.pem ←証明書のファイルの場所を指定 require_ssl_reuse=NO ←SSLセッションを再利用しない force_local_logins_ssl=NO ←強制SSL接続を解除 force_local_data_ssl=NO ←強制SSL接続を解除 force_dot_files=YES←ドット付きファイルを表示
/etc/hosts.allow編集
[root@freebsd ~]# echo "vsftpd: ALL" >> /etc/hosts.allow
chroot_list編集
[root@freebsd ~]# echo user_name >> /etc/vsftpd.chroot_list
VSFTPd起動
[root@freebsd ~]# vi /etc/inetd.conf
↓最終行に下記を記入
ftp	stream	tcp	nowait	root	/usr/local/libexec/vsftpd	vsftpd
[root@freebsd ~]# vi /etc/rc.conf
inetd_enable="YES" ←追加(inetd起動)
[root@freebsd ~]# /etc/rc.d/inetd start Starting inetd.
ログローテーション
[root@freebsd ~]# vi /usr/local/etc/logrotate.d/vsftpd
↓下記を記入
/var/log/vsftpd.log{
	daily
	rotate 4
	create
	nocompress
	missingok
	sharedscripts
	postrotate
		/bin/kill -HUP `cat /var/run/inetd.pid`
	endscript
}
外部に公開する場合
プロトコル(TCP)ポート21番(FTP)を開放。 プロトコル(TCP)ポート4000~4029番(PASV)を開放。
Home PageTop