虚拟用户的特点是只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源,所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全

1.生成虚拟用户口令库文件。为了建立此口令库文件,先要生成一个文本文件。该文件的格式如下,单数行为用户名,偶数行为口令:

 [[email protected] vsftpd]# vim vu.txt

aa

11

bb

11

2

用户认证文件的生成需要安装额外的软件来实现,软件名为:db4-utils

[[email protected] Server]# rpm -ivh db4-4.3.29-10.el5.i386.rpm 

生成口令库文件,并修改其权限:

[[email protected] vsftpd]# db_load -T -t hash -f vu.txt vu.db

 [[email protected] vsftpd]# chmod 600 vu.db

3.新建一个虚拟用户的PAM文件。加上如下两行内容(原始代码先注释掉避免冲突): 

[[email protected] vsftpd]# vim /etc/pam.d/vsftpd

auth        required /lib/security/pam_userdb.so db=/etc/vsftpd/vu

account     required /lib/security/pam_userdb.so db=/etc/vsftpd/vu

4.FTP虚拟用户是需要一个系统用户(例如cc,这个用户不需要密码,也不需要登录,只提供一个登录目录.并且让这个目录对other用户拥有读写权限. 

此时用户cc即使aabb的映射用户,登录后是cc的家目录

[[email protected] vsftpd]# useradd -s /sbin/nologin cc

[[email protected] vsftpd]# chmod o+rw /home/cc

5.修改vsftpd主配置文件,让系统支持虚拟用户

guest_enable=yes      # guest_enable=YES表示启用虚拟用户

guest_username=cc     #将虚拟用户映射为本地用户cc

6.进入cc家目录,创建cc.txt 方便测试 并修改权限

# chmod o+rw /home/cc

7.重启vsftpd 测试如下:

Vsftpd虚拟用户的配置及pureftp配置解析 

此时本地用登录不了ftp-serer

 

Pure ftp的配置过程  (清空以前的配置)

配置yum

1.安装gcc

2.yum groupinstall " Development Libraries " -y,注意一定要加引号。

3.yum groupinstall " Development Tools " -y

4.安装 如下:

[[email protected] ~]# yum install php mysql httpd mysql-server mysql-devel php-mysql

[[email protected] ~]# service mysqld start

[[email protected] ~]# mysqladmin -u root -p password "123"

[[email protected] ~]# mysql -u root -p

Enter password: 

5.需要使用以下软件包:

pure-ftpd-1.0.36.tar.gz pureftp主程序

ZendOptimizer-3.3.3-linux-hicode.tar.gz php加速工具

PureAdmin-0.3.tar.gz pureftp的管理工具

解压

[[email protected] pureftp]# tar -zxvf pure-ftpd-1.0.36.tar.gz -C /usr/local/src

[[email protected] ~]# cd /usr/local/src/pure-ftpd-1.0.36/

./configure \

--prefix=/usr/local/pureftpd \

--with-mysql \

--with-shadow \

--with-pam \

--with-welcomemsg \

--with-uploadscript \

--with-cookie \

--with-virtualchroot \

--with-virtualhosts \

--with-diraliases \

--with-quotas \

--with-puredb \

--with-sysquotas \

--with-ratios \

--with-ftpwho \

--with-throttling \

--with-language=simplified-chinese

出现如图所示即为配置成功

Vsftpd虚拟用户的配置及pureftp配置解析

[[email protected] pure-ftpd-1.0.36]# make

[[email protected] pure-ftpd-1.0.36]# make install

6切换到pureftp的安装目录,缺少etc目录,手工创建该目录

[[email protected] pureftpd]# ll

总计 12

drwxr-xr-x 2 root root 4096 12-19 07:17 bin

drwxr-xr-x 2 root root 4096 12-19 07:17 sbin

drwxr-xr-x 3 root root 4096 12-19 07:17 share

[[email protected] pureftpd]# mkdir etc

7.生成pureftp的配置文件

[[email protected] pureftpd]# cp -p /usr/local/src/pure-ftpd-1.0.36/configuration-file/pure-ftpd.conf /usr/local/pureftpd/etc/

[[email protected] pureftpd]# cp /usr/local/src/pure-ftpd-1.0.36/configuration-file/pure-config.pl /usr/local/pureftpd/sbin/

8.产生控制脚本

[[email protected] ~]# chmod a+x /usr/local/pureftpd/sbin/pure-config.pl 

[[email protected] pureftpd]# cd /usr/local/src/pure-ftpd-1.0.36/contrib/

[[email protected] contrib]# chmod 755 redhat.init 

[[email protected] contrib]# cp redhat.init  /etc/init.d/pureftpd

9.编辑该控制脚本文件

[[email protected] init.d]# pwd

/etc/init.d

[[email protected] init.d]# vim pureftpd 

 

Vsftpd虚拟用户的配置及pureftp配置解析

重启pureftpd

[[email protected] init.d]# service pureftpd restart

[[email protected] init.d]# netstat -tupln |grep 21

10.pureftpd 加入chkconfig的管理之列

[[email protected] init.d]# chkconfig --add pureftpd

[[email protected] init.d]# chkconfig pureftpd on

[[email protected] init.d]#  chkconfig --list |grep pureftpd

pureftpd        0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

11配置虚拟用户登录环境(家目录)

[[email protected] init.d]# useradd vuserftp -d /ftproot -s /sbin/nologin

[[email protected] init.d]# chmod -R 777 /ftproot/

[[email protected] init.d]# vim /usr/local/pureftpd/etc/pure-ftpd.conf

 

336 CreateHomeDir               yes

12.重启pureftpd

13.ftp用户登录ftp服务器时,ftp根据自己的配置文件查找到mysql的配置文件

14.  MySQLConfigFile   /usr/local/pureftpd/etc/pureftpd-mysql.conf

15.将导入的pureftpd-mysql.conf 文件放到/usr/local/pureftpd/etc/

[[email protected] pureftp]# pwd

/pureftp

[[email protected] pureftp]# cp pureftpd-mysql.conf  /usr/local/pureftpd/etc

[[email protected] etc]# pwd

/usr/local/pureftpd/etc

[[email protected] etc]# vim pureftpd-mysql.conf 

 32 MYSQLPassword   123

 45 MYSQLCrypt      md5

[[email protected] pureftp]# pwd

/pureftp

[[email protected] pureftp]# vim pureftp.sql 

 50 INSERT INTO admin VALUES ('admin',MD5('123'));

 77 NoAnonymous                 yes

Vsftpd虚拟用户的配置及pureftp配置解析 

[[email protected] pureftp]# mysql -u root -p <pureftp.sql

Vsftpd虚拟用户的配置及pureftp配置解析 

Vsftpd虚拟用户的配置及pureftp配置解析 

Vsftpd虚拟用户的配置及pureftp配置解析 

16添加连接mysql用户

mysql> grant all privileges on ftpusers.* to [email protected] identified by '123';

Query OK, 0 rows affected (0.02 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> quit

[[email protected] pureftp]# mysql -u ftp -p

Vsftpd虚拟用户的配置及pureftp配置解析 

17.配置web管理界面Pureadmin

[[email protected] pureftp]# tar -zxvf PureAdmin-0.3.tar.gz -C /var/www/html/

18.修改PureAdmin的配置文件

[[email protected] html]#  mv PureAdmin-0.3 pureadmin

[[email protected] html]# cd pureadmin

[[email protected] pureadmin]# vim config.php

Vsftpd虚拟用户的配置及pureftp配置解析 

19.重启httpd pureftpd

[[email protected] pureadmin]# service httpd restart

[[email protected] pureadmin]# service pureftpd restart

20. 创建虚拟账号和本地账号的映射数据库

[[email protected] pureadmin]# vim /usr/local/pureftpd/etc/pure-ftpd.conf

126  PureDB             /usr/local/pureftpd/etc/pureftpd.pdb

[[email protected] pureadmin]# cd /usr/local/pureftpd/bin

[[email protected] ~]# useradd vu  -s /sbin/nologin 

Vsftpd虚拟用户的配置及pureftp配置解析 

[[email protected] bin]# echo PATH=$PATH:/usr/local/pureftpd/bin >> /etc/profile

[[email protected] bin]# source /etc/profile

21.新建讯账号test1 ,和本地账号vuserftp映射

[[email protected] bin]# pure-pw useradd test1 -u vuserftp -g vuserftp -d /ftproot/test1 -m  

 #  vuserftp是我们以前建的用户

Password: 

Enter it again: 

建立用户数据库:

[[email protected] bin]# pure-pw mkdb /usr/local/pureftpd/etc/pureftpd.pdb

22.进入后台如下:

Vsftpd虚拟用户的配置及pureftp配置解析 

 

Vsftpd虚拟用户的配置及pureftp配置解析 

登录测试:

Vsftpd虚拟用户的配置及pureftp配置解析 

查看日志如下:

Vsftpd虚拟用户的配置及pureftp配置解析

 


 

 

转载于:https://blog.51cto.com/dg123/1094305

相关文章:

  • 2022-01-10
  • 2021-07-24
  • 2021-12-22
  • 2021-10-10
  • 2021-10-30
  • 2022-12-23
猜你喜欢
  • 2021-05-22
  • 2022-12-23
  • 2022-02-24
  • 2022-12-23
  • 2022-02-14
  • 2021-06-22
相关资源
相似解决方案