zoukankan      html  css  js  c++  java
  • 企业中vsftp虚拟用户高级配置实战

     企业中vsftp虚拟用户高级配置实战

    ftp服务器在企业中使用是非常多的,今天在迁移以前同事搭建的一个vsftp虚拟用户的站点的时候,走了些弯路,总结出来写成文档方便以后搭建。

    搭建的时候往往为了安全,需要针对不同目录给予不同的权限,那么今天就来实战一下关于企业中vsftp虚拟用户验证的方式是如何实现的。

    一、Vsftp的安装

    我的安装环境为:Centos 5.5 64 bit

    Vsftp的安装非常简单,只需要执行如下的命令就安装完成了。

    yum -y install vsftpd db4-tcl db4-utils db4-devel

    chkconfig --level 2345 vsftpd on

    备注:如果不安装db4-utils,在后面使用db_load命令的时候会提示找不到命令。

    二、Vsftp的配置

    Vsftp的配置包含几个步骤,分别为:

    1.  创建用户数据库

    A.创建用户文本文件

    vim /etc/vsftpd/vftpuser.txt

    添加虚拟帐号的格式如下:

    格式:

    虚拟帐号1

    密码

    虚拟帐号2

    密码

     

    B. 使用db_load命令生成数据库

    保存虚拟帐号和密码的文本文件无法被系统帐号直接调用,需要使用db_load命令生成db数据库文件

    db_load -T -t hash -f /etc/vsftpd/vftpuser.txt  /etc/vsftpd/vftpuser.db

     

    C.设置用户文本文件和数据库文件的权限为600,防止非法用户获取密码

    chmod 600 /etc/vsftpd/vftpuser.*

     

    2. 配置PAM认证文件

    为了使服务器能够使用数据库文件,对客户端进行身份验证,需要调用系统的PAM模块.PAM(Plugable Authentication Module)为可插拔认证模块,不必重新安装应用系统,通过修改指定的配置文件,调整对该程序的认证方式。PAM模块配置文件路径为/etc/pam.d/目录,此目录下保存着大量与认证有关的配置文件,并以服务名称命名。

            使用echo命令清除掉安装vsftp的时候自动添加的内容,或者用#号注释掉也可以。

    echo > /etc/pam.d/vsftpd 

    #如果不是全新安装,请注意备份次文件

    vim /etc/pam.d/vsftpd 添加如下内容:

    auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser

    account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser

     

    3.  创建虚拟帐号以及对应的系统帐号

    创建系统帐号:

    mkdir -p /home/ftp/ftp_upload

    mkdir -p /home/ftp/ftp_download

    useradd -d /home/ftp/ftp_upload supper -s /sbin/nogloin

    useradd -d /home/ftp/ftp_download ftpuser -s /sbin/nogloin

    并通过chmod对相应的目录赋予权限

    chown  -R  supper.root  /home/ftp/ftp_upload

    chown  -R   ftpuser.root  /home/ftp/ftp_download

    chmod  700  /home/ftp/ftp_upload   #允许上传下载

    chmod  500  /home/ftp/ftp_download ftpuser  #只允许下载

    备注:因为现在新版本的vsftp处于安全的考虑,会自动检查根目录的权限,如果根目录是777的话会报如下错误,所以请大家在设置权限的时候注意,不要设置根目录为777权限.

    500 OOPS: vsftpd: refusing to run with writable anonymous root

     

    4. 创建配置文件

    vsftp的配置文件中,可以分别为每个虚拟用户设置不同的子配置文件,从而让子用户获得不同的权限,接下来就来看一下vsftp的配置文件如何设置。

    A. 主配置文件的设置

    主配置文件主要是设置所有虚拟用户相同的配置,以及通过user_config_dir参数设置子配置文件的路径,配置如下:

    anonymous_enable=NO

    #禁用匿名用户登录
    local_enable=YES

    #启用本地用户登录

    listen=YES

    #启动监听,设置成standalone启动,不然是用/etc/rc.d/init.d/vsftpd restart#Starting vsftpd for vsftpd: 500 OOPS: vsftpd: not configured for standalone, #must be started from inetd错误

    chroot_local_user=YES

    #将所有本地用户限制在家目录中

    pam_service_name=vsftpd

    #这个要和前面设置的pam.d目录下的文件保持一致
    user_config_dir= /etc/vsftpd/user_config

    #设置用户的子配置文件目录
    max_clients=300

    #ftp最大的连接客户数
    max_per_ip=10

    #设置每个IP的最大连接数

     

    B.子配置文件的设置

    我们可以为每个虚拟用户设置不同配置,比如:是否可以上传、下载速度限制为多少、家目录,对应的什么真实的用户等等。

    vim /etc/vsftpd/user_config/carl

    guest_enable=yes

    #开启虚拟帐号登录

    guest_username=www

    #虚拟帐号carl对应的系统帐号

    local_root=/data/htdocs

    #设置虚拟用户的目录

    anon_world_readable_only=no

    #设置是否允许匿名用户浏览器整个服务器的文件系统

    write_enable=yes

    #设置虚拟用户是否可以写入

    anon_mkdir_write_enable=yes

    #设置虚拟用户是否可以创建文件夹

    anon_other_write_enable=yes

    #设置虚拟用户是否可以执行其他的写入操作,比如删除、重命名、覆盖操作。

    anon_upload_enable=yes

    #允许虚拟用户的上传功能

    anon_max_rate=100000

    #设置虚拟用户的传输速度为100KB/s

     

    5. 启动vsftp

    使用如下命令启动vsftp

    /etc/rc.d/init.d/vsftpd start

     

    至此,企业中的支持虚拟用户的vsftp的搭建已经介绍完成,请读者自行搭建环境测试。

  • 相关阅读:
    mongodb 逻辑操作符
    mongodb 操作符
    js 对象拷贝的三种方法,深拷贝函数。
    html语义化
    移动端meta
    onmouseOver、onmouseOut 和 onmouseEnter、onmouseLeave的区别
    javascript阻止事件冒泡和浏览器的默认行为
    js中return的用法
    Ubuntu联网设置
    视窗宽高offset、client、scroll
  • 原文地址:https://www.cnblogs.com/feihongwuhen/p/7169855.html
Copyright © 2011-2022 走看看