zoukankan      html  css  js  c++  java
  • 网络服务—VSFTP

    VSFTP连接类型

    控制连接(持续连接)-->  TCP21(命令信道)--> 用户收发FTP命令

     数据连接(按需连接)-->TCP20(数据信道)-->  用于上传下载数据

    工作模式

    Port模式

    FTP 客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。

    Passive模式

    建立控制通道和Standard模式类似,但建立连接后发送Pasv命令。服务器收到Pasv命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口传送数据。

    注意:很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口

    而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

    安装vsftp

    [root@localhost ~]# yum -y install vsftpd

    [root@localhost ~]# yum -y install ftp      #安装ftp命令

    匿名用户验证:

                       a.      用户账号名称:ftp或anonymous

                       b.      用户账号密码:空或任意字符

                       c.      服务器目录:/var/ftp

                       d.      权限:可下载不可上传,上传权限由两部分组成(主配置文件和文件系统)

                       e.      匿名权限控制:

                                anonymous_enable=YES             启用匿名访问

                                anon_umask=022                         匿名用户所上传文件的权限掩码

                                anon_root=/var/ftp                      匿名用户的FTP根目录

                                anon_upload_enable=YES           允许上传文件

                                anon_mkdir_write_enable=YES   允许创建目录

                                anon_other_write_enable=YES   开放其他写入权(删除、覆盖、重命名)

                                anon_max_rate=0                         限制最大传输速率

                          特点:配置简单,所有登录者使用相同的用户登录

    本地用户验证

    a.      用户账号名称:本地用户(/etc/passwd)

                       b.      用户账号密码:用户密码(/etc/shadow)

                       c.      工作目录为:登录用户的宿主目录

                       d.      权限:最大权限(drwx------)

                       e.      本地用户权限控制:

                                local_enable=YES                是否启用本地系统用户

                                local_umask=022                 本地用户所上传文件的权限掩码

                                local_root=/var/ftp             设置本地用户的FTP根目录

                                chroot_local_user=YES       是否将用户禁锢在主目录

                                local_max_rate=0                限制最大传输速率

            dirmessage_enable=YES    打印目录显示信息,通常用于用户第一次访问目录时,信息提示。

            xferlog_enable=YES      启用上传/下载日志记录。

            connect_from_port_20=YES    使用20端口进行数据传输。

            xferlog_std_format=YES   日志文件将根据xferlog的标准格式写入。   

                                ftpd_banner=Welcome to blah FTP service          用户登录时显示的欢迎信息

                                banner_file=/目录                弹出一个说明,可以做哪些操作

                                userlist_enable=YES & userlist_deny=YES

            listen=YES    vsftpd不以独立的服务启动,通过xinetd服务管理,建改成YES

            listen_ipv6=YES    启用ipv6监听。

            pam_service_name=vsftpd    登录ftp服务器,依据/etc/pas.d/vsftpd中内容进行认证。
            userlist_enable=YES       vsftpd.user_list和ftpusers配置文件里用户禁止访问ftp
            tcp_wrappers=YES        设置vsftpd与tcp wrapper结合进行主机的访问控制。vsftpd服务器检查站/etc/hosts.allow和/etc/hosts.deny中的设置来决定请求连接的主机是否允许访问该FTP服务器。

                                禁止/etc/vsftpd/user_list文件中出现的用户名登录FTP

                                userlist_enable=YES & userlist_deny=NO

                                仅允许/etc/vsftpd/user_list文件中出现的用户名登录FTP

                                ftpusers

                                禁止/etc/vsftpd/ftpusers文件中出现的用户名登录FTP,权限比user_list更高,即时生效

                       f.       特点:配置相对复杂,可以设置严格的权限,有安全隐患

    主动模式改为被动模式

        pasv_enable=YES

        pasv_min_port=60000

        pasv_max_port=60100

     虚拟用户验证实验

    [root@localhost ~]# vi /etc/vsftpd/vsftpd.user

    zhangsan
    123456
    lisi
    123456

    [root@localhost ~]# cd /etc/vsftpd/

    [root@localhost vsftpd]# db_load -T -t hash -f vsftpd.user vsftpd.db

     [root@localhost vsftpd]# chmod 600 vsftpd.db

    [root@localhost vsftpd]# useradd  -d  /var/ftproot  -s  /sbin/nologin  virtual

    [root@localhost vsftpd]# cp -a /etc/pam.d/vsftpd /etc/pam.d/vsftpd.pam

    [root@localhost vsftpd]# vi /etc/pam.d/vsftpd.pam

    #%PAM-1.0
    auth required pam_userdb.so db=/etc/vsftpd/vsftpd
    account required pam_userdb.so db=/etc/vsftpd/vsftpd

    [root@localhost ~]# useradd -s /sbin/nologin ftpuser

    [root@localhost ~]# vi /etc/vsftpd/vsftpd.conf  

    pam_service_name=vsftpd.pam

    guest_enable=YES
    guest_username=ftpuser
    user_config_dir=/etc/vsftpd/dir

     [root@localhost ~]# mkdir /etc/vsftpd/dir

     分别为虚拟用户zhangsan和lisi创建配置文件

    允许上传文件

    [root@localhost vsftpd]# vi /etc/vsftpd/dir/zhagnsan

    anon_upload_enable=YES

    允许创建目录

    [root@localhost vsftpd]# vi /etc/vsftpd/dir/lisi

    anon_mkdir_write_enable=YES

  • 相关阅读:
    新概念第二册(1)--英语口语听力课1
    外企面试课程(一)---熟悉常见的缩略词
    公司 邮件 翻译 培训 长难句 结课
    workflow
    公司 邮件 翻译 培训 长难句 20
    公司 邮件 翻译 培训 长难句 19
    Engineering Management
    公司 邮件 翻译 培训 长难句 18
    公司 邮件 翻译 培训 长难句 17
    第14.5节 利用浏览器获取的http信息构造Python网页访问的http请求头
  • 原文地址:https://www.cnblogs.com/liujunjun/p/11835444.html
Copyright © 2011-2022 走看看