设为首页 收藏本站
查看: 1196|回复: 0

[经验分享] 安装并配置基于虚拟用户的vsftpd

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-1-8 09:55:33 | 显示全部楼层 |阅读模式
                      vsftpd用户分为:匿名用户、本地用户、虚拟用户
  
  
   虚拟用户和本地用户没有关系,但是所有虚拟用户会被映射为一个指定的系统帐号,访问共享位置就是这系统帐号的家目录。
  
   各虚拟用户可以被赋予不同的访问权限:
          通过匿名用户权限控制参数进行指定;
    虚拟用户帐号的存储方式
          文件,编辑文本文件来存储
                  奇数行为用户名,奇数行+1为其对应密码。
                  此文件需要被编码为hash格式,这个方式非常费劲,添加一
                  次就需要重新hash加密一次
  
         关系型数据库的表中:
                  即时查询数据库完成用户认证:
                     mysql库,pam要依赖于pam-mysql模块
  1 安装软件
  
   安装mysql,vsftpd,pam_mysql
    wKioL1aOKf2xUYPiAABkANpSyvA666.jpg
    pam_mysql属于epel的,得安装epel:yum install epel-release
    打开它的readme
    里面示例:
    wKiom1aOKdXDOl0vAABm5Gsfh9s549.jpg
    认证方式   可选的   模块认证    帐号密码
    红色字体是远程主机上执行的,黑色字体是在本地执行的:
  2 配置数据库
  
   在远程主机上安装mariadb:
  
   远程主机上执行
  
   create database vsftpd;
    use vsftpd;
    grant select on vsftpd.* TO vsftpd@'192.168.%.%' identified by 'vsftpd';
    flush privileges;
    wKiom1aOKdbTo1foAACVmAk2tN8985.jpg   
   
    远程连接mariadb的主机
  
   mysql -uvsftpd -h192.168.1.108 -p
    wKiom1aOKdfhiCXdAAAmlVv2vVk422.jpg
        但是centos7里面不是iptables了,所以需要关闭的是firewalld
    systemctl stop firewalld
    或者
    service firewalld stop
   
    wKiom1aOKdjxXjKeAACQhP2dH7A407.jpg
   
    本地查看下数据库。
    wKioL1aOKgLxev0FAABqI2TLnmg270.jpg
        远程主机建立表
    create table user( id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) BINARY NOT NULL, password CHAR(48) BINARY NOT NULL);
    wKioL1aOKgPQ51tTAABjHTMlQ5s220.jpg
   
    在本地端可以查到
    desc user;
    wKiom1aOKduAnz3HAABVSEacYLM088.jpg
   
    数据库内建函数password(‘xxx’)可以将任意数据变成48位的
    select password(‘abc’);
    wKiom1aOKdzy54SiAACLpc3BZ3w233.jpg
   
    insert into user (name,password) values('tom',password('magedu')),('gh',password('magedu'));
    向远程主机的vsftpd表中插入数据
    wKiom1aOKd2iOSIIAABUU4xd1Ws390.jpg
   
    在本地查询
    wKioL1aOKgezd9e9AACONmv_7Sg293.jpg
  3 配置pam
  
   随便在/etc/pam.d里建立个文件
    wKioL1aOKgjDSPJ0AAAmG7tJIxo217.jpg
    在里面输入内容如下
    wKioL1aOKgmADAlXAABlypzw5CI064.jpg
    auth,认证
    account,验证用户有效与否
    required ,可选方式
    pam_mysql.so ,模块认证,相对路径,/lib64
    user=vsftpd,mysql连接用户
    passwd=vsftpd ,mysql连接密码
    host=192.168.1.108 ,mysql连接地址
    db=vsftpd ,数据库名字
    table=user ,表名字
    usercolumn=name ,用户列名
    passwdcolumn=password ,密码列名
    crypt=0,加密方式
    wKioL1aOKgrjZZq0AADwWi-URIs921.jpg
  4 建立账号
  
   需要在本地主机上建立一个帐号用来登录
    useradd –s /sbin/nologin –d /var/ftproot vuser
    wKiom1aOKeLgt7qmAAA1e_nZpJw431.jpg
    chmod go+rx /var/ftproot
    wKiom1aOKePTcjmSAAA-BonzNX4651.jpg
    请确保/etc/vsftpd.conf中已经启用了以下选项     
anonymous_enable=YES   //匿名用户      
local_enable=YES   //本地用户      
write_enable=YES   //本地用户写入      
anon_upload_enable=NO   //匿名上传      
anon_mkdir_write_enable=NO   //匿名建立文件夹      
chroot_local_user=YES    //是否将用户限制在主目录,yes是
  
   然后添加以下项     
guest_enable=YES      
guest_username=vuser
    并确保pam_service_name选项的值如下所示     
pam_service_name=vsftpd.mysql
    wKioL1aOKg2RTi4rAAB4SeAQ-Vw040.jpg
  
   用tail /var/log/secure里显示最近登录系统的日志
    wKiom1aOKeXytSb0AABSSuVMKUw317.jpg
  
  
   现在几个用户都是相同权限的,下面要赋予不同的权限。
  
  5 配置不同用户的访问权限
  
   在/etc/vsftpd/vsftpd.conf
    添加user_config_dir=/etc/vsftpd/vuser_config
    wKioL1aOKg-hAK9tAACQ9b9w480705.jpg
    然后在指定位置建立文件夹vuser,并针对每个用户建立一个文件
    wKiom1aOKeexfpL8AABkGUBGVtQ928.jpg
    里面的内容如下
    anon_upload_enable=YES     
anon_mkdir_write_enable=yes      
anon_other_write_enable=yes
    wKioL1aOKhCwoAHBAACieW7kdWY063.jpg
    测试连接一下,成功
  
    wKioL1aOKhLDD6YRAACzr4pORm8918.jpg
          -------------------------------------------------------------------------
  除了ftp,下列也可以使用
  axel,lftpget,wget,curl
  
  ftp协议是明文
  
   ftps:SSL,认证过程是安全的
    sftp:SSH,
                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-161755-1-1.html 上篇帖子: ubuntu 14.04.1 vsftpd安装及我的配置过程 下篇帖子: ftp用户类型、配置文件详解以及“425 Security:Bad IP connection”解决方式 用户
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表