vsftpd的基于pam_mysql的虚拟用户机制
2016-04-24 21:46
666 查看
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=YES local_enable=YES write_enable=YES 添加: guest_enable=YES guest_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.decho "user_config_dir=/etc/vsftpd/vuser.conf.d" >> /etc/vsftpd/vsftpd.conf2、设置文件系统及用户权限
echo "anon_upload_enable=YES" >>/etc/vsftpd/vuser.conf.d/tomecho "anon_upload_enable=NO" >>/etc/vsftpd/vuser.conf.d/jerrychown -R vuser.vuser /ftproot/upload3、重启服务并测试
systemctl restart vsftpd.service对于vsftpd就写到这里了,感觉写的不错可以给点个赞。作者:
Ace
QQ1257465991
Linux运维攻城狮一只Q/A:如有问题请慷慨提出本文出自 “站在巨人肩膀上” 博客,请务必保留此出处http://xinzong.blog.51cto.com/10018904/1767316
相关文章推荐
- linux环境下MySQL的日志监控
- 基于ORA-12170 TNS pl/sql Developer 连接本地超时解决办法
- ZABBIX2.4.8监控 Windows Mysql数据库
- vsftpd的基于pam_mysql的虚拟用户配置示例
- vsftpd基于pam_mysql的虚拟用户认证
- 在Linux中安装sqldeveloper
- 分布式架构高可用架构篇_06_MySQL源码编译安装(CentOS-6.7+MySQL-5.6)
- ubuntu16.04搭建Hadoop2.7.2+spark1.6.1+mysql+hive2.0.0伪分布学习环境
- Hadoop学习之第五章节:Mysql的安装配置,命令学习
- MYSQL企业常用架构与调优经验分享
- 解决方法:SQL2008 链接服务器 访问接口 "SQLNCLI10" 的架构行集 出错的问题!
- Sqoop实现Mysql与HDFS互导数据,Mysql与Hbase,Oracle与Hbase的互导最后给出命令。
- MySQl Got a packet bigger than ' max_allowed_packet' bytes
- Petshop4.0 中的 SQLHelper 文件
- Mysql中 delect 、truncate、drop 的区别
- plsql developer创建连接DBlinks
- SQL Server 分组后取Top N
- golang gbk转utf8 mssql access
- 运维角度浅谈MySQL数据库优化
- Sqoop HDFS导出到MySQL