• FTP


    一、FTP连接及传输模式

    1. 控制连接:TCP21,用于发送FTP命令信息


    2. 数据连接:TCP20,用于上传、下载数据


    3. 数据连接的建立类型:

    1)主动模式:服务器主动发起数据连接服务器找你
    首先由客户端向服务端的21端口建立FTP控制连接。当需要传输数据时,客户端以PORT 命令告知服务区“我打开了某端口,你过来连接我”,预算服务器从20端口向客户端的该端口发送请求并建立数据连接。
    2)被动模式:服务器被动等待客户端数据连接
    如果客户端所在网络的防火墙禁止主动模式连接,通常回 使用被动模式。
    首先由客户端向服务器的21端口建立FTP控制连接。当需要传输数据时,服务器以PASV命令告知客户端“我打开了某端口,你过来连接我”,于是客户端向服务器的该端口(非20)发送请求并建立数据连接。

     

    4. 传输模式

    传输模式:可以是文本模式,也可以是二进制模式,二进制模式更适合传输图片等非文本字符的文件

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    5、FTP服务器的作用

    用于用户到服务器里上传和下载,具体看下图

     

    二、FTP用户类型

    匿名用户:不需要输入用户(多人共享一个) 
    本地用户:本地的Linux登陆用户(每个共享用户的家目录) 
    虚拟用户:不同于本地用户,可以创建一个匿名用户的FTP,跟Linux没有关系

     

    三、FTP匿名用户服务搭建

    1FTP匿名用户服务搭建

    查看rpm -qa | grep vsftpd

    首先查看服务端有没有vsftpd命令,没有则需要yum安装一下

     

     

     

     

    修改属主

    yum装完vsftpd自然就有/var/ftp/pub的共享目录 
    属主是root别的用户没有办法读写,所以需要把pub属主换成ftp,ftp程序用户系统默认就有

     

     

    备份配置文件

    安装完vsftpd自然就有/etc/vsftpd/vsftpd.conf      ftp配置文件,为了安全先备份一份

    cp vsftpd.conf{,.bak}

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    vim打开ftp配置文件/etc/vsftpd/vsftpd.conf

     

     

    启动ftp服务

     

     

    因为服务端共享目录里没有文件,所以先创建一个

     

     

     

     

     

    客户端只需要安装ftp命令就可以

     

     

    2、登陆FTP

    ftp客户端登陆服务端,

    匿名用户名就是ftp,没有密码为空,所以直接回车

     

     

    ls看一下当前,

    看到了pub,cd进去看到了sl 自然就证明了我已经连接到了服务端

     

    ftp命令

    linux不一样,所以需要help查看一下

     

     

    ftp里get代表下载,put代表上传

    你当前在哪个目录登陆ftp就下载到哪个目录

     

     

     

    ftp里put代表上传命令

    也只能上传客户端当前目录里的文件,不能是绝对路径上传

     

     

     

    用户下载是服务器赋予的读权限,因为对服务器没有进行任何改变

     

    四、FTP本地用户服务搭建

    1、准备工作

    每个用户的共享文件在每个用户的家目录里

    首先先将配置完成后的匿名用户备份,在把初始的配置文件复制回来

    做个备份

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    匿名关闭

    因为是ftp本地用户搭建所以把匿名关闭,在把第96行的本地用户家目录取消注释并开启

    其他还是开的

     

     

     

    本地用户开启(96)行

    开启本地用户的家目录锁定

     

     

    修改完配置文件要重新启动

    /etc/init.d/vsftpd reload

     

     

     

     

    2、本地搭建

    创建本地用户

    因为是ftp本地用户服务所以需要先创建一个普通用户和密码用客户端ftp登陆服务端输入yunjisuan账号和密码

     

     

    登陆

     

    刚创建用户家目录没有任何东西,所有在服务端yunjisuan用户创建一个文件

     

    在客户端ftp服务里ls看到了创建的新文件

     

     

    特别说明

    说明每个用户的共享文件都在每个用户的家目录里

    匿名的FTP用于多人共享一个目录或文件,本地是每个用户独立空间

     

    黑名单设置

    /etc/vsftpd/ftpusers   user_list   (两个都是黑名单功能)

    FTP给用户加黑名单,优先级高于/etc/vsftpd/user_list   

    即使用户不可访问FTP服务器,可以通过vsftpd.conf将此修改为白名单且仅此名单中的用户可以访问。

     

     

    五、FTP虚拟用户服务搭建

    1、准备工作

    FTP虚拟账号是FTP自己承认的虚拟账号

    每个用户通过虚拟账号进来都是看到一个同一空间,都是这个虚拟账号共享的

    首先需要把ftp本地用户服务备份,在把源配置文件复制回来

     

     

     

     

     

     

     

     

     

    db_load创建虚拟账号文件

    /etc/创建虚拟账号vsftpd文件

     

     

     

     

     

    db_load命令转换成数据文件

    创建完密码文件需要db_load命令转换成数据文件,-T允许非程序使用该数据库 -t指定算法 hash -f代表加密,因为是密码,为了增加安全性需要给chmod 600 vusers.db权限

     

     

    创建程序用户(最后映射成的虚拟账号)

     

     

    创建pam认证文件

     

     

    2、修改配置文件

    修改配置文件其余的文件配置跟本地的一样。

    虚拟账号也是通过本地账号来做映射的,就是我们刚刚创建的virtual

    所以匿名用户还要关闭,本地账号要开启,因为都是通过虚拟账号映射到本地账号上的

     

    首先把匿名用户关闭

     

     

     

    把最下面配置文件进行修改到下面的图

    把最下面配置文件

     

    改成这样

     

     

     

     

     

     

    刚刚修改的注释:开启映射账号

     

     

    重启

    /etc/init.d/vsftpd reload

     

    3、共享目录位置就是刚刚创建用户指定的家目录

    因为是指定创建的家目录,所以需要去/var/ftproot创建点文件

     

    登陆

    输入的账号密码就是之前创建的一堆账号密码文件里的

     

     

    4、想要每个虚拟用户都有不同的目录

    得加配置文件和自己创建目录

    实现每个虚拟用户不同根目录,不同权限的管控,首先在/etc/vsftpd创建mkdir /vusers.dir目录,创建完进入目录touch 虚拟账号里的名字

     

     

     

     

     

     

    修改新创建虚拟账号文件

    vim手动打开/etc/vsftpd/vusers.dir/虚拟账号名

     

     

     

    给虚拟账号创建根目录

    配置完手动mkdir -p /var/虚拟账号名,chown virtual /var/虚拟账号名:把账号属主换成virtual有读写权限

     

     

    最后需要修改/etc/vsftpd/vsftpd.conf总配置文件

    告诉总配置文件,每个虚拟账号的单独的配置文件的位置

     

     

    重启服务/etc/init.d/vsftpd reload后进入测试环境,手动在服务端家目录创建个文件

    这样就可以了,每个虚拟用户的家目录就创建成功了

     

    修改虚拟账户的配置文件

    mkdir /var/lisi

    vim lisi

     

    anon_upload_enable=YES

    anon_max_rate=0    #为“0”,表示不限制最大传输速度

    local_root=/var/lisi

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    Spring笔记——装配Bean
    Spring笔记——Spring之旅
    浅读Vue-Router源码记录
    稍微整理ES2020(es11)新东西
    前端实现批量打包下载文件
    CSS常见的三栏灵活布局实现方法
    不吹不黑,学完这篇,PDF导出就没有问题了
    不吹不黑,学完这篇,Word导出就没问题了
    不吹不黑,学完这篇,excel导出就没问题了
    Sass预编译 减法及除法计算问题
  • 原文地址:https://www.cnblogs.com/kakajiang/p/10084606.html
Copyright © 2020-2023  润新知