实现让vsftpd支持虚拟用户和用mysql对用户进行管理
2012-11-04 21:35
579 查看
如何让vsftpd支持虚拟用户
(1).建立虚拟FTP用户的帐号数据库文件
建立虚拟用户的账户名、密码列表
奇数行为帐号名
偶数行为上一行中帐号的密码
转化为Berkeley DB格式的数据文件
db_load 转换工具
需安装db4-utils软件包
(2).创建FTP根目录及虚拟用户映射的系统用户
此系统帐号就是ftp
虚拟用户, 还是当前系统对应的某个用户,所以要提供用于映射的用户
(3).建立支持虚拟用户的PAM认证文件
(4).在vsftpd.conf文件中添加支持配置
让vsftpd支持虚拟用户
以上四个步骤基本可以搞定
(5).为个别虚拟用户建立独立的配置文件
(6).重新加载vsftpd配置
(7).使用虚拟FTP账户访问测试
步骤如下:
(1)在/etc/vsftpd/目录下建一个文档
(2) .创建FTP根目录及虚拟用户映射的系统用户
(3).建立支持虚拟用户的PAM认证文件
(4).编辑主配置文件vsftpd.conf,在文件中添加支持虚拟用户
[root@ns vsftpd]# vim vsftpd.conf
添加如下:
保存退出,重启服务
测试一下
(5).为个别虚拟用户建立独立的配置文件
文中以tom和jerry为例
在vsftpd.conf文件中添加用户配置目录支持
为用户tom,jerry建立独立的配置目录及文件
配置文件名和用户名同名
修改配置文件,添加一行
保存退出
(6).重新加载vsftpd配置
(7).使用虚拟FTP账户访问测试
此处不再详细举例
(8).优化虚拟用户之编译安装pam模块
安装一个mysql模块可以更加方便快捷的对用户进行管理
下载 pam_mysql-0.7RC1.tar.gz
只要有pam_mysql.so这个模块就可以用mysql做认证
+----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| Name | varchar(30) | NO | | NULL | |
| Password | char(48) | NO | | NULL | |
+----------+------------------+------+-----+---------+----------------+
3 rows in set (0.05 sec)
//查看字段确保无误
用刚才在服务器中创建的用户名登录,此时实验结束本文出自 “MGnuLinux” 博客,请务必保留此出处http://inspriion.blog.51cto.com/3283848/1050021
(1).建立虚拟FTP用户的帐号数据库文件
建立虚拟用户的账户名、密码列表
奇数行为帐号名
偶数行为上一行中帐号的密码
转化为Berkeley DB格式的数据文件
db_load 转换工具
需安装db4-utils软件包
(2).创建FTP根目录及虚拟用户映射的系统用户
此系统帐号就是ftp
虚拟用户, 还是当前系统对应的某个用户,所以要提供用于映射的用户
(3).建立支持虚拟用户的PAM认证文件
(4).在vsftpd.conf文件中添加支持配置
让vsftpd支持虚拟用户
以上四个步骤基本可以搞定
(5).为个别虚拟用户建立独立的配置文件
(6).重新加载vsftpd配置
(7).使用虚拟FTP账户访问测试
步骤如下:
(1)在/etc/vsftpd/目录下建一个文档
[root@ns ~]# cd /etc/vsftpd/ [root@ns vsftpd]# vim vusers.txt tom //奇数行为用户名 123 //偶数行为密码 jerry 456 保存退出 安装db4-tuils包 [root@ns vsftpd]# yum list all db* [root@ns vsftpd]# yum -y install db4-utils 安装完毕以后就有了db_load命令 [ 查看:[root@ns vsftpd]# rpm -ql db4-utils db_load的用法 [root@ns vsftpd]# db_load -h db_load: option requires an argument -- h usage: db_load [-nTV] [-c name=value] [-f file] [-h home] [-P password] [-t btree | hash | recno | queue] db_file usage: db_load -r lsn | fileid [-h home] [-P password] db_file ] [root@ns vsftpd]# db_load -T -t hash -f vusers.txt vusers.db //从vusers.txt中读取列表保存到vsusers.db中 [root@ns vsftpd]# file vusers.db vusers.db: Berkeley DB (Hash, version 8, native byte-order) //查看vsusers.db
(2) .创建FTP根目录及虚拟用户映射的系统用户
[root@ns vsftpd]# useradd -d /var/vuser vuser [root@ns vsftpd]# ll -d /var/vuser drwx------ 3 vuser vuser 4096 Oct 9 22:54 /var/vuser //文件属性为700,别的用户不能访问到,因此要修改属性为755 [root@ns vsftpd]# chmod 755 /var/vuser/
(3).建立支持虚拟用户的PAM认证文件
[root@ns vsftpd]# vim /etc/pam.d/vusers 在里面添加: auth required pam_userdb.so db=/etc/vsftpd/vusers account required pam_userdb.so db=/etc/vsftpd/vusers 保存退出
(4).编辑主配置文件vsftpd.conf,在文件中添加支持虚拟用户
[root@ns vsftpd]# vim vsftpd.conf
添加如下:
先关闭ssl以免影响ssl_enable=NO pam_service_name=vusers #For virtual users anon_umask=022 guest_enable=YES guest_username=vuser
保存退出,重启服务
[root@ns vsftpd]# service vsftpd restart
测试一下
[root@ns vsftpd]# ftp 172.16.7.1
(5).为个别虚拟用户建立独立的配置文件
文中以tom和jerry为例
在vsftpd.conf文件中添加用户配置目录支持
为用户tom,jerry建立独立的配置目录及文件
配置文件名和用户名同名
[root@ns vsftpd]# mkdir vuser_dir [root@ns vsftpd]# vim vsftpd.conf
修改配置文件,添加一行
user_config_dir=/etc/vsftpd/vuser_dir
保存退出
[root@ns vsftpd]# cd vuser_dir/ [root@ns vuser_dir]# touch tom jerry [root@ns vuser_dir]# vim tom //编辑tom的限制条件 anon_upload_enable=YES #anon_mkdir_enable=YES anon_other_write_enable=YES [root@ns vuser_dir]# vim jerry //编辑jerry的限制条件 anon_upload_enable=NO #anon_mkdir_enable=NO anon_other_write_enable=NO
(6).重新加载vsftpd配置
service vsftpd reload | service vsftpd restart
(7).使用虚拟FTP账户访问测试
此处不再详细举例
(8).优化虚拟用户之编译安装pam模块
安装一个mysql模块可以更加方便快捷的对用户进行管理
下载 pam_mysql-0.7RC1.tar.gz
[root@ns ~]# tar xvf pam_mysql-0.7RC1.tar.gz //解压安装 [root@ns ~]# cd pam_mysql-0.7RC1 [root@ns pam_mysql-0.7RC1]# ./configure --with-mysql=/usr/local/mysql //使用此模块的前提是机器上面安装了mysql才可以 下面开始编译安装 [root@ns pam_mysql-0.7RC1]# make && make install [root@ns pam_mysql-0.7RC1]# mysql -uroot -predhat
只要有pam_mysql.so这个模块就可以用mysql做认证
mysql> CREATE DATABASE vsftpd; //创建vsftpd数据库 mysql> USE vsftpd; //切换数据库 mysql> CREATE TABLE vusers (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(30) NOT NULL, Password CHAR(48) NOT NULL); //创建表 mysql> DESC vusers;
+----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| Name | varchar(30) | NO | | NULL | |
| Password | char(48) | NO | | NULL | |
+----------+------------------+------+-----+---------+----------------+
3 rows in set (0.05 sec)
//查看字段确保无误
mysql>insert into vusers (Name,Password) VALUES ('yang',password('redhat')),('yadi',password('redhat')); //创建两个用户yang和yadi,密码都是redhat Database changed mysql> GRANT SELECT ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY '123456'; Query OK, 0 rows affected (0.04 sec) mysql> GRANT SELECT ON vsftpd.* TO 'vsftpd'@'127.0.0.1' IDENTIFIED BY '123456'; Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) //给用户vsftpd查询等权限,这个根据实际情况。。。。 //退出mysql
[root@ns ~]# vim /etc/pam.d/vusers.mysql 增加如下内容: auth required pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=vusers usercolumn=Name passw dcolumn=Password crypt=2 account required pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftpd table=vusers usercolumn=Name passw dcolumn=Password crypt=2 [root@ns ~]# vim /etc/vsftpd/vsftpd.conf 修改主配置文件,修改如下: pam_service_name=vuser.mysql [root@ns ~]# service vsftpd restart //重启服务
用刚才在服务器中创建的用户名登录,此时实验结束本文出自 “MGnuLinux” 博客,请务必保留此出处http://inspriion.blog.51cto.com/3283848/1050021
相关文章推荐
- vsftpd+mysql+apache实现给虚拟用户分配不同目录及权限并实现远程管理
- CentOS6.3+vsftpd+mysql+pam_mysql实现虚拟用户管理的ftp服务器
- Debian+vsftpd+MySQL实现虚拟用户
- proftpd+mysql5.6实现虚拟用户管理
- vsftpd+openssl+mysql实现sftp和ftp虚拟用户
- 通过MySQL实现虚拟用户访问vsftpd服务器
- vsftpd基于数据库文件实现虚拟用户管理站点目录
- 实现基于MYSQL验证的vsftpd虚拟用户
- 基于vsftpd + pam + mysql实现虚拟用户访问机制
- 基于vsftpd+pam+mysql架设ftp并实现虚拟用户登录
- mysql+pam模块实现vsftp虚拟用户统一管理
- 实现基于mysql验证的vsftpd虚拟用户
- 实现基于mysql验证的vsftpd虚拟用户 (centos6)
- vsftpd+pam+mysql实现虚拟用户访问控制
- 在Centos7上使用vsftpd+pam_mysql实现虚拟用户认证
- VSftpd使用MySQL存储虚拟用户进行认证 推荐
- 安装vsftpd+pam+mysql实现对虚拟用户身份认证功能
- vsftpd服务器结合mysql实现虚拟用户登录
- RHEL6---VSFTPD服务器配置之一:使用mysql实现虚拟用户的访问
- vsftpd的基于pam_mysql的虚拟用户机制实现数据传输