zoukankan      html  css  js  c++  java
  • linux之文件传输协议(FTP)与本地用户测试

    FTP:文件传输协议
        两类连接:
            命令连接:传输命令
            数据连接:传输数据
            端口号 TCP 20/21
            工作方式:
                主动模式:
                    21端口--控制端口
                    20端口--数据端口
                    描述:
                        当客户端与FTP服务器建立连接时客户端会输入账户和密码,当输入正确后,FTP服务器会用21端口返回给客户端一条登录成功的信息。客户端登录成功后会进行数据传输(连接成功后,客户端开始监听服务器20端口),此时客户端会产生一随机端口号通过FTP服务器21端口进行数据传输,当21端口收到数据流后会连接到FTP服务器20端口将相关数据流传输给客户端的随机端口,实现双方的数据传输。
                被动模式:
                    21端口+随机端口
                    描述:
                        同样当客户机登录成功后,客户端会打开两个随机端口,第一个端口连接到FTP服务器21端口,此时客户端发送PASV命令,不允许FTP服务器21端口连接20端口,这样FTP服务器会使用随机端口号回应客户端PASV应答。此时客户端会使用第二个随机端口号来监听服务器传输来的数据。
                路径映射:
                    用户家目录:每个用户的URL的/映射到当前用户的家目录
                vsftpd以ftp用户的身份运行进程,默认认用户即为ftp用户,匿名用户的默认路径即ftp用户的家目录/var/ftp
        程序环境:
            主程序:/usr/sbin/vsftpd
            主配置文件:/etc/vsftpd/vsftpd.conf
            数据根目录:/var/ftp
            系统模块文件:/usr/lib/systemd/system/vsftpd.service

            配置vsftpd:
                ftp用户:
                    匿名用户:                            
                    虚拟用户:非系统用户,用户账号非为可登陆操作系统的用户账号
                    系统用户:至少禁止系统用户访问ftp服务,/etc/vsftpd/ftpusers, PAM (/etc/pam.d/vsftpd)

                    用户通过vsftpd服务访问到默认路径,是用户自己的家目录;默认可以自己有权限访问的所有路径切换
                配置文件:
                    /etc/vsftpd/vsftpd.conf
                匿名用户:
                    anonymous_enablen=YES
                    anon_upload_enable=YES
                    anon_mkdir_write_enable=YES
                    anon_other_write_enable=YES
                系统用户:
                    local_enable=YES
                    write_enable=YES
                    local_umask=022

                    辅助配置文件/etc/vsftpd/ftpusers
                        列在此文件中的用户 均禁止使用ftp服务
                    chroot_local_user=YES
                        本地用户在访问时只能访问自己的家目录
                    chroot_list_enable=YES
                    chroot_list_file=/etc/vsftpd/chroot_list
                        禁据列表中文件存在的用户于其家目录中 ;需要事先去除用户对家目录的写权限
                传输日志:
                    xferlog_enable=YES
                    xferlog_file=/var/log/xferlog
                    xferlog_std_format=YES
                守护进程的类型:
                    standalone :独立守护进程;由服务进程自行监听套按字.并接收用户访问请求
                    translent :瞬时守护进程;由受托管方代为监听套按字,服务进程没有访问请求时不启动;当托管方收到访问请求时才启动服务进程
                        Centos 6 : xinetd独立守护进程/etc/xinetd.d/
                        Centos 7 :由systemd代为监听
                控制可登陆vsftpd服务的用户列表:
                    userlist_enable=YES
                        启用/etc/vsftpd/user_list文件来控制可登录用户
                    userlist_deny=
                        YES:意味着此为黑名单
                        NO:白名单
                上传下载速率:
                    anon_max-rate=0
                    local_max_rate=0
                并发连接数限制:
                    max_clients=2000
                    max_per_ip=50
        测试:
            配置本地用户上传和下载
               (1)vsftpd可以直接使用Linux系统的本地用户作为FTP用户
                使用本地用户登录FTP服务器后,默认将位于用户自己的主目录中,且具有读写权限
                如利用qwertyuiop用户访问ftp,那么默认将进入到的目录是/home/qwertyuiop              
                创建系统用户,并设置密码,并在主目录中放置一个测试文件:
                        useradd  ftptest   
                        passwd   vsftpdtest
                        echo ‘ftp test’ > /home/ftptest/ftptest.txt    
                创建系统用户test,并设置密码:
                        useradd  qwertyuiop
                        passwd   qwertyuiop
                (2)允许用户ftptest登录,且登录成功后位于自己的家目录中。不允许qwertyuiop用户登陆
                    anonymous_enable=NO
                    local_enable=YES  
                    write_enable=YES  
                    chroot_local_user =YES       
                    chroot_list_enable=NO        
                    chroot_list_file=/etc/vsftpd/chroot_list    
                    local_umask=022    
                    userlist_enable=YES
                    userlist_deny=NO
                    将ftptest用户加入到 /etc/vsftpd/user_list文件。
                (3)允许qwertyuiop用户登录,登录成功后位于/data目录,禁止ftptest用户登录
                    anonymous_enable=NO
                     local_enable=YES  
                      write_enable=YES  
                     chroot_local_user =YES       
                      chroot_list_enable=NO        
                    chroot_list_file=/etc/vsftpd/chroot_list    
                    local_umask=022    
                    userlist_enable=YES
                    userlist_deny=NO
                    local_root=/data
                    将qwertyuiop用户加入到 /etc/vsftpd/user_list文件。从此文件中删除ftptest用户
                    注:每次测试必须重新启动服务

     

  • 相关阅读:
    iphone 自学常用网址
    @ApiParam @RequestParam @PathVariable 用法
    @RestController 与 @Controller 注解区别
    Java:post请求
    Java:清空文件内容
    Java:追加文件内容
    Java:获取文件内容
    Java:Md5加密
    Java:获取IP地址
    docker:安装tomcat
  • 原文地址:https://www.cnblogs.com/createwell/p/12691582.html
Copyright © 2011-2022 走看看