zoukankan      html  css  js  c++  java
  • Linux:FTP服务匿名用户,本地用户,虚拟用户配置

    匿名用户

     FTP协议占用两个端口号:

    21端口:命令控制,用于接收客户端执行的FTP命令。

    20端口:数据传输,用于上传、下载文件数据。 

    图片

    实验:匿名访问,服务器192.168.10.10    客户端192.168.10.20   匿名访问模式的FTP根目录为/var/ftp:
    第1步:
    服务器端,安装vsftpd服务,yum install vsftpd -y
    第2步:
    服务器端,编辑配置文件: 
    vim /etc/vsftpd/vsftpd.conf 在配置文件中追加:第一项原配置文件中已存在
    anonymous_enable=YES
    anon_umask=022
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    第3步:
    客户端,安装ftp服务, yum install ftp -y
    第4步:
    客户端,使用命令: ftp 192.168.10.10   用户名Name: anonymous  密码空密码。
    创建文件夹时,权限被拒绝。是SELinux的限制,和/var/ftp的所有者的限制
     ftp> mkdir file
    550 Permission denied. 
    第5步:
    服务器端,
    chown  ftp /var/ftp/pub 
     getsebool -a | grep ftp 
     setsebool -P ftpd_full_access=on
    第6步:
    客户端进行验证。 

    本地用户

    本地用户即服务器端(除root外)的普通用户。

    第1步:

    服务器端编辑配置文件: vim /etc/vsftpd/vsftpd.conf 追加:已经有的项目不添加
     anonymous_enable=NO
     local_enable=YES
     write_enable=YES
     local_umask=022
     userlist_deny=YES
     userlist_enable=YES

    第2步:

    /etc/vsftpd/ftpusers    /etc/vsftpd/user_list 禁止列表
     服务器端vsftpd服务为了让FTP服务更加的安全,默认禁止以root身份登入,那么创建个普通用户abc 并添加密码:
     useradd abc
     passwd abc


    第3步:
     
    服务器端设置SELinux: setsebool -P ftpd_full_access=on

    第4步:

    客户端登录ftp192.168.10.10 并验证 ,创建的文件位于abc账户家目录:/home/abc

    虚拟用户

    http://blog.sina.com.cn/s/blog_3edc5e2e0102vzv8.html权限设置参考
    http://blog.chinaunix.net/uid-324202-id-144759.html 数据库MySQL

    虚拟用户不是系统中存在的,因此比本地用户安全,步骤

       第1步:建立虚拟FTP用户数据库文件。

    第2步:创建FTP根目录及虚拟用户映射的系统用户。

    第3步:建立支持虚拟用户的PAM认证文件。

    第4步:在vsftpd.conf文件中添加支持配置。

    第5步:为虚拟用户设置不同的权限。

    第6步:重启vsftpd服务,验证实验效果。

        第1步:建立虚拟FTP用户数据库文件。
            服务器端,切换目录cd /etc/vsftpd/
                 [root@linuxprobe vsftpd]# vim vuser.list

                //单数行为帐号,双数行为密码。
                linuxprobe
                pa33w0rd
                blackshield
                pa22w1rd
                使用db_load命令用HASH算法生成FTP用户数据库文件vuser.db:  db_load -T -t hash -f vuser.list vuser.db
                查看文件:file vuser.db  
                FTP用户数据库内容很敏感,所以权限给小一些:chmod 600 vuser.db
     

     第2步:创建FTP根目录及虚拟用户映射的系统用户。

                创建用户virtual并设置为不允许登陆系统并定义该用户的家目录:useradd -d /var/ftproot -s /sbin/nologin virtual
                 为保证其他用户可以访问,给予rwxr-xr-x权限:chmod -Rf 755 /var/ftproot/

        第3步:建立支持虚拟用户的PAM认证文件。
                 [root@linuxprobe ~]# vim /etc/pam.d/vsftpd.vu

                //参数db用于指向刚刚生成的vuser.db文件,但不要写后缀。
                auth       required     pam_userdb.so db=/etc/vsftpd/vuser
                account    required     pam_userdb.so db=/etc/vsftpd/vuser

         第4步:在vsftpd.conf文件中添加支持配置。
                 vim /etc/vsftpd/vsftpd.conf
                ----------------------------------
                 anonymous_enable=NO
                 local_enable=YES
                 guest_enable=YES
                 guest_username=virtual
                 pam_service_name=vsftpd.vu
                 allow_writeable_chroot=YES
                ------------------------------------- 
    添加后的配置文件,已测试,可直接复制 

    anonymous_enable=NO
    local_enable=YES
    guest_enable=YES
    guest_username=virtual
    pam_service_name=vsftpd.vu
    allow_writeable_chroot=YES
     
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen=NO
    listen_ipv6=YES
    userlist_enable=YES
    tcp_wrappers=YES
     
    user_config_dir=/etc/vsftpd/vusers_dir
     


            第5步:为虚拟用户设置不同的权限。 

            现在不论是linuxprobe还是blackshield帐户,他们的权限都是相同的——默认不能上传、创建、修改文件,
            如果希望用户blackshield能够完全的管理FTP内的资料,就需要让FTP程序支持独立的用户权限配置文件了:
              指定用户独立的权限配置文件存放的目录:vim /etc/vsftpd/vsftpd.conf (user_config_dir=/etc/vsftpd/vusers_dir)
          创建用户独立的权限配置文件存放的目录:mkdir /etc/vsftpd/vusers_dir/
          切换进入到该目录中:cd /etc/vsftpd/vusers_dir/
          创建空白的linuxprobe的配置文件:touch linuxprobe
          指定blackshield用户的具体权限:vim blackshield 下面一段直接复制会报错。
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES  
         第6步:重启vsftpd服务,验证实验效果。
           setsebool -P ftpd_full_access=on
            在客户端验证以上两个用户的权限。 
            linuxprobe用户不能创建文件夹, blackshield用户可以创建文件夹

    -----------------------------------------------------------------------------------实际应用例子-------------------

    ftp服务器匿名用户设置
    匿名用户在服务器端映射到ftp用户下
    /1、主配置文件:/etc/vsftpd/vsftpd.conf 删除默认配置增加以下内容:
    客户端只能下载~:
    anonymous_enable=YES 
    no_anon_password=YES  匿名登录系统不检测密码,通常是email
    anon_max_rate=1000000  最大带宽10M
    data_connection_timeout=60  超时60s
    idle_session_timeout=600    发呆超过10分钟断线
    max_clients=50     最大连接数及每个IP可用连接
    max_per_ip=5
     
    local_enable=NO
     
    use_localtime=YES
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen=YES
    pam_service_name=vsftpd
    tcp_wrappers=YES
    banner_file=/etc/vsftpd/anon_welcome.txt  欢迎信息
     ----------------------------------------------------------------------------------
     2、让匿名用户可以上传/下载资料(权限开放最大)上一个配置文件后面增加:

    write_enable=YES
    anon_other_write_enable=YES
    anon_mkdir_write_enable=YES
    anon_upload_enable=YES
    改文件夹权限:
    mkdir /var/ftp/uploads
    chown ftp /var/ftp/uploads
    还要修改seLinux:
    setsebool -P ftpd_anon_write=on
    setsebool -P ftpd_full_access=on
    --------------------------------------------------------------------------/
    3、让匿名用户具有上传权限,不能下载(实际应用案例:经审核才能下载),上传之后就在客户端看不见了
     
     write_enable=YES
    anon_mkdir_write_enable=YES
    anon_upload_enable=YES
    chown_uploads=YES
    chown_username=daemon  将上传文件所有者改为daemon所以无法下载
  • 相关阅读:
    ASP.NET中常用的附件上传下载
    C#中导出Excel的常用方式
    ASP.NET中AjaxPro.dll的简单应用
    在ASP.NET中使用FusionCharts图表
    ASP.NET中使用MagicAjax.dll
    FusionCharts图表导出
    C#中经常注入的一些Javascript代码
    CodeSmith3.2(.net2.0)教程
    您未必知道的Css技巧
    Web Service简介
  • 原文地址:https://www.cnblogs.com/revo/p/7444897.html
Copyright © 2011-2022 走看看