第三本书第一章Vsftpd服务部署及优化

nodea中:
  【实验前准备】
  先reset虚拟机nodea
  nm-connection-editor   #配置网络
  hostnamectl set-hostname westoslinux117.westos.org  #修改主机名
  vim /etc/sysconfig/selinux  #关闭selinux:状态改为 disabled 
    SELINUX=disable
  reboot #重启
  systemctl disable --now firewalld    #关闭火墙
  软件仓库搭建(之前搭建好就不用再次搭建)

2.vsftpd安装及启用
1)安装ftp服务软件
 dnf search ftp  #查找ftp
 dnf install lftp vsftpd -y    #安装lftp和vsftpd服务
 systemctl enable --now vsftpd    #开启vsftpd服务
 firewall-cmd --permanent --add-service=ftp   #把ftp服务加入火墙
 firewall-cmd --reload   #重启火墙

第三本书第一章Vsftpd服务部署及优化

第三本书第一章Vsftpd服务部署及优化
测试安装发布:ftp://172.25.254.117 

第三本书第一章Vsftpd服务部署及优化

 带用户名的访问方式
 lftp 172.25.254.117 -u westos

第三本书第一章Vsftpd服务部署及优化

 不带用户名的访问:要修改配置文件
 lftp 172.25.254.117  #不修改配置文件访问不了
lftp 172.25.254.117  #修改完主配置文件后再次访问就可以了

第三本书第一章Vsftpd服务部署及优化

 3.vsftpd基本信息

服务名称: vsftpd.service
 配置目录: /etc/vsftpd
 主配置文件: /etc/vsftpd/vsftpd.conf
 默认发布目录: /var/ftp
 报错信息:
 550  ##程序本身拒绝
 553  ##文件系统权限限制
 500  ##权限过大
 530  ##认证失败

4.匿名用户访问控制
1)家目录控制 

mkdir /westosdir
vim /etc/vsftpd/vsftpd.conf
  #第12行左右:anon_root=/westosdir
systemctl restart vsftpd  #重启服务
touch /westosdir/westosfile{1..3}

 第三本书第一章Vsftpd服务部署及优化

 检测:lftp 172.25.254.117

第三本书第一章Vsftpd服务部署及优化

 2)登陆控制
 vim /etc/vsftpd/vsftpd.conf
   #13行左右 anonymous_enable=YES   #允许匿名用户登陆
 systemctl restart vsftpd   #重启服务
3)匿名用户上传控制
一般情况匿名用户不能上传:把自己主机里的东西传到服务器

 vim /etc/vsftpd/vsftpd.conf
    #29行左右 anon_upload_enable=YES  #允许匿名用户上传
 systemctl restart vsftpd   #重启服务
 chmod 775 /var/ftp/pub #给pub目录权限
 chgrp ftp /var/ftp/pub

第三本书第一章Vsftpd服务部署及优化

 检测:lftp 172.25.254.117

第三本书第一章Vsftpd服务部署及优化

 注意:一定要先进入pub目录才能上传成功

4)目录建立、下载、删除命令控制

 anon_mkdir_write_enable=YES  #目录建立控制
 anon_world_readable_only=NO   ##下载控制,匿名用户可以下载不能读的文件
 anon_other_write_enable=YES   ##匿名用户可以删除命令控制

 vim /etc/vsftpd/vsftpd.conf
     anon_mkdir_write_enable=YES
     anon_world_readable_only=NO
     anon_other_write_enable=YES
  systemctl restart vsftpd

 第三本书第一章Vsftpd服务部署及优化

检测:lftp 172.25.254.117

 第三本书第一章Vsftpd服务部署及优化

 5)匿名用户上传文件权限设定

anon_umask=022  ##当设定chown_username之后上传文权限将不是用此参数设定

 vim /etc/vsftpd/vsftpd.conf
     anon_umask=022  #权限为644【777-022-111】
  systemctl restart vsftpd

 第三本书第一章Vsftpd服务部署及优化

 检测:lftp 172.25.254.117

第三本书第一章Vsftpd服务部署及优化

 6)匿名用户上传文件的用户身份设定

  vim /etc/vsftpd/vsftpd.conf
    chown_upload=YES   
    chown_username=westos  #指定上传用户为westos【默认为ftp】
    chown_upload_mode=0644  #指定上传权限为644
  systemctl restart vsftpd

 第三本书第一章Vsftpd服务部署及优化

 检测:lftp 172.25.254.117

