zoukankan      html  css  js  c++  java
  • 网络服务--VSFTP

    实验部署

    注:先关闭服务器和客户机上的防火墙和SELinux

    配置文件位置  /etc/vsftpd/vsftpd.conf

    重启服务  systemctl restart vsftpd.service

    一、匿名用户验证实验

      

     1、实现可以上传

      (1)  anon_upload_enable=YES

      (2)  在 /var/ftp/ 下创建上传目录

      (3)  修改上传目录的权限或所有者,让匿名用户有写入权限

    2、实现创建目录和文件其他操作

      anon_mkdir_write_enable=YES  #允许创建目录

      anon_other_write_enable=YES  #删除文件、文件改名、文件覆盖

    3、用户进入某个文件夹时,弹出相应的说明

      (1)  在对应目录下创建  .message 文件,并写入相应内容

      (2)  确认 dirmessage_enable=YES 是否启用 

      (3)  尝试切换目录查看效果

    4、实现上传的文件可下载

      设置 anon_umask=022

    二、本地用户验证实验

    1、服务端需要创建用户并设置密码(不需要登录操作系统,仅用来登录VSFTP)

      useradd -s /sbin/nologin username

    2、将所有用户禁锢在自己的家目录下

      chroot_local_user=YES

    3、将部分用户禁锢在自己的家目录下

      chroot_list_enable=YES     #开启白名单功能,允许白名单中的用户随意切换目录

      chroot_list_file=/etc/vsftpd/chroot_list   #白名单文件,需要自己创建

    4、配置文件: /etc/vsftpd/ftpusers

      所有写入此文件内的用户名都不允许登陆 ftp ,立刻生效

    5、修改被动模式数据传输使用端口

      pasv_enable=YES

      pasv_min_port=30000

      pasv_max_port=35000

    三、虚拟用户验证实验

    1、建立FTP的虚拟用户的用户数据库文件(/etc/vsftpd)

      vi vsftpd.user  #奇数行用户,偶数行密码

      db_load -T -t hash  -f  vsftpd.user  vsftpd.db  

      #将用户密码的存放文本转化为数据库类型,并使用 hash 加密

      chmod 600 vsftpd.db

      #修改文件权限为600,更安全

    2、创建FTP虚拟用户的映射用户,并制定其用户家目录

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

      #创建 virtual 用户作为 ftp 的虚拟用户的映射用户

    3、建立支持虚拟用户的PAM认证文件

      cp  -a  /etc/pam.d/vsftpd  /etc/pam.d/vsftpd.pam

      #使用模板生成自己的认证配置文件,方便调用

     4、

     四、 OpenSSL + vsftpd 加密验证方式

      使用 tcpdump 工具进行指定端口抓包,抓取 ftp 登录过程中的数据包

         tcpdump -i ens33 -nn -X -vv tcp port 21 and ip host  来源IP

    1、查看是否安装

    2、查看 vsftpd 是否支持 OpenSSL

      ldd /usr/sbin/vsftpd | grep libssl

    3、生成加密信息的秘钥和证书文件

      位置:/etc/ssl/certs

      a、openssl genrsa -out vsftpd.key 2048

      #建立服务器私钥,生成RSA密钥 vsftpd.key 

      b、openssl req -new -key vsftpd.key -out vsftpd.csr

      #通过密钥文件生成证书文件 vsftpd.csr ,填写多种信息

      c、openssl x509 -req -days 365 -sha256 -in vsftpd.csr -signkey vsftpd.key -out vsftpd.crt

      #根据 vsftpd.key  vsftpd.csr 产生签字后的证书 vsftpd.crt

     4、修改主配置文件 /etc/vsftpd/vsftpd.conf

    ssl_enable=YES
    #启用ssl认证
    
    ssl_tlsv1=YES
    
    ssl_sslv2=YES
    
    ssl_sslv3=YES
    
    #开启tlsv1、sslv2、sslv3都支持
    
    allow_anon_ssl=YES
    
    #允许匿名用户(虚拟用户)
    
    force_anon_logins_ssl=YES
    
    force_anon_data_ssl=YES
    
    #匿名登录和传输时强制使用ssl
    
    force_local_logins_ssl=YES
    
    force_local_data_ssl=YES
    
    #本地登录和传输时强制使用ssl
    
    rsa_cert_file=/etc/ssl/certs/vsftpd.crt
    
    #rsa格式的证书
    
    rsa_private_key_file=/etc/ssl/certs/vsftpd.key
    
    #rsa格式的密钥

    5、重启服务

    6、测试

      

     未解决问题:无法连接上ftp服务器

  • 相关阅读:
    http 400 错误的请求怎么解决
    HTTP 404
    怎样在WIN7系统下安装IIS
    未能找到类型或命名空间名称“XXXX”(是否缺少 using 指令或程序集引用?) 转
    错误 1 未能找到元数据文件“C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/wwwroot/7cb4fcd
    mklink命令转移win7系统盘文件夹users和programdata(附xp的方法)
    前端进阶之路:初涉Less
    原生js实现tooltip提示框的效果
    jquery+css实现邮箱自动补全
    前端面试中常见的算法问题读后整理
  • 原文地址:https://www.cnblogs.com/yellowzunzhi/p/12533098.html
Copyright © 2011-2022 走看看