独悲十八爷吧 关注:10贴子:469
  • 5回复贴,共1

FTP文件传输服务

取消只看楼主收藏回复

本帖围绕以下三点进行学习:
1-熟悉FTP服务的工作原理
2-学会构建匿名FTP服务器
3-学会构建用户验证的FTP服务器


IP属地:北京1楼2018-10-07 19:34回复
    结构:

    概述-1
    FTP连接及传输模式:
    ---控制连接:TCP 21端口,用于发送FTP命令信息
    ---数据连接:TCP 20端口,用于上传下载数据
    数据连接的建立类型:
    主动模式:服务端从20端口主动向客户端发起连接
    被动模式:服务端在指定的范围内某个端口被动等待客户端连接
    FTP传输模式:
    文本模式:ASCII模式,以文本序列传输数据
    二进制模式:Binary模式,以二进制序列进行传输
    概述-2
    FTP用户的类型
    ▪ 匿名用户:anonymous或ftp(匿名访问也需要使用账户来替代)
    ▪ 本地用户:
    • 帐号名称、密码等信息保存在passwd、shadow文件中
    ▪ 虚拟用户:
    • 使用独立的帐号/密码数据文件
    ❖常见的FTP服务器程序
    ▪ IIS、Serv-U
    ▪ wu-ftpd、Proftpd
    ▪ vsftpd(Very Secure FTP Daemon)
    概述-3
    ❖常见的FTP客户端程序
    ▪ ftp命令
    ▪ CuteFTP、FlashFXP、LeapFTP、Filezilla
    ▪ gftp、kuftp
    vsftpd服务基础
    ❖vsftpd软件包
    官方站点:http://vsftpd.beasts.org/
    主程序:/usr/sbin/vsftpd
    服务名:vsftpd
    用户控制列表文件
    • /etc/vsftpd/ftpusers
    • /etc/vsftpd/user_list
    主配置文件
    • /etc/vsftpd/vsftpd.conf
    安装vsftpd完成以后,需要修改主配置文件vsftpd.conf
    以下是主配置文件的配置项:
    ❖常用的全局配置项
    listen=YES:是否以独立运行的方式监听服务(即是否托管服务给xinetd . YES就是以独立方式运行服务,不托管.NO就是不以独立方式允许,给xinetd托管 , xinetd是管理独立服务程序的)
    listen_address=192.168.4.1:设置监听的IP地址
    listen_port=21:设置监听FTP服务的端口号
    write_enable=YES:是否启用写入权限
    download_enable=YES:是否允许下载文件
    userlist_enable=YES:是否启用user_list列表文件
    userlist_deny=YES:是否禁用user_list中的用户
    max_clients=0:限制并发客户端连接数
    max_per_ip=0:限制同一IP地址的并发连接数
    常用的匿名FTP配置项:
    anonymous_enable=YES:启用匿名访问
    anon_umask=022:匿名用户所上传文件的权限掩码(文件权限有rwx,十六进制为777,而文件上传权限为755,所以777-022=755)
    anon_root=/var/ftp:匿名用户的FTP根目录(如果不设置,则默认登陆到账户的家目录)
    anon_upload_enable=YES:允许上传文件
    anon_mkdir_write_enable=YES:允许创建目录
    anon_other_write_enable=YES:开放其他写入权
    anon_max_rate=0:限制最大传输速率(字节/秒)
    常用的本地用户FTP配置项:
    local_enable=YES:是否启用本地系统用户
    local_umask=022:本地用户所上传文件的权限掩码
    (文件权限有rwx,十六进制为777,而文件上传权限为755,所以777-022=755)
    local_root=/var/ftp:设置本地用户的FTP根目录(如果不设置,则默认登陆到账户的家目录)
    chroot_local_user=YES:是否将用户禁锢在主目录(用户登陆系统之后,默认是家目录,但是可以切换到其他目录,所以为了安全起见,需要启动该选项)
    local_max_rate=0:限制最大传输速率(字节/秒)
    [理论知识部分完毕]


    IP属地:北京2楼2018-10-07 20:35
    回复
      实践-1:构建可匿名上传的FTP服务器
      步骤1:准备匿名FTP访问目录,使匿名用户FTP对该目录有写入权限
      例如:新建目录 /var/ftp/pub
      然后使用命令 "chown ftp /var/ftp/pub"让ftp对该目录有写入权限
      步骤2:开放匿名用户配置,并启动vsftpd服务
      修改配置文件vsftpd.conf,把两行注释去掉,如图:

      以及修改以下选项:
      anonymous_enable=YES
      local_enable=NO
      write_enable=YES
      anon_umask=022
      anon_upload_enable=YES
      anon_mkdir_write_enable=YES
      dirmessage_enable=YES
      然后使用命令"service vsftpd start"开启服务
      在windown打开dos窗口,然后输入"ftp 服务器IP地址"即可访问(匿名用户使用的账户为ftp)


      IP属地:北京3楼2018-10-07 21:09
      回复
        实践-2:构建本地用户验证的FTP服务器
        思路:
        1-修改vsftpd.conf配置文件
        ---启用本地用户访问
        ---结合user_list文件灵活控制用户访问
        2-重新加载vsftpd配置
        步骤-1:
        修改文件配置选项的值:
        lcoal_enable=YES
        write_enable=YES
        local_umask=077
        chroot_local_user=YES
        启用user_list用户列表
        userlist_enable=YES
        userlist_deny=NO
        然后把账户名写入user_list文件里
        (此时应该在user_list里边加入你允许登陆的账户,在同目录下的ftpusers文件里加入禁止登陆的用户名.当user_list配置与ftpusers配置冲突时,ftpusers优先级大于user_list)
        然后重载服务即可:service vsftpd reload


        IP属地:北京5楼2018-10-07 21:57
        回复
          vsftpd服务的其他常用配置
          ❖1.修改vsftpd服务的监听地址、端口
          [root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
          ......[省略]
          listen=YES
          #设置监听地址和端口
          listen_address=192.168.4.11
          listen_port=2121
          ❖2.允许使用FTP服务器的被动模式
          [root@localhost]# vi /etc/vsftpd/vsftpd.conf
          ......[省略]
          #启用被动模式
          pasv_enable=YES
          pasv_min_port=24500
          pasv_max_port=24600
          限制FTP连接的并发数、传输速率
          [root@localhost]# vi /etc/vsftpd/vsftpd.conf
          max_clients=20
          max_per_ip=2
          anan_max_rate=50000
          local_max_rate=200000
          #单位是kB/s


          IP属地:北京6楼2018-10-07 22:01
          回复
            [续]
            ###4-为不同的虚拟用户建立独立的配置文件
            在vsftpd.conf文件中添加用户配置目录支持
            user_config_dir=/etc/vsftpd/vusers_dir
            为用户mike、john建立独立的配置目录及文件
            配置文件名与用户名相同,按照以下步骤进行(命令操作):
            mkdir /etc/vsftpd/vusers_dir/
            cd /etc/vsftpd/vusers_dir/
            vim mike
            填入以下信息:
            anon_upload_enable=NO
            anon_mkdir_write_enable=NO
            vim john
            anon_upload_enable=YES
            anon_mkdir_write_enable=YES
            保存,重新加载vsftpd配置
            ▪ service vsftpd reload


            IP属地:北京8楼2018-10-07 23:14
            回复