• FTP服务


    ================FTP服务:
    FTP:(File Transfer Protocol)文件传输协议,是TCP/IP协议组中的协议之一;
    架构: C/S client/server
        B/S browser/server
    链接:
      命令链接--------->command 21号端口
      数据链接---------> data
    链接模式:
      主动模式:服务器端从20号端口主动向客户端发出链接请求;  

               

                 被动模式 : 服务器端在指定范围内的某个端口被动等待客户端发起链接请求;

                   

    传输模式:
      文本模式: ASCII模式,以文本序列传输数据;
      二进制模式:Binary模式,以二进制序列传输数据;
    服务概述:

            

    ==============搭建vsftpd服务:

    服务器端:

    1》安装相关软件包:
      yum -y install vsftpd
      service vsftpd start 开启服务
      lsof -i:21 查看相关端口
      *****:默认情况下我们使用ftp用户登录,只能下载文件,不能上传文件,所以当我们登录ftp服务器后直接进入ftp用户的家目录/var/ftp;新建本地用户,才能实现上          
    传和下载文件,上传的文件会在用户的家目录下;

    2》新建本地用户,实现上传和下载文件:

            

    3》修改配置文件:/etc/vsftpd/vsftpd.conf

           

               

                  

                   ******man 5 vsftpd.conf 命令可以详细查看配置文件中的各项配置意义
    4》客户端登录,并上传下载文件:

           

      ================匿名用户相关案例:

        

      =================黑白名单:

         

      ==========虚拟账户:满足大量账户的访问需求
        如果需要访问FTP的用户不多,则可以直接创建系统账户以满足对FTP访问的请求,但当用户量变得越来越庞大时,继续创建更多的系统账户是不明智的,这时就需要为vsftpd创建虚拟账户;但vsftpd虚拟账户的数据需要保存在Berkeley DB 格式的数据文件中,所以需要安装db4-utils工具来创建这样的数据文件:

    1》创建虚拟账户数据库:

             首先需要创建明文密码文件,明文文件奇数行为用户名,偶数行为密码,然后使用db_load工具将其转换为数据库文件,db_load工具需要通过安装db4-utils软件获得,最后可以通过修改文件权限以增强数据资料的安全性;

          

      2》创建PAM文件,设置基于虚拟账户验证:
        Linux一般通过PAM文件设置账户的验证机制,然后通过创建新的PAM文件,使用新的数据文件进行登录验证,PAM文件中的db选项于指定并验证账户和密码的数据库文件,数据库文件无须.db的名称后缀。

           

      3》设置虚拟账户共享目录:
        因为所有的虚拟账户最终都需要映射到一个真实的系统账户,所有这里需要添加一个系统账户并设置家目录,可以设置一份测试文件;
        useradd -s /sbin/nologin -d /home/ftp virtual
        cp /etc/passwd /home/ftp
    4》修改主配置文件:
      与匿名用户设置差不多,使用guest_enable选项开启虚拟账户功能;

            

      5》为每个用户设置独立的共享路径:
      通过在主配置文件中使用user_config_dir选项,设置一个基于账户的配置目录,在该目录下可以创建若干个与账户名称同名的文件,并在文件中为此账户设置独立的配置选项,包括权限与共享路径等设置,这样就可以为每个账户作单独的权限设置等操作,当然如果你还需要对权限,限速,并发量等选项进行设置,可以参考匿名账号的设置选项添加至账号独立的配置文件中;

           

      6》重启服务:
      service vsftpd restart

    相关测试:

        

      相关命令: mirror 下载文件夹
          mirror -R 上传文件夹
          wget命令解析: 只能用来下载文件,不能用来下载文件夹,下载的文件默认放在当前目录下;

         

              

              

    ==================常见问题分析:
    1》提示错误代码:530 Login incorrect
      说明登录过程中账户验证失败,则可能是因为你使用的是64位操作系统,而pam文件中库文件的调用却使用的是/lib/security/pam_usedb.so,或者是用户名或密码输入有错误;此外,也可能是vsftpd主配置文件中pam_service_name设置的pam文件名称与/etc/pam.d中创建的pam文件名称不一致,导致无法验证成功;

    2》提示错误代码:500 OOPS: cannot change directory:/home/ftp/$USER
      该提示代表目录不存在或无权限导致的无法切换至目录,也有可能是由于SELinux导致的无法共享账户家目录,默认SELinux不允许共享家目录;

    3》使用windows系统访问主动模式的vsftpd服务器时无法访问成功
      默认windows会使用被动模式连接FTP服务器,如果需要以主动模式连接服务器,需要修改浏览器的属性,方法是查找Internet选项的高级选项卡,找到使用被动FTP,取消该功能即可;

    4》账户登录后无法上传数据:
      根据不同的登录类型,检查主配置文件的设置,匿名账号与虚拟账户检查以anon_开头的权限设置,本地账户检查以local_开头的权限设置,并且要确保全局write_enable设置为YES,此外,文件系统目录的权限也需要修改,确保客户端账户有权限访问该目录;
     ll -d /var/ftp

    5》启动服务时报错:500 OOPS:bad bool value in config file
      vsftpd 配置文件设置错误,检查文件;配置文件要求每个设置项占用独立的一行,并且不可以有多于 的空格;

    ==================日志分析与防火墙问题:
    日志:

            

                 

       安全:

              

  • 相关阅读:
    centos8网络连接(1)虚拟机网卡和网络编辑器设置
    centos7离线安装ruby
    centos7安装ruby-2.6.5,简单快捷的下载与安装方式
    redis 4.0.13 -- 集群模式
    活了
    世界无我
    markdown_test
    关于mimikatz在webshell运行
    可用性自动化V3
    关于sqlmap常用
  • 原文地址:https://www.cnblogs.com/xiaocheche/p/7592659.html
Copyright © 2020-2023  润新知