zoukankan      html  css  js  c++  java
  • ftp服务器 vsftpd搭建和配置以及虚拟用户的设置

    tp: File Transfer Protocol
            应用层协议:tcp, 21/tcp
            C/S:
                Client: 程序
                Server: 程序
    
            数据:
                命令连接:文件管理类命令,始终在线的连接
                数据连接:数据传输,按需创建及关闭的连接
    
                    数据传输格式:
                        文本传输
                        二进制传输
    
                    主动:由服务器创建连接
                        命令:
                            Client:50000 --> Server: 21
                        数据:
                            Server: 20/tcp --> Client: 50000+1
    
                    被动:由客户端创建连接                    
                        命令:
                            Client:50000 --> Server: 21
                        数据:
                            Client:50000+1 --> Server: 随机端口
    
            C/S:
                Server:
                    wu-ftpd
                    proftpd
                    pureftp
                    vsftpd: Very Secure
                    ServU
    
                Client:
                    ftp
                    lftp, lftpget
                    wget, curl
                    filezilla
                    gftp(Linux GUI)
    
                    flashfxp
                    cuteftp
    
            响应码:
                1xx: 信息
                2xx: 成功类的状态码
                3xx: 提示需进一步提供补充类信息的状态码
                4xx: 客户端错误
                5xx: 服务端错误
    
            用户认证:
                虚拟用户:仅用于访问某特定服务中的资源
    
                    nsswitch: network server switch, 名称解析框架
                        配置文件:/etc/nsswitch.conf
                        模块:/lib64/libnss*, /usr/lib64/libnss*
                    pam: pluggable authentication module, 用户认证框架
                        模块:/lib64/security/
                        配置文件:/etc/pam.conf, /etc/pam.d/*
    
                系统用户:
                匿名用户:
    
            CentOS 6.5: vsftpd
                用户认证配置文件:/etc/pam.d/vsftpd
                服务脚本:/etc/rc.d/init.d/vsftpd
                配置文件目录:/etc/vsftpd
                    主配置文件:vsftpd.conf
                匿名用户(映射为ftp用户)共享资源位置:/var/ftp
                系统用户通过ftp访问的资源的位置:用户自己的家目录
                虚拟用户通过ftp访问的资源的位置:给虚拟用户指定的映射成为的系统用户的家目录
    
    
            匿名用户的配置:
                anonymous_enable=YES
    
                anon_upload_enable=YES
                anon_mkdir_write_enable=YES
                anon_ohter_write_enable=YES
    
            系统用户的配置:
                local_enable=YES
    
                write_enable=YES
                local_umask=022
    
                禁锢所有的ftp本地用户于其家目录中:
                    chroot_local_user=YES
    
                禁锢文件中指定的ftp本地用户于其家目录中:
                chroot_list_enable=YES
                chroot_list_file=/etc/vsftpd/chroot_list
    
            日志:
                xferlog_enable=YES
                xferlog_std_format=YES
                xferlog_file=/var/log/xferlog
    
            改变上传文件的属主:
                chown_uploads=YES
                chown_username=whoever
    
            vsftpd使用pam完成用户认证,其用到的pam配置文件:
                pam_service_name=vsftpd
    
            是否启用控制用户登录的列表文件
                userlist_enable=YES
                userlist_deny=YES|NO
    
                默认文件为/etc/vsftpd/user_list
    
            连接限制:
                max_clients: 最大并发连接数;
                max_per_ip: 每个IP可同时发起的并发请求数;
    
            传输速率:
                anon_max_rate: 匿名用户的最大传输速率, 单位是“字节/秒”;
                local_max_rate: 本地用户。。。
    
    
            虚拟用户:
                所有的虚拟用户会被统一映射为一个指定的系统账号,访问的共享位置即为此系统账号的家目录;
    
                各虚拟用户可被赋予不同的访问权限;
                    通过匿名用户的权限控制参数进行指定;
    
                虚拟用户账号的存储方式:
                    文件:编辑文件
                        奇数行为用户名
                        偶数行为密码
    
                        此文件需要被编码为hash格式;
    
                    关系型数据库中的表中:
                        即时查询数据库完成用户认证;
    
                        mysql库,
                            pam要依赖于pam_mysql
    
                            # yum -y install pam_mysql
    
    
            补充:
                axel, lftpget, wget, curl
    
    
            ftp协议是明文:
                ftps: SSL
                sftp: SSH
  • 相关阅读:
    测试结束的标准
    坚持“5W”规则,明确内容与过程
    单元测试过程各阶段的输入、输出是什么?
    集成测试过程各阶段的输入、输出是什么?
    系统测试过程各阶段的输入、输出是什么?
    Mybatis的优点和缺点?
    Hibernate中session有几种创建方式?都有那些区别?
    AQS结构
    JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
    Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述一下动态 sql 的执行原理不?
  • 原文地址:https://www.cnblogs.com/JerryZao/p/10585280.html
Copyright © 2011-2022 走看看