第三本书第一章Vsftpd服务部署及优化

 7)登陆数量控制:

 max_clients=2  #限制最大登陆数量为2

vim /etc/vsftpd/vsftpd.conf
    max_clients=2
 systemctl restart vsftpd

第三本书第一章Vsftpd服务部署及优化

检测:lftp 172.25.254.117-->打开多个shell同时登陆,结果是只能登陆两个 

第三本书第一章Vsftpd服务部署及优化

 8)上传速率控制

anon_max_rate=102400

 dd if=/dev/zero of=/mnt/bigfile bs=1M count=500 #在/mnt目录建立一个500M的大文件bigfile
  vim /etc/vsftpd/vsftpd.conf
     anon_max_rate=102400
  systemctl restart vsftpd

 第三本书第一章Vsftpd服务部署及优化

 检测:lftp 172.25.254.117

第三本书第一章Vsftpd服务部署及优化

5.本地用户的访问
1)登陆控制【local_enable=NO|YES】 

useradd westos  #建立westos用户(用的话就不用建立了)
 useradd lee   #建立lee用户
 echo westos | passwd --stdin westos  #把westos用户密码改为:westos
 echo westos | passwd --stdin lee    #把lee用户密码改为:westos
 vim /etc/vsftpd/vsftpd.conf
   local_enable=YES
systemctl restart vsftpd

第三本书第一章Vsftpd服务部署及优化

 检测:lftp 172.25.254.117 -u westos/-u lee

第三本书第一章Vsftpd服务部署及优化

 2)家目录控制【local_root=/software】

vim /etc/vsftpd/vsftpd.conf
    local_root=/westos
 systemctl restart vsftpd

第三本书第一章Vsftpd服务部署及优化

 检测:lftp 172.25.254.117 -u westos/-u lee

第三本书第一章Vsftpd服务部署及优化

 3)写权限控制【write_enable=NO|YES】

 vim /etc/vsftpd/vsftpd.conf
   write_enable=YES  #YES有写权限(属于全局设置,默认为YES)
 systemctl restart vsftpd

 第三本书第一章Vsftpd服务部署及优化

检测:lftp 172.25.254.117 -u westos/-u lee

 第三本书第一章Vsftpd服务部署及优化

 注意:这里要用westos用户建立目录的话一定要看下权限,对什么用户和组可写

 当写的权限关掉:write_enable=NO时

vim /etc/vsftpd/vsftpd.conf
   write_enable=NO
 systemctl restart vsftpd

第三本书第一章Vsftpd服务部署及优化

 4)上传文件权限控制【local_umask=077】

 当local_umask=077时

 vim /etc/vsftpd/vsftpd.conf
    local_umask=077
 systemctl restart vsftpd

第三本书第一章Vsftpd服务部署及优化

第三本书第一章Vsftpd服务部署及优化 当local_umask=022时

 第三本书第一章Vsftpd服务部署及优化

vim /etc/vsftpd/vsftpd.conf
    local_umask=022
 systemctl restart vsftpd

第三本书第一章Vsftpd服务部署及优化

 5)本地用户登陆黑名单

  /etc/vsftpd/ftpusers   ##永久黑
 /etc/vsftpd/user_list  ##默认黑

vim /etc/vsftpd/user_list
    westos       #把westos写入登录黑名单
 systemctl restart vsftpd

第三本书第一章Vsftpd服务部署及优化

 检测:lftp 172.25.254.117 -u westos  不能登陆。但是lee用户可以登陆

第三本书第一章Vsftpd服务部署及优化

第三本书第一章Vsftpd服务部署及优化

 

6)本地用户登陆白名单 

 userlist_deny=NO    #设定/etc/vsftpd/user_list位白名单
                                 #不在名单中的用户不能登陆ftp

 vim /etc/vsftpd/vsftpd.conf
    userlist_deny=NO
 systemctl restart vsftpd

第三本书第一章Vsftpd服务部署及优化 

此时/etc/vsftpd/user_list由黑名单变为白名单

检测:lftp 172.25.254.117 -u westos  可以登陆。但是lee用户不在白名单内不可以登陆

 &&实验做完记得还原用户白名单(删掉添加的westos)

7)锁定用户到自己的家目录中

