当前位置: 代码迷 >> 综合 >> vsftp 常用配置(匿名/系统用户/虚拟用户)
  详细解决方案

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

热度:2   发布时间:2023-12-21 00:14:57.0

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


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

一、vsftp安装

1.1 安装vsftp

yum install vsftp* -y

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

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

   #拒绝匿名用户登录anonymous_enable=NO#启用本地系统用户访问local_enable=YES#本地用户写权限write_enable=YES#本地用户上传文件的权限为-rw-r--r-- (最高权限666-022=644local_umask=022#是否显示目录说明文件(需要自己创建.message)dirmessage_enable=YES#记录使用者上传下载信息,保存路径:/var/log/vsftpd.logxferlog_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

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

二、匿名用户配置

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 匿名访问测试

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

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

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

3.1 创建系统用户(测试)

   useradd caiwubuuseradd yanfabuuseradd shichangbuecho "666666" | passwd --stdin caiwubuecho "666666" | passwd --stdin shichangbuecho "666666" | passwd --stdin yanfabu

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

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

   #拒绝匿名用户登录anonymous_enable=NO#启用本地系统用户访问local_enable=YES#本地用户写权限write_enable=YES#本地用户上传文件的权限为-rw-r--r-- (最高权限666-022=644local_umask=022#是否显示目录说明文件(需要自己创建.message)dirmessage_enable=YES#记录使用者上传下载信息,保存路径:/var/log/vsftpd.logxferlog_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

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

3.3 访问测试

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

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

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

四、虚拟用户访问

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

4.1 创建虚拟用户列表

vim /etc/vsftpd/virtusers_list

   # 第一行账号  第二行密码  以此类推caiwubu666666yanfabu666666

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/virtusersaccount       required     pam_userdb.so db=/etc/vsftpd/virtusers#db=后面的文件要与步骤二中的一致

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

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/caiwubuwrite_enable=YESanon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES

vim /etc/vsftpd/vsftpd_user_conf/yanfabu

   # yanfabu用户登录的根目录 local_root=/home/ftpuser/yanfabuwrite_enable=YESanon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_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=NOlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESlisten=NOlisten_ipv6=YESpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YES# ---------virtusers config--------------------# 启用pam认证pam_service_name=vsftpd# 启用虚拟用户guest_enable=YES# 虚拟用户映射系统用户ftpuserguest_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=30000pasv_max_port=31000# Connect_from_port_20=NO 需要修改上面的此项   

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

systemctl restart vsftpd.service

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

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

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

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

例如 提示anon_world_readable_only 的bool值错误,打开配置文件vim /etc/vsftpd/vsftpd_user_conf/caiwubu

vsftp 常用配置(匿名/系统用户/虚拟用户)
发现该bool值后面有空格,删除后可以正常访问

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

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

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

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

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

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

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

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=YESchroot_list_enable=YES

vsftp 常用配置(匿名/系统用户/虚拟用户)
测试完,研发部可以访问其他目录