• FTP服务搭建


    FTP服务

    一、FTP概论

    FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTPFile Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。

    FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。

    二、FTP分类及FTP用户分类

    FTP分为主动模式和被动模式;

    主动模式:服务器主动发起数据连接

    被动模式:服务器被动等待数据连接

    FTP用户:

    匿名用户:不用输用户

    本地用户:直接使用本地的系统用户账号进行验证

    虚拟用户:不同于本地用户

    三、FTP服务搭建

    (1)匿名用户

    服务端 ↓ ↓ ↓

    yum -y install vsftpd ==>FTP软件

    匿名FTP访问的目录

    cd /var/ftp 里面有一个pub/目录,这个是共享目

    chown ftp.root pub/==>修改pub的属主,ftp的程序用户默认就有

    ——ftp配置文件==>/etc/vsftpd/vsftpd.conf

    为了安全起见可以先将ftp配置文件做备份==>cp vsftpd.conf{,.bak}

    开启匿名用户上传的权限==>anon_upload_enable=YES

    在下面手动添加匿名用户的权限掩码==>anon_umask=022

    开启匿名用户新创建目录的权限==>anon_mkdir_write_enable=YES

    在下面手动添加匿名用户的其他(删除权限)==>anon_other_write_enable=YES

    ——配置完成

    启动ftp服务==>/etc/init.d/vsftpd start

    netstat -antup | grep vsftpd==>检查一下端口确认是否开启

    客户端 ↓ ↓ ↓

    安装FTP服务==>yum -y install ftp

    再服务端的共享目录pub/创建文件

    ftp 192.168.200.126==>登录方式

    匿名用户登录事名字都是ftp;没有密码

    >>>多人共享一个目录

     

    (2)本地用户

    ——配置文件==>vim /etc/vsftpd/vsftpd.conf

    可以将匿名关了==>anonymous_enable=NO

    chroot_local_user=YES==>大概在96行开启本地用户的目录锁定

               (每个用户的上传文件都会在自己的家目录里)

    ——配置完成

    重启vsftpd服务==>service vsftpd reload

    客户端测试 ↓ ↓ ↓

    创建个本地用户==>useradd yunjisuan && echo "123456" | passwd -stdin yunjisuan

    ftp 192.168.200.126

    登录密码写创建用户的用户名和密码

    >>>每个用户都有自己的独立空间

    FTP服务器的黑名单==>/etc/vsftpd/ftpusers/etc/vsftpd/user_list

    (将用户的用户名写入黑名单内,写对密码也禁止登陆)

     

     

    (3)虚拟用户

    先创建一个虚拟账号文件,需要使用db_load工具

    cd /etc/vsftpd

    ——创建一个虚拟账号文件==>vim ./vusers.list

    :zhangsan ==>虚拟用户名

        123      ==>密码

         lisi

        123

    ——配置完成

    db_load -T -t hash -f vusers.list vusers.db

    (使用db_load给这个文件转换成数据文件"-T"并使用hash加密"-t hash"加密后叫vusers.db)

    chmod 600 vusers.db==>只能让属主读写

    创建虚拟映射账号virtual,并指定家目录为/var/ftproot

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

    mkdir -p /var/ftproot/ && chmod 755 /var/ftproot/

    ——创建一个pam认证文件==>vim /etc/pam.d/vsftpd.vu

    auth required pam_userdb.so db=/etc/vsftpd/vusers

    account required pam_userdb.so db=/etc/vsftpd/vusers

    ——配置完成

    ——修改/etc/vsftpd/vsftpd.conf 配置文件

    pam认证文件加上.vu117==>pam service name=vsftpd.vu

    在下面添加是否开启为YES==>guest_enable=YES

    在下面添加开启本地映射账号==>guest_username=virtual

    ——配置完成

    重启vsftpd服务==>service vsftpd reload

    >>>共享同一个目录==>/var/ftproot

    (登录时通过虚拟账号virtual显示)

     

     

    >>>实现每个虚拟用户不同的根目录:

    cd /etc/vsftpd && mkdir ./vusers.dir

    vusers.dir里创建几个文件就是各个用户的配置文件

    :vim zhangsan==>自己写配置文件

    anon_upload_enable=YES==>允许匿名上传

    anon_mkdir_write_enable=YES==>允许匿名状态下创建目录

    anon_other_write_enable=YES==>允许匿名用户有除了创建之外的其他写权限

    anon_mas_rate=1==>设置下载速度和上传速度为1字节(0表示不限速)

    local_root=/var/zhangsan==>单独给zhangsan设置一个自己的目录

    ——配置完成

    创建zhangsan的本地目录==>mkdir -p /var/zhangsan

    chown virtual.root /var/zhangsan==>修改zhangsan的属主

    ——修改vsftpd.conf主配置文件==>vim /etc/vsftpd/vsftpd.conf

    添加匿名用户的掩码==>anon_umask=022

    在最后一行添加虚拟账号配置文件的路径==>user_config_dir=/etc/vsftpd/vusers.dir

    ——配置完成

    重启vsftpd服务==>service vsftpd reload

     

  • 相关阅读:
    一月份反思内容:BUG & Communicate
    重构一个繁琐的数据结构
    GTD(Get Things Done)
    SortedList<TKey,TValue> 和 SortedDictionary<TKey,TValue>
    对Ado.net Entity Data Model Designer很失望
    A class to clone objects
    collection.All(x=> whatever(x)) 与 collection.Any(x=>whatever(x))
    Asp.net MVC里的TempData是一个整体
    Some tips about ubuntu server | or it may works on other linux distributions too
    每个程序员都必须遵守的编程原则
  • 原文地址:https://www.cnblogs.com/heroke/p/9843289.html
Copyright © 2020-2023  润新知