chmod u-w /home/*
 chroot_local_user=YES | NO #默认NO:不锁定。 YES:锁定
 chmod u-w /home/*

当锁定家目录后

vim /etc/vsftpd/vsftpd.conf
    chroot_local_user=YES
 systemctl restart vsftpd

第三本书第一章Vsftpd服务部署及优化

 当未锁定家目录时,可以*进入目录

第三本书第一章Vsftpd服务部署及优化

vim /etc/vsftpd/vsftpd.conf
    chroot_local_user=NO
 systemctl restart vsftpd

第三本书第一章Vsftpd服务部署及优化

 8)锁定用户到自己的家目录中的黑名单:即其他用户不锁定家目录,只有名单中的用户锁定家目录

 chroot_local_user=NO
 chroot_list_enable=YES
 chroot_list_file=/etc/vsftpd/chroot_list

当chroot_local_user=NO时,/etc/vsftpd/chroot_list为黑名单(原本没有此文件)

 vim /etc/vsftpd/vsftpd.conf
    chroot_local_user=NO
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
 systemctl restart vsftpd

vim /etc/vsftpd/chroot_list
   lee   #把lee用户添加到名单中,lee用户可以锁定家目录
 systemctl restart vsftpd

第三本书第一章Vsftpd服务部署及优化 

 9)锁定用户到自己的家目录中的白名单:即其他用户锁定家目录,只有名单中的用户不锁定家目录

chroot_local_user=YES时/etc/vsftpd/chroot_list为白名单

vim /etc/vsftpd/chroot_list  #修改白名单中用户
   vim /etc/vsftpd/vsftpd.conf  #修改配置文件
       chroot_local_user= YES 
       chroot_list_enable=YES
       chroot_list_file=/etc/vsftpd/chroot_list
   systemctl restart vsftpd

6.虚拟用户访问
1)建立虚拟用户过程

  vim authlist    #建立认证文件模板
      user1
      123
      user2
      123
      user3
      123authlist
 db_load -T -t hash -f authlist authlist.db ##加密认证文件(-f:指定转换文件为建立的文件模板)(-T:转换)(-t:type)
 vim authpam
   account required pam_userdb.so  db=/etc/vsftpd/authlist
   auth    required pam_userdb.so  db=/etc/vsftpd/authlist
 vim /etc/vsftpd/vsftpd.conf
   pam_service_name=authpam  ##指定认证策略文件
   userlist_enable=YES
   guest_enable=YES     ##指定认证策略文件
   guest_username=ftp   ##指定虚拟用户在ftp服务器上的用户身份
 systemctl restart vsftpd

第三本书第一章Vsftpd服务部署及优化

 注意:路径必须写对:vim authlist 必须对应vim authpam文件里面db后边的路径(vim authlist 文件在/etc/vsftpd/里写,那么vim authpam文件里db=/etc/vsftpd/authlist路径必须和建立的authlist路径一致,路径后边的文件名称也须一致。在主配置文件vim /etc/vsftpd/vsftpd.conf中pam_service_name=authpam,等于后边的文件名必须和 vim authpam认证策略文件名称authpam一致)
检测:

第三本书第一章Vsftpd服务部署及优化

2)虚拟用户家目录的独立设定 

mkdir -p /var/ftphome/user{1..3}/westos
touch /var/ftphome/user1/user1file1
touch /var/ftphome/user2/user2file2
touch /var/ftphome/user3/user3file3
vim /etc/vsftpd/vsftpd.conf
    local_root=/var/ftphome/$USER
    user_sub_token=$USER
systemctl restart vsftpd

第三本书第一章Vsftpd服务部署及优化

3)用户配置独立

 ####在做本实验的时候在/etc/vsftpd/vsftpd.conf要把:anon_upload_enable=YES注释掉

mkdir -p /var/ftphome/user{1..3}/westos
chmod 775 /var/ftphome/user{1..3}/westos
chgrp ftp /var/ftphome/user{1..3}/westos
mkdir /etc/vsftpd/confdir
vim /etc/vsftpd/confdir/user1  #编辑user1的子配置文件
    anon_upload_enable=YES  #可以匿名上传
systemctl restart vsftpd


vim /etc/vsftpd/vsftpd.conf
   user_config_dir=/etc/vsftpd/confdir
systemctl restart vsftpd

第三本书第一章Vsftpd服务部署及优化

检测:uese1写了子配置文件:vim /etc/vsftpd/westos/user1所以可以上传文件,user2和user3没有写就不能上传

上一篇:(二)linux虚拟机网络设置


下一篇:Linux中的软件管理以及Linux下的虚拟化部署