您的位置:首页 > 编程语言 > PHP开发

vsftp 常用配置(匿名/系统用户/虚拟用户)

2020-07-10 15:18 483 查看

vsftp 常用配置(匿名/系统用户/虚拟用户)

vsftp(Very Secure FTP)服务是一款FTP软件,它安全、高效、稳定,在企业中很常用。

一、vsftp安装

1.1 安装vsftp

yum install vsftp* -y

1.2 查看
/etc/vsftpd/vsftp.conf
配置文件

#拒绝匿名用户登录
anonymous_enable=NO
#启用本地系统用户访问
local_enable=YES
#本地用户写权限
write_enable=YES
#本地用户上传文件的权限为-rw-r--r-- (最高权限666-022=644
local_umask=022
#是否显示目录说明文件(需要自己创建.message)
dirmessage_enable=YES
#记录使用者上传下载信息,保存路径:/var/log/vsftpd.log
xferlog_enable=YES
#数据传输使用20端口
connect_from_port_20=YES
#以xferlog格式写入日志
xferlog_std_format=YES
#YES为standalone启动  NO为通过Xinetd管理
listen=NO
#启用ipv6监听
listen_ipv6=YES
#通过/etc/pam.d/vsftpd进行认证
pam_service_name=vsftpd
#禁止/etc/vsftpd中的user_list和ftpusers用户访问(黑名单)
userlist_enable=YES
#通过/etc/host.allow、host.deny中的IP进行访问控制
tcp_wrappers=YES

1.3 启动vsftp,并通过windows访问

systemctl restart vsftpd.service

二、匿名用户配置

2.1 在上面配置文件中加入以下代码

# 匿名用户登陆的username
ftp_username=ftp
# 是否允许匿名用户创建目录
anon_mkdir_write_enable=YES
# 是否允许匿名用户对文件增、删、改
anon_other_write_enable=YES
# 是否允许匿名用户上传文件
anon_upload_enable=YES

2.2 赋予匿名用户ftp权限访问pub文件夹,重启vsftpd

chown -R ftp /var/ftp/pub

chmod 755  /var/ftp/pub

systemctl restart vsftpd.service

2.3 匿名访问测试

​ 测试可以正常写入数据,OK

三、系统用户配置(财务部caiwubu 研发部yanfabu 市场部shichangbu)分别访问自己的目录

3.1 创建系统用户(测试)

useradd caiwubu
useradd yanfabu
useradd shichangbu
echo "666666" | passwd --stdin caiwubu
echo "666666" | passwd --stdin shichangbu
echo "666666" | passwd --stdin yanfabu

3.2 修改/etc/vsftpd/vsftpd.conf配置文件

#拒绝匿名用户登录
anonymous_enable=NO
#启用本地系统用户访问
local_enable=YES
#本地用户写权限
write_enable=YES
#本地用户上传文件的权限为-rw-r--r-- (最高权限666-022=644
local_umask=022
#是否显示目录说明文件(需要自己创建.message)
dirmessage_enable=YES
#记录使用者上传下载信息,保存路径:/var/log/vsftpd.log
xferlog_enable=YES
#数据传输使用20端口
connect_from_port_20=YES
#以xferlog格式写入日志
xferlog_std_format=YES
#YES为standalone启动  NO为通过Xinetd管理
listen=NO
#启用ipv6监听
listen_ipv6=YES
#通过/etc/pam.d/vsftpd进行认证
pam_service_name=vsftpd
#禁止/etc/vsftpd中的user_list和ftpusers用户访问(黑名单)
userlist_enable=YES
#通过/etc/host.allow、host.deny中的IP进行访问控制
tcp_wrappers=YES

3.3 访问测试

登录进去,创建test文件夹,在/home/caiwubu下可以正常显示

四、虚拟用户访问

系统用户访问可以解决匿名用户带来的安全问题,但是系统用户一般可以用于登录linux系统,存在安全隐患,故可以使用多个虚拟用户映射一个服务器系统用户,对外只暴露虚拟用户,该虚拟用户不能登录linux系统,并且可以设置相应的权限来保障系统安全

