CentOS6 vsftp配置实例及详解
操作系统:CentOS 6.2
vsFTP版本:2.2.2
###################################################
vsFTP版本:2.2.2
###################################################
比较重要的相关配置文件
###################################################
/etc/vsftpd/vsftpd.conf 主配置文件
/etc/pam.d/vsftpd
PAM模块的相关设置
/etc/vsftpd.ftpusers
PAM模块指定的无法登陆用户的用户列表
/etc/vsftpd.user_list
userlist_deny指定的用户列表
/etc/vsftpd.chroot_list chroot_list_enable指定的用户列表
/etc/vsftpd.banned_emails banned_email_file指定的e-mail列表
/etc/vsftpd/vsftpd_user_conf 虚拟用户的配置文件目录
/var/log/vsftpd.log
日志文件
/var/ftp/
默认匿名用户登录的根目录
###################################################
与主机相关的设置值
listen=YES(NO) yes为standalone模式,no为superdaemon模式
listen_port=21
listen_address=192.168.100.1
主动模式
port_enable=YES(NO)
connect_from_port_20=YES(NO)
ftp_data_port=20
port_promiscuous=YES(NO) 安全检查,确保外出的数据只能连接到客户端上
被动模式
pasv_enable=YES(NO)
pasv_min_port=64410
pasv_max_port=64430 0表示随机取用而不限制
pasv_address=192.168.100.1
ftpd_banner= 欢迎文字
banner_file=/etc/xxx.txt 更详细的欢迎文件
dirmessage_enable=YES(NO)
message_file=.message 切换目录时显示提示信息
use_localtime=YES(NO) 是否启用本地时间,默认是GMT时间
hide_file={*.mp3,*.h} 隐藏某些文件
connect_timeout=60 主动
accept_timeout=60 被动
data_connection_timeout=300 等待时间内数据传输未完成则强制断线
idle_session_timeout=300 空闲用户会话超时,超出时间没有数据传输则强制断线
max_clients=0 最大并发连接数,0表示没有限制
max_per_ip=0 每个IP最大并发连接数,0表示没有限制
文件操作控制
write_enable=YES(NO)
hide_ids=YES(NO) 是否隐藏文件所有者和组信息,激活时所有文件的所有者和组都显示为ftp
ls_recurse_enable=YES(NO) 是否允许递归列出目录列表
secure_chroot_dir=/usr/share/empty 指向一个空目录,且ftp用户对此目录无写权限。被作为一个安全容器。
新增文件的权限
anon_umask=077 匿名用户上传文件权限
file_open_mode=0666
local_umask=022 本地用户上传文件权限
###################################################
实体用户 /etc/passwd中的用户
local_enable=YES(NO)
local_root=/home/ubuntu 指定所有本地用户的根目录
local_umask=022
local_max_rate=0 0表示没有限制
chroot_local_user=YES(NO)
passwd_chroot_enable=YES(NO) 与chroot_local_user配合可以在每个用户的基础上指定chroot()容器的位置
chroot_list_enable=YES(NO)
chroot_list_file=/etc/vsftpd.chroot_list
userlist_enable=YES(NO)
userlist_deny=YES(NO)
userlist_file=/etc/vsftpd.user_list
###################################################
匿名用户 anonymous
anonymous_enable=YES(NO)
ftp_username=ftp 匿名用户映射为系统用户,默认值为ftp
no_anon_password=YES(NO)
anon_root=/var/ftp 匿名用户的根目录,默认为/var/ftp
anon_world_readable_only=YES(NO) no只允许浏览,yes只允许下载可阅读文档
anon_other_write_enable=YES(NO) 删除,修改,重命名等
anon_mkdir_write_enable=YES(NO)
anon_upload_enable=YES(NO)
deny_e-mail_enable=YES(NO)
banned_e-mail_file=/etc/vsftpd.banned_e-mails
anon_max_rate=0
anon_umask=077
chown_uploads=YES(NO) 是否修改匿名用户上传文件的所有权
chown_username=ftp 指定匿名上传文件的所有权用户
###################################################
虚拟用户 guest
useradd -d /home/vsftp vsftp
vi login.txt
upload
123456
download
123456
admin
admin
db_load -T -t hash -f login.txt /etc/vsftpd_login.db
chmod 600 /etc/vsftpd_login.db
vi /etc/pam.d/vsftpd
#%PAM-1.0
session
optional
pam_keyinit.so
force revoke
auth
required
pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers
onerr=succeed
auth
required
pam_shells.so
auth
include
password-auth
auth
required
/lib/security/pam_userdb.so
db=/etc/vsftpd_login
account
required
/lib/security/pam_userdb.so
db=/etc/vsftpd_login
account
include
password-auth
session
required
pam_loginuid.so
session
include
password-auth
guest_enable=YES(NO)
guest_username=ftp
virtual_use_local_privs=NO
激活时虚拟用户使用与本地用户相同的权限
user_config_dir=/etc/vsftpd/vsftpd_user_conf 额外虚拟用户配置文件目录,包含与特定虚拟用户同名的文件
local_root=/home/upload 为每个虚拟用户建立自家目录
vi /etc/vsftpd/vsftpd_user_conf/upload
anon_world_readable_noly=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/upload
chmod 644 /etc/vsftpd/vsftpd_user_conf/upload
mkdir /home/upload
chown ftp:ftp /home/upload
chmod 600 /home/upload
###################################################
系统安全
ascii_download_enable=YES(NO)
ascii_upload_enable=YES(NO)
one_process_model=YES(NO) 每建立一个连接都会有一个进程在负责,可以增加vsftpd的性能,但对硬件的配置要求较高,否则系统资源很容易耗尽。
pam_service_name=vsftp
tcp_wrappers=YES(NO)
xferlog_enable=YES(NO)
xferlog_file=/var/log/xferlog
xferlog_std_format=YES(NO) 是否使用同wu-ftpd一样的xferlog标准格式
log_ftp_protocol=YES(NO) 激活时所有的请求和响应都记录到日志中,xferlog_std_format不能激活,主要用于调试
dual_log_enable=YES(NO) 生成vsftpd独有日志
vsftpd_log_file=/var/log/vsftpd.log
nopriv_user=nobody 默认以nobody作为服务执行者的权限。
######################################################################################################
#xferlog日志格式及解释
Wed May 2 06:24:58 2012
1 127.0.0.1 0 /share a _ o a liujun_ok@hotmail.com ftp 0 *
i
Sun May 6 01:25:44 2012
1 192.168.100.1 19771 /upload/gnome.xpm.gz b _ o a ftp 0 *
c
Sat May 5 10:51:26 2012
1 58.195.172.51 0 /ct6/images/product.img b _ o a ftp 0 *
i
Sat May 5 10:51:26 2012
当前时间
格式:DDD MMM dd
hh:mm:ss YYYY
1
传输时间
单位:秒
58.192.172.51
远程主机名/IP
0
文件大小
单位:byte
/ct6/images/product.img
文件名
b
传输类型
a(asiic)
b(binary)
_
特殊处理标志
_
不做任何特殊处理
C
压缩
U
非压缩
T
tar格式
i
传输方向
i
客户端到服务器
o
服务器到客户端
a
访问模式
a aonymous
匿名
g guest
来宾
r real
实体用户
用户名
ftp
服务名
0
认证方式
0
无认证
1
RFC931认证
*
认证用户ID
*
表示无法获得ID
i
完成状态
i
incomplete
c
complete
###################################################
###################################################
以下是个人的配置文件
###################################################
#比较重要的相关配置文件
#/etc/vsftpd/vsftpd.conf
主配置文件
#/etc/pam.d/vsftpd
PAM模块的相关设置
#/etc/vsftpd/ftpusers
PAM模块指定的无法登陆用户的用户列表
#/etc/vsftpd/user_list
userlist_deny指定的用户列表
#/etc/vsftpd/chroot_list
chroot_list_enable指定的用户列表
#/etc/vsftpd/banned_emails
banned_email_file指定的e-mail列表
#/etc/vsftpd/userconf
虚拟用户的配置文件目录
#/var/log/vsftpd.log
日志文件
#/var/ftp/
默认匿名用户登录的根目录
##################################################
##################################################
#匿名用户设置
anonymous_enable=YES
no_anon_password=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_upload_enable=YES
anon_umask=022
anon_max_rate=5000000
chown_uploads=YES
chown_username=liujun
ftp_username=ftp
anon_root=/var/ftp
#deny_anon_password=YES
#banned_email_file=/etc/vsftpd/banned_emails
#################################################
#本地用户设置
local_enable=YES
local_root=/var/ftp
local_umask=002
local_max_rate=10000000
chroot_list_enable=YES
chroot_local_user=YES
passwd_chroot_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#user_config_dir=/etc/vsftpd/userconf
#################################################
#来宾(虚拟)用户
guest_enable=YES
guest_username=ftp
#################################################
listen=YES
listen_port=21
#listen_address=192.168.100.1
#主动模式
port_enable=YES
connect_from_port_20=YES
ftp_data_port=20
port_promiscuous=YES
#被动模式
#pasv_enable=YES
#pasv_min_port=64000
#pasv_max_port=64010
##pasv_address=none
ascii_upload_enable=NO
ascii_download_enable=NO
data_connection_timeout=60
idle_session_timeout=300
connect_timeout=60
accept_timeout=60
max_clients=100
max_per_ip=5
use_localtime=YES
dirmessage_enable=YES
message_file=.message
banner_file=/etc/vsftpd/welcome.txt
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
#log_ftp_protocol=YES
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
write_enable=YES
file_open_mode=0666
ls_recurse_enable=NO
hide_ids=YES
secure_chroot_dir=/usr/share/empty
#hide_file={*.mp3,*.flv}
pam_service_name=vsftpd
tcp_wrappers=YES
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
nopriv_user=nobody
###################################################
###################################################
/etc/vsftpd/vsftpd.conf
/etc/pam.d/vsftpd
/etc/vsftpd.ftpusers
/etc/vsftpd.user_list
/etc/vsftpd.chroot_list
/etc/vsftpd.banned_emails banned_email_file指定的e-mail列表
/etc/vsftpd/vsftpd_user_conf 虚拟用户的配置文件目录
/var/log/vsftpd.log
/var/ftp/
###################################################
与主机相关的设置值
listen=YES(NO) yes为standalone模式,no为superdaemon模式
listen_port=21
listen_address=192.168.100.1
主动模式
port_enable=YES(NO)
connect_from_port_20=YES(NO)
ftp_data_port=20
port_promiscuous=YES(NO) 安全检查,确保外出的数据只能连接到客户端上
被动模式
pasv_enable=YES(NO)
pasv_min_port=64410
pasv_max_port=64430 0表示随机取用而不限制
pasv_address=192.168.100.1
ftpd_banner=
banner_file=/etc/xxx.txt
dirmessage_enable=YES(NO)
message_file=.message
use_localtime=YES(NO) 是否启用本地时间,默认是GMT时间
hide_file={*.mp3,*.h} 隐藏某些文件
connect_timeout=60 主动
accept_timeout=60
data_connection_timeout=300 等待时间内数据传输未完成则强制断线
idle_session_timeout=300 空闲用户会话超时,超出时间没有数据传输则强制断线
max_clients=0 最大并发连接数,0表示没有限制
max_per_ip=0
文件操作控制
write_enable=YES(NO)
hide_ids=YES(NO) 是否隐藏文件所有者和组信息,激活时所有文件的所有者和组都显示为ftp
ls_recurse_enable=YES(NO) 是否允许递归列出目录列表
secure_chroot_dir=/usr/share/empty 指向一个空目录,且ftp用户对此目录无写权限。被作为一个安全容器。
新增文件的权限
anon_umask=077 匿名用户上传文件权限
file_open_mode=0666
local_umask=022 本地用户上传文件权限
###################################################
实体用户 /etc/passwd中的用户
local_enable=YES(NO)
local_root=/home/ubuntu 指定所有本地用户的根目录
local_umask=022
local_max_rate=0 0表示没有限制
chroot_local_user=YES(NO)
passwd_chroot_enable=YES(NO) 与chroot_local_user配合可以在每个用户的基础上指定chroot()容器的位置
chroot_list_enable=YES(NO)
chroot_list_file=/etc/vsftpd.chroot_list
userlist_enable=YES(NO)
userlist_deny=YES(NO)
userlist_file=/etc/vsftpd.user_list
###################################################
匿名用户 anonymous
anonymous_enable=YES(NO)
ftp_username=ftp 匿名用户映射为系统用户,默认值为ftp
no_anon_password=YES(NO)
anon_root=/var/ftp
anon_world_readable_only=YES(NO)
anon_other_write_enable=YES(NO)
anon_mkdir_write_enable=YES(NO)
anon_upload_enable=YES(NO)
deny_e-mail_enable=YES(NO)
banned_e-mail_file=/etc/vsftpd.banned_e-mails
anon_max_rate=0
anon_umask=077
chown_uploads=YES(NO) 是否修改匿名用户上传文件的所有权
chown_username=ftp 指定匿名上传文件的所有权用户
###################################################
虚拟用户 guest
useradd -d /home/vsftp vsftp
vi login.txt
upload
123456
download
123456
admin
admin
db_load -T -t hash -f login.txt /etc/vsftpd_login.db
chmod 600 /etc/vsftpd_login.db
vi /etc/pam.d/vsftpd
#%PAM-1.0
session
auth
auth
auth
auth
account
account
session
session
guest_enable=YES(NO)
guest_username=ftp
virtual_use_local_privs=NO
user_config_dir=/etc/vsftpd/vsftpd_user_conf
local_root=/home/upload
vi /etc/vsftpd/vsftpd_user_conf/upload
anon_world_readable_noly=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/upload
chmod 644 /etc/vsftpd/vsftpd_user_conf/upload
mkdir /home/upload
chown ftp:ftp /home/upload
chmod 600 /home/upload
###################################################
系统安全
ascii_download_enable=YES(NO)
ascii_upload_enable=YES(NO)
one_process_model=YES(NO) 每建立一个连接都会有一个进程在负责,可以增加vsftpd的性能,但对硬件的配置要求较高,否则系统资源很容易耗尽。
pam_service_name=vsftp
tcp_wrappers=YES(NO)
xferlog_enable=YES(NO)
xferlog_file=/var/log/xferlog
xferlog_std_format=YES(NO) 是否使用同wu-ftpd一样的xferlog标准格式
log_ftp_protocol=YES(NO) 激活时所有的请求和响应都记录到日志中,xferlog_std_format不能激活,主要用于调试
dual_log_enable=YES(NO) 生成vsftpd独有日志
vsftpd_log_file=/var/log/vsftpd.log
nopriv_user=nobody 默认以nobody作为服务执行者的权限。
######################################################################################################
#xferlog日志格式及解释
Wed May
Sun May
Sat May
Sat May
1
58.192.172.51
0
/ct6/images/product.img
b
_
i
a
ftp
0
*
i
###################################################
###################################################
以下是个人的配置文件
###################################################
#比较重要的相关配置文件
#/etc/vsftpd/vsftpd.conf
#/etc/pam.d/vsftpd
#/etc/vsftpd/ftpusers
#/etc/vsftpd/user_list
#/etc/vsftpd/chroot_list
#/etc/vsftpd/banned_emails
#/etc/vsftpd/userconf
#/var/log/vsftpd.log
#/var/ftp/
##################################################
##################################################
#匿名用户设置
anonymous_enable=YES
no_anon_password=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_upload_enable=YES
anon_umask=022
anon_max_rate=5000000
chown_uploads=YES
chown_username=liujun
ftp_username=ftp
anon_root=/var/ftp
#deny_anon_password=YES
#banned_email_file=/etc/vsftpd/banned_emails
#################################################
#本地用户设置
local_enable=YES
local_root=/var/ftp
local_umask=002
local_max_rate=10000000
chroot_list_enable=YES
chroot_local_user=YES
passwd_chroot_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#user_config_dir=/etc/vsftpd/userconf
#################################################
#来宾(虚拟)用户
guest_enable=YES
guest_username=ftp
#################################################
listen=YES
listen_port=21
#listen_address=192.168.100.1
#主动模式
port_enable=YES
connect_from_port_20=YES
ftp_data_port=20
port_promiscuous=YES
#被动模式
#pasv_enable=YES
#pasv_min_port=64000
#pasv_max_port=64010
##pasv_address=none
ascii_upload_enable=NO
ascii_download_enable=NO
data_connection_timeout=60
idle_session_timeout=300
connect_timeout=60
accept_timeout=60
max_clients=100
max_per_ip=5
use_localtime=YES
dirmessage_enable=YES
message_file=.message
banner_file=/etc/vsftpd/welcome.txt
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
#log_ftp_protocol=YES
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
write_enable=YES
file_open_mode=0666
ls_recurse_enable=NO
hide_ids=YES
secure_chroot_dir=/usr/share/empty
#hide_file={*.mp3,*.flv}
pam_service_name=vsftpd
tcp_wrappers=YES
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
nopriv_user=nobody
###################################################