1. 配置vsftpd虚拟用户登录及权限

2. 配置vsftp系统用户登录及控制用户访问

3. 配置vsftp+pam+mysql及权限设置


实验 /etc/init.d/iptables stop  setenforce 0 (关闭防火墙,以免出错误。)

首先安装  yum install vsftpd -y

/etc/init.d/vsftpd start  这个装好其实就可以启动的。

可以用 ss -tnlp | grep :21 查看启动没。

cd /etc/vsftpd  进入目录后可以看到有个 vsftpd.conf配置文件

cp vsftpd.conf{,.bak} 拷贝一份在当前目录

vim(vi) vsftpd.conf 进入配置文件

下面是一些主要配置文件内容

匿名用户
   anonymous_enable=YES          #是否允许匿名账户登录FTP服务器               
   anon_upload_enable=YES        #匿名用户的上传操作;生效要依赖于write_enable=YES;
   anon_mkdir_write_enable=YES   #匿名用户创建目录的权限
   anon_other_write_enable=YE    #匿名用户的删除及重命名操作权限

系统用户
   local_enable=YES              #是否允许本地账户登录FTP服务器
   write_enable=YES              #是否开启目录上次权限(控制所有账户)
#虚拟用户
   guest_enable=YES             #定启用虚拟用户功能
   guest_username=vsftpd        #指定虚拟用户的宿主用户
   virtual_use_local_privs=YES  #设定虚拟用户的权限符合他们的宿主用户
   user_config_dir=/etc/vsftpd/vconf    #设定虚拟用户配置文件存放路径

上传文件的属主设置
   chown_uploads=YES            #是否修改;
   chown_username=USERNAM       #启用chown_uploads指令时,将文件属主修改为此指令指定的用户;默认为root;

系统用户chroot()
chroot_local_user=YES   #所有用户都锁定,不予许在其家目录有写权限,即那ftp用户      
                       #不用于登录系统的账号对于"home-user"的根没有写权限
                       #或针对用户对家目录有些权限的账户开启白名单
                       #YES开启白名单,NO开启黑名单

chroot_list_enable=YES  #开启名单功能,不开启则禁锢所有用户,要先开启锁定
chroot_list_file=/etc/vsftpd/chroot_list    #白/黑名单              

userlist_enable=YES #user_list控制用户访问
userlist_deny=YES   #vsftpd自带的用户登录控制,默认为YES/黑名单,NO为白名单,黑名单直接无法输入密码pam则是给允许登录用户的认证

认证服务:
       pam_service_name=vsftpd         #/etc/pam.d/vsftpd

日志记录
   xferlog_file=/var/log/vsftpd.log   #文件要手动建立,vsftpd用户对日志文件vsftpd.log的读写权限,否则服务将启动失败。

其他
   #idle_session_timeout=600    #设定空闲连接超时时间,单位秒
   #data_connection_timeout=120   #设定单次最大连续传输时间,单位秒
   #ftpd_banner=Welcome to blah FTP service.  #设定Vsftpd的登陆标语
   ls_recurse_enable=NO     #禁止"ls -R"的命令,安全设定
   listen=YES     #设Vsftpd独立守护进程,否则由xinetd代理

已创建一个系统用户 user1

 local_enable=YES   控制是否允许本地用户登录 YES 为是 NO 为否

wKiom1g6_-vgXB2yAAANvRAioiE654.png

wKioL1g6_8DSZcXTAAFycHYG54w550.png

wKiom1g6_8DA7jC6AACMSclja2M632.png

wKioL1g6_8KTp2amAAFnnGu054c209.png

控制用户访问: vsftpd.conf配置文件里倒数第二行有 userlist_enable=yes 默认开启。

然后 vsftpd文件夹内就有user_list文件 可用cat user_list查看文件内容。

wKioL1g7BPfxXK1ZAABGALVLhW0910.png

在红框内的用户是不能登录的。想要其他用户也登录不了,可以自行加进去用户名。

(如果你把第一个红框内的内容输入到vsftpd.conf文件里,则只有第二个红框内的用户可登录)


首先去找一个    pam_mysql的epel源 下载 安装。

yum install mysql-server mysql-devel pam_mysql -y 

下载其他包 安装。

/etc/init.d/mysqld start   启动服务

ss -tnlp | grep :3306   可以用这个命令来查看这个服务开启没

接下来就直接输入 mysql 就能登录进去了

下图是一些操作命令

wKioL1g-seGT-zDKAABbbULLxVs882.png

下图是授权

wKioL1g-s0yAeNP8AAAs8_JmobI160.png

接着 exit; 退出即可。

然后输入命令 进入mysql

wKiom1g-tTzCy0-HAABZLeyMUTY591.png

创建2个虚拟用户 要来测试wKiom1g-tk3jFdEzAAA3mTubc3Y080.png

现在即可 配置vsftpd

首先 建立pam认证所需文件

wKiom1g-uPDR3eM9AAA0uSHgHgU027.png

建立虚拟用户映射的系统用户及对应的目录

useradd -s /sbin/nologin -d /var/ftproot vuser

chmod go+rx /var/ftproot


请确保/etc/vsftpd.conf中已经启用了以下选项

anonymous_enable=NO

local_enable=YES

write_enable=YES

anon_upload_enable=NO

anon_mkdir_write_enable=NO

chroot_local_user=YES

而后添加以下选项

guest_enable=YES

guest_username=vuser


然后启动vsftpd服务。查看下端口开启情况

wKiom1g-u8KgIF19AAAK0UlRAA0470.png

接下来用虚拟用户登录 检测配置结果

wKiom1g-u-mgUpffAABt0R1Elt8203.png

配置vsftpd为虚拟用户使用配置文件目录

vim /etc/vsftpd/vsftpd.conf

在里面添加一项

user_config_dir=/etc/vsftpd/vusers_config 

创建所需要目录,并为虚拟用户提供配置文件

mkdir /etc/vsftpd/vusers_config/

cd /etc/vsftpd/vusers_config/

touch lan drr

然后在 lan drr 文件里添加一些内容  如下图

wKiom1g-vmHBKGP1AABxM7EsJmQ460.png

接下来检测 结果了这是 drr 用户的

wKioL1g-wBnToi_CAAAlGqVLnI4763.png

wKioL1g-wBmg7sRLAAA3qHFRKys431.png

wKiom1g-wNOQzBvfAAFX7OeYYdk905.png

现在测试 lan用户的

wKioL1g-wXHDncwfAABVGzB8uwM766.png

wKiom1g-whmDYhIsAAAtv1E_Wes650.png

wKioL1g-woGidEgYAAAVaWBw6oc643.png

这个是补的 lftp的 drr 用户

wKioL1g-wy-jH4b6AAAyi41sRF4902.png

这样就OK了。也说明lftp是没问题的。是我设置的权限 限制了用户。

以上就是 这是实验结果了。