前言

今天折腾了很久,各种各样的问题出现,特此记录一下,以防再次翻车
第一步:安装vsftpd

yum install vsftpd lftp libdb-utils -y

lftp:是连接lftp的工具
libdb-utils:后面制作虚拟用户数据库需要的工具

至此,vsftpd安装完毕

实现虚拟用户需要以下几个步骤:

  1. 建立虚拟用户数据库文件并添加pam认证机制
  2. 创建ftp根目录及其虚拟用户映射的系统用户
  3. 修改vsftpd的配置文件
  4. 为虚拟用户创建权限文件
  5. 启用服务

一:创建虚拟用户的数据库文件

~]# cd /etc/vsftpd
~]# vim vusers_list

添加以下用户(奇数行为用户名,偶数行为密码)

user1
123456
user2
456789

:wq 保存文件,接着把该文件转换为数据库文件

~]# db_load -T -t hash -f vusers_list vusers.db

为安全起见修改数据库文件的权限

~]# chmod 600 vusers.db

用户的数据库文件就制作完成了,下面添加pam机制,配置文件在/etc/pam.d/

~]# cd /etc/pam.d
~]# vim vsftpd.vu

键入以下内容

auth required pam_userdb.so     db=/etc/vsftpd/vusers
#认证双方密码必须通过pam,db为用户数据库文件路径,不需要加扩展名
account required pam_userdb.so  db=/etc/vsftpd/vusers
#账户信息

:wq保存

二:创建ftp根目录以及映射的系统用户

创建ftp根目录,本文演示的根目录为/var/ftproot

~]# mkdir /var/ftproot

创建映射的系统用户

~]# useradd -s /sbin/nologin 

修改用户的家目录

~]# vim /etc/passwd

修改倒数第二个字段为: /var/ftproot

~]# chown -R ftpadmin.ftpadmin /var/ftproot

修改用户家目录属组,属主为ftp映射的系统用户

三:修改vsftpd的配置文件

~]# vim /etc/vsftpd/vsftpd.conf

主要修改以下几项,没有的就新增

anonymous_enable=NO
#禁止匿名用户登录
anon_mkdir_write_enable=NO
#禁止匿名用户的写权限
pam_service_name=vsftpd.vu
#修改为刚刚我们新建的pam文件"vsftpd.vu"
guest_enable=YES
#启用虚拟用户
guest_username=ftpadmin
#虚拟用户映射的系统用户,刚刚创建的系统用户 "ftpadmin"
user_config_dir=/etc/vsftpd/vuser.d
#虚拟用户的配置文件
allow_writeable_chroot=YES
#允许用户在其主目录有写权限,非常重要,必须有
reverse_lookup_enable=NO
#禁用dns反解,不然很慢
chroot_local_user=YES
#禁止本地用户离开自己的主目录

:wq保存

四:为虚拟用户提供权限文件

~]# cd /etc/vsftpd

进入vsftpd的配置文件目录

~]# mkdir vuser.d && cd vuser.d

进入vuser.d目录

~]# vim user1

这里的配置文件为每个用户一个文件,且文件名和用户名一致

给用户user1写入权限

local_root=/var/ftproot/admin
#指定用户的家目录
anon_mkdir_write_enable=YES
#写权限
anon_upload_enable=YES
#上传权限

:wq保存退出

~]# vim user2

不给用户user2写入权限

anon_mkdir_write_enable=NO

五:启动服务

~]# systemctl start vsftpd.service

启动服务

~]# systemctl enable vsftpd.service

开机启动服务

在centos 7上出现让博主很迷的情况,登录ftp后可以看到文件夹,可创建文件夹,上传文件,但是看不到上传的文件,只能看到文件夹。
后来改变ftproot的权限为777以后就可以看到文件了,然后再把权限改回755,文件也能正常显示了。博主不知道具体原因


注意:新版本的vsftpd安全限制较高,必须加入下面这个配置:
allow_writeable_chroot=YES


END

Last modification:September 22nd, 2019 at 05:37 pm
If you think my article is useful to you, please feel free to appreciate