VSFTP+MySQL虚拟用户配置历程讲授[MySQL防范]
本文“VSFTP+MySQL虚拟用户配置历程讲授[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
VSFTPD是一种在Unix/Linux中非常安全且快速的Ftp服务器,目前已经被很多大型站点所采取.VSFTPD支持将用户名和口令保存在数据库文件或数据库服务器中.VSFTPD称这种情势的用户为虚拟用户.相关于FTP的本地(系统)用户来说,虚拟用户只是FTP服务器的专有效户,虚拟用户只能拜候FTP服务器所供应的资源,这大大加强系统本身的安全性.相关于匿名用户而言,虚拟用户需求用户名和密码才能获得FTP服务器中的文件,增添了对用户和下载的可管理性.关于需求供应下载服务,但又不但愿全部人都可以匿名下载;既需求对下载用户举行管理,又考虑到主机安全和管理便利的FTP站点来说,虚拟用户是一种极好的办理筹划.
1、VSFTPD的安装
目前,VSFTPD的最新版本是1.2.0版.官方下载地址为ftp://vsftpd.beasts.org/users/cevans/vsftpd-1.2.0.tar.gz.在安装前,需求先做以下预备工作:
VSFTPD默许配置中需求"nobody"用户.在系统中增添此用户,假如用户已经存在,useradd号令有呼应提醒.
[root@hpe45 root]# useradd nobody
useradd: user nobody exists
VSFTPD默许配置中需求"/usr/share/empty"目录.在系统中此目录,假如目录已经存在,mkdir号令有呼应提醒.
[root@hpe45 root]# mkdir /usr/share/empty/
mkdir: cannot create Directory '/usr/share/empty': File exists
VSFTPD供应匿名FTP服务时,需求"ftp"用户和一个有效的匿名目录.
[root@hpe45 root]# mkdir /var/ftp/
[root@hpe45 root]# useradd -d /var/ftp ftp
接下来的操作关于ftp用户能否已经存在都是有效的.
[root@hpe45 root]# chown root.root /var/ftp
[root@hpe45 root]# chmod og-w /var/ftp
以上预备工作完成后,我们便可以开始编译源代码了.假定我们下载的vsftpd-1.2.0.tar.gz在/root目录,履行以下号令:
[root@hpe45 root]# tar zxvf vsftpd-1.2.0.tar.gz
[root@hpe45 root]# cd vsftpd-1.2.0
[root@hpe45 vsftpd-1.2.0]# make
[root@hpe45 vsftpd-1.2.0]# make install
上面的"make install"号令将编译好的二进制文件、手册等复制到呼应目录.在RHL9上,大概需求手动履行以下复制:
[root@hpe45 vsftpd-1.2.0]# cp vsftpd /usr/local/sbin/vsftpd
[root@hpe45 vsftpd-1.2.0]# cp vsftpd.conf.5 /usr/local/share/man/man5
[root@hpe45 vsftpd-1.2.0]# cp vsftpd.8 /usr/local/share/man/man8
接下来,我们复制一个简单的配置文件作为底子供背面改正.
[root@hpe45 vsftpd-1.2.0]# cp vsftpd.conf /etc
[root@hpe45 vsftpd-1.2.0]# cp RedHat/vsftpd.pam /etc/pam.d/ftp
复制PAM考证文件,以答应本地用户登录VSFTPD.
[root@hpe45 vsftpd-1.2.0]# cp RedHat/vsftpd.pam /etc/pam.d/ftp
2、成立guest用户//from www.w3sky.com
VSFTPD采取PAM方法考证虚拟用户.由于虚拟用户的用户名/口令被单独保存,因此在考证时,VSFTPD需求用一个系统用户的身份来读取数据库文件或数据库服务器以完成考证,这就是VSFTPD的guest用户.这恰好像匿名用户也需求有一个系统用户ftp一样.当然,我们也可以把guest用户当作是虚拟用户在系统中的代表.下面在系统中增添vsftpdguest用户,作为VSFTPD的guest.
[root@hpe45 vsftpd-1.2.0]# useradd vsftpdguest
当虚拟用户登录后,所在的位置为vsftpdguest的自家目录/home/vsftpdguest.假如要让虚拟用户登录到/var/ftp等其他目录,改正vsftpdguest的自家目录便可.
3、设置VSFTPD配置文件
在/etc/vsftpd.conf文件中,加入以下选项:
guest_enable=YES
guest_username=vsftpdguest
然后履行以下号令,让VSFTPD在后台运行:
[root@hpe45 vsftpd-1.2.0]# /usr/local/sbin/vsftpd &
4、将虚拟用户保存在MySQL数据库服务器中
我们成立数据库vsftpdvu,表users,字段name和passwd用于保存虚拟用户的用户名和口令,同时增添两个虚拟用户xiaotong和xiaowang.
[root@hpe45 vsftpd-1.2.0]# mysql -p
mysql>create database vsftpdvu;
mysql>use vsftpdvu;
mysql>create table users(name char(16) binary,passwd char(16) binary);
mysql>insert into users (name,passwd) values ('xiaotong',password('qqmywife'));
mysql>insert into users (name,passwd) values ('xiaowang',password('ttmywife'));
mysql>quit
然后,受权vsftpdguest可以读vsftpdvu数据库的users表.履行以下号令:
[root@hpe45 vsftpd-1.2.0]# mysql -u root mysql -p
mysql>grant select on vsftpdvu.users to vsftpdguest@localhost identified by 'i52serial0';
mysql>quit
假如要考证方才的操作能否成功可以履行下面号令:
[root@hpe45 vsftpd]#mysql -u vsftpdguest -pi52serial0 vsftpdvu
mysql>select * from users;
假如成功,将会列出xiaotong、xiaowang和加密后的密码
5、设置MySQL的PAM考证
这里我们要用到一个操纵mysql举行pam考证的开源项目(http://sourceforge.net/projects/pam-mysql/).首先从网站下载它的程序包pam_myql-0.5.tar.gz,复制到/root目录中.在编译安装之前,要确保mysql-devel的RPM包已经安装在你的机械上,假如没有请从RHL安装光盘中安装该包.然后,履行以下号令:
[root@hpe45 root]#tar xvzf pam_mysql-0.5.tar.gz
[root@hpe45 root]#cd pam_mysql
[root@hpe45 pam_mysql]#make
[root@hpe45 pam_mysql]#make install
make install这一步大概会呈现错误,那只妙手动将该目录下生成的pam_mysql.o复制到/lib/security目录下.
接下来,我们要设置vsftpd的PAM考证文件.翻开/etc/pam.d/ftp文件,加入以下内容:
auth required pam_mysql.o user=vsftpdguest passwd=i52serial0 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=2
account required pam_mysql.o user=vsftpdguest passwd=i52serial0 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=2
上面触及到的参数,只要对应前面数据库的设置便可以懂得它们的含义.这里需求阐明的是crypt参数.crypt表示口令字段中口令的加密方法:crypt=0,口令以明文方法(不加密)保存在数据库中;crypt=1,口令利用UNIX系统的DES加密方法加密后保存在数据库中;crypt=2,口令经过MySQL的password()函数加密后保存.
6、进一步的虚拟用户设置
经过以上的步骤,虚拟用户便可以正常利用了.这里介绍进一步的虚拟用户设置.首先,介绍虚拟用户的权限设置.
VSFTPD-1.2.0新添了virtual_use_local_privs参数,当该参数激活(YES)时,虚拟用户利用与本地用户相同的权限.当此参数关闭(NO)时,虚拟用户利用与匿名用户相同的权限,这也就是VSFTPD-1.2.0之前版本对虚拟用户权限的处理办法.这二者种做法相比,后者越发严峻一些,分外是在有写拜候的情形下.默许情形下此参数是关闭的(NO).
当virtual_use_local_privs=YES时,只需设置write_enable=YES,虚拟用户便可以就拥有写权限.而virtual_use_local_privs=NO时,对虚拟用户权限的设置就更多一些更严峻一些.
掌握虚拟用户浏览目录:假如让用户不能浏览目录,但仍可以对文件操作,那么需求履行以下二个步骤:一,配置文件中,anon_world_readable_only=YES.二,虚拟用户目录的权限改成只能由vsftpdguest操作:
[root@hpe45 root]# chown vsftpdguest.vsftpdguest /home/vsftpdguest
[root@hpe45 root]# chmod 700 /home/vsftpdguest
答应虚拟用户上传文件:
write_enable=YES
anon_upload_enable=YES
答应虚拟用户改正文件名和删除文件:
anon_other_write_enable=YES
由于以上选项的设置一样会对匿名用户见效.假如不想匿名用户乘隙拥有一样的权限,最好是禁止匿名用户登录.
其次,由于虚拟用户在系统中是vsftpdguest身份,所以可以拜候到系统的其他目录.为了越发安全,我们可以将虚拟用户限制在自家目录下.有两种做法:一,在配置文件中增添以下选项
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
然后,在/etc/vsftpd.chroot_list文件中加入虚拟用户名xiaotong和xiaowang.
第二种做法,在配置文件中改正chroot_local_user=YES.经过改正后,虚拟用户登录后其根目录就限制在/home/vsftpdguest下,无法拜候其他目录.
7、虚拟用户的个人目录
大家可以发现,无论是哪个虚拟用户,登录后所在的目录都是/home/vsftpdguest,即都是guest_username用户的自家目录.下面,介绍如作甚每个虚拟用户成立自家目录.首先,在主配置文件中加入以下选项:
user_config_dir=/etc/vsftpd/vsftpd_user_conf
然后,生成/etc/vsftpd/vsftpd_user_conf目录,并在该目录下成立与特定虚拟用户同名的文件:
[root@hpe45 root]# mkdir /etc/vsftpd/vsftpd_user_conf
[root@hpe45 root]# cd /etc/vsftpd/vsftpd_user_conf
[root@hpe45 vsftpd_user_conf]# touch xiaowang
以上的操作为虚拟用户xiaowang成立了个人配置文件/etc/vsftpd/vsftpd_user_conf/xiaowang.接下来,在xiaowang的个人配置文件中将xiaowang的自家目录改正成/home/xiaowang,配置选项为:
local_root=/home/xiaowang
然后,新建xiaowang目录,并将权限设为vsftpdguest:
[root@hpe45 vsftpd_user_conf]# mkdir /home/xiaowang
[root@hpe45 vsftpd_user_conf]# chown vsftpdguest.vsftpdguest ./xiaowang
[root@hpe45 vsftpd_user_conf]# chmod 600 /home/xiaowang
经过以上设置,xiaowang登录VSFTPD后,用"pwd"指令便可以发现被自己被定位到自己的"/home/xiaowang"目录.
从文件系统层次来看,由于"/home/xiaowang"目录的权限是属于vsftpdguest的,所以其他的虚拟用户一样也可以拜候xiaowang的自家目录.办理这个问题也很简单,我们只需求让VSFTPD负责将虚拟用户限制在其自家目录,便可以避免虚拟用户的彼此拜候.具体做法参照前面第六步中所述,这里不再赘述.经过以上设置后,虚拟用户便可以拥有属于自己的目录了.
以上是“VSFTP+MySQL虚拟用户配置历程讲授[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:本文地址: | 与您的QQ/BBS好友分享! |