4.1 创建虚拟用户列表

vim /etc/vsftpd/virtusers_list

# 第一行账号  第二行密码  以此类推
caiwubu
666666
yanfabu
666666

4.2 生成虚拟用户数据文件

#db_load 将virtusers中的密码加密,并生成virtusers.db给系统使用,virtusers文件可删除
db_load -T -t hash -f /etc/vsftpd/virtusers_list /etc/vsftpd/virtusers.db

#设定PAM验证文件,并指定对虚拟用户数据库文件进行读取
chmod 700 /etc/vsftpd/virtusers.db

4.3 配置pam验证文件

vim /etc/pam.d/vsftpd
在行首插入如下,其他的注释

auth          required     pam_userdb.so db=/etc/vsftpd/virtusers
account       required     pam_userdb.so db=/etc/vsftpd/virtusers
#db=后面的文件要与步骤二中的一致

4.4 新建一个系统用户(不需要设置密码,不需要登录系统)

useradd  -s /sbin/nologin ftpuser

4.5 配置虚拟用户配置文件

mkdir -p /etc/vsftpd/vsftpd_user_conf/

vim  /etc/vsftpd/vsftpd_user_conf/caiwubu

# 财务部用户登录的根目录
local_root=/home/ftpuser/caiwubu
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

vim  /etc/vsftpd/vsftpd_user_conf/yanfabu

# yanfabu用户登录的根目录
local_root=/home/ftpuser/yanfabu
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

创建 虚拟用户登录的根目录

mkdir -p /home/ftpuser/{caiwubu,yanfanbu}

chown -R ftpuser:ftpuser /home/ftpuser

4.6 配置
vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
# ---------virtusers config--------------------
# 启用pam认证
pam_service_name=vsftpd
# 启用虚拟用户
guest_enable=YES
# 虚拟用户映射系统用户ftpuser
guest_username=ftpuser
# 虚拟用户与本地用户权限相同
virtual_use_local_privs=YES
# 虚拟用户配置文件目录
user_config_dir=/etc/vsftpd/vsftpd_user_conf
# -----------(可选)访问权限控制----------------
# 将用户目录限制为根目录(看不到家目录的其他目录)
allow_writeable_chroot=YES
# 是否禁止本地用户切换到家目录上级目录,绑定家目录为用户的根目录
chroot_local_user=NO
# 是否启用chroot列表文件,写入文件中的用户将锁定家目录
chroot_list_enable=NO
# 指定用户列表文件的文件路径
chroot_list_file=/etc/vsftpd/chroot_list

# ------------(可选) 被动模式-------------------
# 启用被动模式
pasv_enable=YES
# 端口范围
pasv_min_port=30000
pasv_max_port=31000
# Connect_from_port_20=NO 需要修改上面的此项

4.7 重启vsftp的服务,使用windows打开测试

systemctl restart vsftpd.service

注意:如果输入账号密码打不开,使用linux系统ftp连接过去,会提示报错信息

例如 提示

anon_world_readable_only
bool
值错误,打开配置文件
vim /etc/vsftpd/vsftpd_user_conf/caiwubu


发现该bool值后面有空格,删除后可以正常访问

(4.8 可选)实际生产中需要对虚拟用户进行访问控制

4.8.1 限制虚拟用户访问其他目录

在vim /etc/vsftpd/vsftpd.conf配置中添加如下

# 将用户目录限制为根目录(看不到家目录的其他目录)
allow_writeable_chroot=YES
# 是否禁止本地用户切换到家目录上级目录,绑定家目录为用户的根目录
chroot_local_user=YES

连接只能看到自己的家目录文件。

4.8.2 如果只需要个别用户可以访问其他目录,需要创建chroot_list文件

vim /etc/vsftpd/chroot_list

# 用户名称
yanfabu

vim /etc/vsftpd/vsftpd.conf

# 指定用户列表文件的文件路径
chroot_list_file=/etc/vsftpd/chroot_list
# chroot_list_file文件中的用户可以切换到其他目录
chroot_local_user=YES
chroot_list_enable=YES


测试完,研发部可以访问其他目录

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: