vsftpd的基于pam_mysql的虚拟用户机制

虚拟用户:是ftp中常用的一种策略,因为ftp服务古老而且不安全,使用匿名用户不能有效的控制权限,而本地用户可以登录操作系统,极为不安全,所以引入了虚拟用户的概念,其只是将多个虚拟用户映射为一个本地用户,此用户可以设置不允许登录,从而加强了系统的安全性,本问主要介绍基于mysql虚拟用户

配置pam_mysql

下载地址:pam-mysql.sourceforge.net
# yum -y  groupinstall  "Development Tools" "Server Platform Development"
# yum -y install pam-devel openssl-devel mariadb-devel
# ./configure --with-mysql=/usr --with-openssl=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security
# make && make install
安装后模块路径:/usr/lib64/security/pam_mysql.so

mariadb配置 
创建所需数据库和表,插入所需用户,这里的密码使用password加密方式加密

MariaDB [(none)]> CREATE DATABASE ftpdb;
MariaDB [ftpdb]> CREATE TABLE users (id int AUTO_INCREMENT PRIMARY KEY,name char(30) NOT NULL,password char(48));
MariaDB [ftpdb]> INSERT INTO users(name,password) VALUES ('tom',password('tom'));
MariaDB [ftpdb]> INSERT INTO users(name,password) VALUES ('jerry',password('jerry'));
MariaDB [ftpdb]> SELECT * FROM users;
+----+-------+-------------------------------------------+
| id | name  | password                                  |
+----+-------+-------------------------------------------+
|  1 | tom   | *71FF744436C7EA1B954F6276121DB5D2BF68FC07 |
|  2 | jerry | *09FB9E6E2AA0750E9D8A8D22B6AA8D86C85BF3D0 |
+----+-------+-------------------------------------------+
MariaDB [(none)]> GRANT ALL ON ftpdb.* TO vsftpuser@'172.18.%.%' IDENTIFIED BY 'vsftpuser';
MariaDB [ftpdb]> FLUSH PRIVILEGES;

修改pam配置文件,添加配置

# vim /etc/pam.d/vsftpd.mysql
auth required /usr/lib/security/pam_mysql.so user=vsftpuser passwd=vsftpuser host=172.18.4.70 db=ftpdb table=users usercolumn=name  passwdcolumn=password crypt=2
account required /usr/lib/security/pam_mysql.so user=vsftpuser passwd=vsftpuser host=172.18.4.70 db=ftpdb table=users usercolumn=name passwdcolumn=password crypt=2

添加虚拟用户映射用户

# useradd -s /sbin/nologin -d /ftproot vuser
# chmod -w /ftproot
# mkdir /ftproot/{download,upload} # 建议创建目录在子目录中赋予权限
# chown vuser.vuser /ftproot/{download,upload}

注意:CentOS 7后对vsftpd的权限限制更为严格,所以用户家目录不应有写权限,如果需要设置写权限,需在目录下创建子目录即可。

修改其权限保证用户可进入读取

# chmod go+rx /ftproot/

修改配置文件:/etc/vsftpd/vsftpd.conf

必须选项

修改pam认证模块为vsftpd.mysql:pam_service_name=vsftpd.mysql
保证下面三项开启:anonymous_enable=YESlocal_enable=YESwrite_enable=YES
添加:guest_enable=YESguest_username=vuser

可选选项

chroot_local_user=YES  # 基于安全考虑建议开启
anon_upload_enable=YES # 用户可上传文件
anon_mkdir_write_enable=YES #用户科协
anon_other_write_enable=YES #除了上传和写入的其他权限
# 因为虚拟用户基于匿名用户,所以权限控制可以基于匿名用户使用。

设置用户可上传并测试

单独用户权限控制

编辑配置文件:/etc/vsftpd/vsftpd.conf 

添加对应目录:user_config_dir=/etc/vsftpd/vuser.conf.d 

创建对应目录:mkdir /etc/vsftpd/vuser.conf.d 

创建对应用户名的文件:touch tom jerry 

修改文件,添加权限即可

实例:控制tom用户可上传,jerry用户不可上传 
1、创建对应目录及修改配置文件

mkdir /etc/vsftpd/vuser.conf.d
echo "user_config_dir=/etc/vsftpd/vuser.conf.d" >> /etc/vsftpd/vsftpd.conf

2、设置文件系统及用户权限

echo "anon_upload_enable=YES" >>/etc/vsftpd/vuser.conf.d/tom
echo "anon_upload_enable=NO" >>/etc/vsftpd/vuser.conf.d/jerry
chown -R vuser.vuser /ftproot/upload

3、重启服务并测试

systemctl restart vsftpd.service

对于vsftpd就写到这里了,感觉写的不错可以给点个赞。 
 作者:Ace QQ1257465991 Linux运维攻城狮一只 
 Q/A:如有问题请慷慨提出

转载于:https://blog.51cto.com/xinzong/1767316

vsftpd的基于pam_mysql的虚拟用户机制相关推荐

  1. vsftpd的基于pam_mysql的虚拟用户机制实现数据传输

    vsftpd基于mysql服务实现: 查看是maradb中是否有pam-mysql,在目录/lib64/security/下. 没有就编译安装pam-mysql 步骤: 1. # yum -y  gr ...

  2. vsftpd基于mysql_vsftpd的基于pam_mysql的虚拟用户配置示例

    ~]# yum install mariadb-server ~]# yum install vsftpd 因为中CentOS 7平台上/lib64/security/中没有pam_mysql模块驱动 ...

  3. vsftpd安装以及配置FTP虚拟用户实践

    前言正如vsftpd官方宣传中所说Probably the most secure and fastest FTP server for UNIX-like systems.我相信这是大多数人选择vs ...

  4. linux虚拟用户创建目录权限不足,在CentOs中安装vsFtpd并创建多个虚拟用户,且不同的用户拥有不同的权限以及指向不同的文件夹...

    在vsftpd中要实现不同用户不同权限,可以利用虚拟用户来实现. vsftpd的本地用户本身是系统的用户,除了可以登录FTP服务器外,还可以登录系统使用其他系统资源,而vsftpd的虚拟用户则是FTP ...

  5. ftp服务器 vsftpd搭建和配置以及虚拟用户的设置

    tp: File Transfer Protocol应用层协议:tcp, 21/tcpC/S:Client: 程序Server: 程序数据:命令连接:文件管理类命令,始终在线的连接数据连接:数据传输, ...

  6. mysql5.5 vsftpd_vsftpd-2.0.5+mysql-5.5+pam_mysql构建虚拟用户访问

    一, 实验环境:redhat 5.8,软件版本:vsftpd-2.0.5-24.el5, pam_mysql-0.7RC1.tar.gz,mysql-5.5.25a.tar.gz,cmake-2.8. ...

  7. vsftpd + Berkeley DB 创建基于虚拟用户的FTP

    FTP协议以快速著称,vsftp 号称安全的FTP,是目前主流的FTP服务器软件. 本文创建基于 Berkeley DB 虚拟用户的VSFTP服务器 环境:CentOS 6.4 x86_64 1.安装 ...

  8. 两种方式建立Vsftpd虚拟用户

    http://blog.51cto.com/yuanbin/129071 两种方式建立Vsftpd虚拟用户 我们登录FTP有三种方式,匿名登录.本地用户登录和虚拟用户登录. 匿名登录:在登录FTP时使 ...

  9. VSFTPD的虚拟用户管理配置

    上一节我们通过系统用户完成了VSFTPD的部署,现在DB工具实现虚拟用户的管理.文章只是自己工作中的使用说明如有写作错误,欢迎大家指出错误.... 三.虚拟用户 需求:建立user1.user2两个用 ...

最新文章

  1. 初学jQuery之jQuery虚假购物车-------与真实数据无关
  2. HashMap源代码深入剖析
  3. python读写json_python 读写json数据
  4. 第六章 文件I/O编程 [notice select() at RIL.pdf] [串口开发]
  5. VS2010: Microsoft.TeamFoundation.PowerTools.CheckinPolicies.ChangesetComments 未注冊
  6. 正则表达式替换字符串
  7. Atitit 艾提拉总结的操作硬件解决方案 目录 1.1. Atitit 列出wifi热点以及连接 1 1.2. 剪贴板 1 1.3. 屏幕 触摸与截屏 1 1.4. 性能 cpu 内存 硬盘 资源
  8. pdf2image报错,pdf2image完整安装
  9. 网站优化快速排名软件大全
  10. 手把手搭建K3cloud插件开发环境
  11. 机器学习(一)线性模型之岭回归器RidgeRegressor
  12. 使用COMSOL提取指定时刻固体火箭发动机内的流体域(观点)
  13. ESXI安装部署方法
  14. 四年背的单词 笔记目录
  15. 【Python计量】statsmodels对虚拟变量进行回归
  16. 立体栅格地图_三维栅格地图构建之三:点集到栅格的投射
  17. 人工智能兴起的条件_跟我说规矩。 AI受虐狂的兴起
  18. mockito简要教程
  19. 2019世界智能网联汽车大会10月召开
  20. 【体感游戏】没有iPhone也能玩AIWI

热门文章

  1. AttributeError: 'NoneType' object has no attribute 'grid'报错解决方案
  2. 图像恢复迭代算法的加速
  3. 【每周CV论文】深度学习图像降噪应该从阅读哪些文章开始
  4. 中国汽车融资租赁业运营前景与投资战略规划报告2022-2028年版
  5. 中国照明市场运营现状及发展前景分析报告2021年版
  6. python程序基础书写文本_Python基础手册4——文本结构
  7. 中非谋定农业合作 -农业大健康·万祥军:提供农业解决方案
  8. git 常用操作命令(Common operation)
  9. FileStream实现多线程断点续传(已封装)
  10. LeetCode(69):x 的平方根