CentOS6 vsftp配置实例及详解

CentOS6 vsftp配置实例及详解
操作系统:CentOS 6.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
           传输时间        单位:秒
58.192.172.51         远程主机名/IP        
           文件大小        单位:byte
/ct6/images/product.img     文件名
           传输类型        a(asiic) b(binary)

           特殊处理标志        _ 不做任何特殊处理
                        C 压缩
                        U 非压缩
                        T tar格式

           传输方向        i 客户端到服务器
                        o 服务器到客户端

           访问模式        a aonymous 匿名
                        g guest 来宾
                        r real 实体用户
         用户名
ftp             服务名
           认证方式        0 无认证
                        1 RFC931认证

           认证用户ID        * 表示无法获得ID

           完成状态        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
###################################################
posted @ 2013-05-11 17:21  李庆喜  阅读(286)  评论(0)    收藏  举报