CentOS6.5
vsftpd 配置文件为/etc/vsftpd/vsftpd.conf
安装完软件后:
1.默认匿名用户能够登陆,且限制在/pub目录内,
2.本地用户可以登陆但因SElinux而无法登陆。
3.ftpuser内用户无法登陆。(PAM限制)
4.可利用 /etc/hosts.{allow|deny} 来作为基础防火墙;
5.主动式联机的埠口为 port 20
6.使用格林威治时间 (GMT)。『 use_localtime=YES 』可修改成本地时间。
限制用户登陆的文件有两个:
1./etc/vsftpd/ftpusers:就是 /etc/pam.d/vsftpd 这个档案的设定所影响的;(默认拒绝)
2./etc/vsftpd/user_list:由 vsftpd.conf 的 userlist_file 所设定。
默认为拒绝文件内的用户,如若想设置为允许文件内的用户:userlist_deny=NO
修改配置文件:
一、若想本地用户也能登陆。
方法:关闭SElinux,setenforce=0 ,或查看/var/log/messages内容,根据提示修改SElinux设置。
二、限制用户在家目录,指定用户不限制在家目录。
chroot_local_user=YES-------------------限制所有用户在家目录
chroot_list_enable=YES------------------开启允许的用户列表文件
chroot_list_file=/etc/vsftpd/chroot_list--------用户列表文件
三、禁止上传特定类型的文件
deny_file={*.txt}
其他参数配置说明:
与服务器环境较相关的设定值:
connect_from_port_20=YES (NO)
listen_port=21
dirmessage_enable=YES (NO)----进入目录显示消息
message_file=.message
listen=YES (NO)---------服务启动方式
pasv_enable=YES (NO)------支持数据流的被动式联机方式
use_localtime=YES (NO)
write_enable=YES (NO)-----允许用户上传
connect_timeout=60-----数据连接主动模式下,服务端连接客户端请求超时时间
accept_timeout=60------被动模式下
data_connection_timeout=300-------数据链路传输超时时间
idle_session_timeout=300--------控制链路待机超时时间
max_clients=0------独立服务模式,同时联机数
max_per_ip=0-------同一IP的联机数
pasv_min_port=0, pasv_max_port=0------被动联机模式端口号设置
ftpd_banner
banner_file=/path/file
与实体用户较相关的设定值:
guest_enable=YES (NO)-----设置所有用户使用guest身份登录
guest_username=ftp------指定guest身份所使用的用户权限
local_enable=YES (NO)
local_max_rate=0-------限制用户传输速度,单位比特每秒
chroot_local_user=YES (NO)-----限制在用户家目录
chroot_list_enable=YES (NO)-------启用chroot_list文件
chroot_list_file=/etc/vsftpd.chroot_list
userlist_enable=YES (NO)------启用userlist文件
userlist_deny=YES (NO)-------拒绝该文件用户登陆
userlist_file=/etc/vsftpd/user_list
匿名者登入的设定值:
anonymous_enable=YES (NO)
anon_world_readable_only=YES (NO)-----仅具有下载可读文件的权限
anon_other_write_enable=YES (NO)-----写权限 ,若此为NO,则下面两个设置无效
anon_mkdir_write_enable=YES (NO)------建立目录的权限
anon_upload_enable=YES (NO)-------上传权限
deny_email_enable=YES (NO)-----特殊email address抵挡
banned_email_file=/etc/vsftpd/banned_emails
no_anon_password=YES (NO)------NO的时候登入时会检查输入的email
anon_max_rate=0-------限制传输速度
anon_umask=077------上传档案的权限
关于系统安全方面的一些设定值:
ascii_download_enable=YES (NO)---优先使用ASCII格式下载文件
ascii_upload_enable=YES (NO)----优先使用ASCII格式上传文件
one_process_model=YES (NO)-----为每个联机创建一个进程,增加效能,消耗资源。硬件要求高,一般建议设置NO
tcp_wrappers=YES (NO)-----支持tcp_wrappers控制
xferlog_enable=YES (NO)-----开启上传下载记录
xferlog_file=/var/log/xferlog-----设置记录文件位置
xferlog_std_format=YES (NO)-----是否设定为 wu ftp 相同的登录档格式,需要使用wu ftp登录文件分析软件查看
dual_log_enable=YES, vsftpd_log_file=/var/log/vsftpd.log-----登录档
nopriv_user=nobody----运行服务的用户
pam_service_name=vsftpd------pam 模块的名称,我们放置在 /etc/pam.d/vsftpd 即是这个
虚拟用户登陆配置:
一、多用户相同访问目录与权限:
1.创建可登陆的账号和密码。
#cat virtual_users.txt
zhangsan
123456
lisi
123456
wangwu
123456
2.检查系统是否安装已经安装下列软件包,用于创建数据库文件
#rpm -qa |grep db4
db4-4.7.25-20.el_7.i686
db4-cxx-4.7.25-20.el_7.i686
db4-devel-4.7.25-20.el_7.i686
db4-utils-4.7.25-20.el_7.i686
3.使用db_load命令把virtual_users.txt 文件转换成数据库文件,并更改数据库文件的权限
#db_load -T -t hash -f ./virtual_users.txt /etc/vsftpd/virtual_users.db
#chmod 600 /etc/vsftpd/virtual_users.db
4.新建一个虚拟用户的PAM文件,内容如下
#cat /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/virtual_users 64位用/lib64 替换/lib
account required /lib/security/pam_userdb.so db=/etc/vsftpd/virtual_users
5创建虚拟用户。设置该用户所需要访问的目录,并设置虚拟用户的访问权限
#useradd -d /home/ftp virtual_user
#chmod 700 /home/ftp
6.编辑vsftpd.conf配置文件:
guest_enable=YES
guest_username=virtual_user
pam_sevice_name=vsftpd.vu
virtual_use_local_privs=YES 虚拟用户和本地用户有相同的权限;
或者:virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。
虚拟用户要么拥用本地用户权限要么拥有匿名权限,匿名权限对于家目录中的身份为其他用户。
二、多用户不同访问目录与权限。
1、2、3、4、5不变。
6.创建ftp用户配制文件目录:/etc/vsftpd/user_conf
#mkdir /etc/vsftpd/user_conf
7.在/etc/vsftpd/user_conf目录中创建以用户名命名的配置文件zhangsan、lisi、wangwu
“zhangsan”内容如下:
local_root=/home/ftp (当然,你高兴也可以设置成其它,但要注意virtual用户对此目录的权限)
anon_world_readable_only=NO (使download用户的能下载,也只能下载;写成YES,将不能列出文件和目录)
“lisi”内容如下:
local_root=/home/ftp
anon_world_readable_only=NO
write_enable=YES (写权限)
anon_mkdir_write_enable=YES (新建目录权限)
anon_upload_enable=YES(上传权限)
anon_other_write_enable=YES(删除/重命名的权限)
“wangwu”内容如下:
local_root=/home/virtual_user
anon_world_readable_only=NO
anon_umask=022 (由于web页面的特殊性,故单独设置上传文件权限为755,此掩码值可根据具体情况更改)
write_enable=YES (写权限)
anon_mkdir_write_enable=YES (新建目录权限)
anon_upload_enable=YES(上传权限)
anon_other_write_enable=YES(删除/重命名的权限)
8.在/etc/vsftpd.conf加入或者更改以下配置语句:
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual_user
pam_service_name=ftp.vu
user_config_dir=/etc/vsftpd/user_conf
==============================================
用户1有上传,下载,创建文件,目录的权限;用户2只能下载;用户3可以上传下载,但不能删除目录 和文件;三个用户的家目录 为同一个。
[root@test5 user_conf]# cat user1
local_root=/home/ftp
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
[root@test5 user_conf]# cat user2
local_root=/home/ftp
anon_world_readable_only=NO
[root@test5 user_conf]# cat user3
local_root=/home/ftp
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
==============================================
ftps
1.检查 vsftpd 有无支持 ssl 模块:ldd $(which vsftpd) | grep ssl
2.建立专门给 vsftpd 使用的凭证数据:
cd /etc/pki/tls/certs
make vsftpd.pem 需要填写证书相关信息
3.修改 vsftpd.conf 的配置文件
针对 SSL 所加入的特别参数!每个项目都很重要!
ssl_enable=YES <==启动 SSL 的支持
allow_anon_ssl=NO <==但是不允许匿名者使用 SSL
force_local_data_ssl=YES <==强制实体用户数据传输加密
force_local_logins_ssl=YES <==同上,但连登入时的帐密也加密
ssl_tlsv1=YES <==支持 TLS 方式即可,底下不用启动
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/vsftpd/vsftpd.pem <==预设 RSA 加密的凭证档案所在
限制文件大小?
# cd /usr/local/proftpd/bin/
# ftpquota -create -type=tally -table-path=/usr/local/proftpd/etc/ftpquota.tallytab
# ftpquota -create -type=limit -table-path=/usr/local/proftpd/etc/ftpquota.limittab
# ftpquota --type=limit --table-path=/usr/local/proftpd/etc/ftpquota.limittab --add-record --quota-type=user --name=tom --units=Mb --bytes-
upload=50 --bytes-xfer=1
# (上面意思是:限定tom用户空间大小为50M,上传文件大小为1M)
ftpquota 具体用法参照 ftpquota --help--------------未证实