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

 

posted @ 2019-03-23 19:47  JerryZao  阅读(224)  评论(0编辑  收藏  举报