vsftpd_Configure_V2(用DB库存储虚拟用户)

介绍了编译安装vsftp,虚拟用户,用DB库存储虚拟用户,用户mysql存储虚拟用户

      
        VSFTPD是一种在UNIX/Linux中非常安全且快速的FTP服务器,目前已经被许多大型站点所采用。VSFTPD支

持将用户名和口令保存在数据库文件或数据库服务器中。VSFTPD称这种形式的用户为虚拟用户。相对于

FTP的本地(系统)用户来说,虚拟用户只是FTP服务器的专有用户,虚拟用户只能访问FTP服务器所提供

的资源,这大大增强系统本身的安全性。相对于匿名用户而言,虚拟用户需要用户名和密码才能获取FTP

服务器中的文件,增加了对用户和下载的可管理性。对于需要提供下载服务,但又不希望所有人都可以匿

名下载;既需要对下载用户进行管理,又考虑到主机安全和管理方便的FTP站点来说,虚拟用户是一种极

好的解决方案。本文介绍在centos上如何将VSFTPD的虚拟用户名和密码保存在MySQL数据库服务器中。

1)安装vsftp

# tar -zxvf vsftpd-2.0.6.tar.gz

# cd vsftpd-2.0.6

安装步骤可以参照目录下INSTALL文件

# mkdir /usr/share/empty/

# mkdir /var/ftp/

# useradd -d /var/ftp ftp

# chown root.root /var/ftp

# chmod og-w /var/ftp

#make;make install

#cp vsftpd /usr/local/sbin/vsftpd

#mkdir /usr/local/man

#cp vsftpd.conf.5 /usr/local/man/man5

#cp vsftpd.8 /usr/local/man/man8

# cp RedHat/vsftpd.pam /etc/pam.d/ftp

#cp vsftpd.conf /etc

#vi /etc/vsftpd.conf

在最后添加一行

listen=YES

启动vsftp服务

#/usr/local/sbin/vsftpd &

然后用anonymous或者ftp用户测试一下,密码都为空

允许本地用户登陆:

#vi /etc/vsftpd.conf

local_enable=YES

pam_service_name=ftp

然后新建一个用户,重启一下服务登陆测试一下

#killall -HUP vsftpd               //重启vsftpd服务

禁锢用户的主目录:

#touch  /etc/vsftpd.chroot_list

a、限制所有用户不能切换目录

chroot_local_user=YES

b、设置指定的用户不能切换目录

chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list

然后把需要禁锢主目录的用户输入到/etc/vsftpd.chroot_list文件中就可以了

 

 


用DB库存储用户名及密码

a)建立虚拟用户口令库文件,口令库文件中奇数行设置用户名,偶数行设置口令

# cat logins.txt

aaa

123456

bbb

123456

b)生成vsftpd的认证文件

# db_load -T -t hash -f logins.txt  /etc/ vsftpd_login.db

# chmod 600 /etc/ vsftpd_login.db

c) 建立虚拟用户所需的PAM配置文件

# cat /etc/pam.d/ftp  (把原来的都注释掉)

auth  required  /lib/security/pam_userdb.so  db=/etc/vsftpd_login

account  required  /lib/security/pam_userdb.so  db=/etc/vsftpd_login

d)建立虚拟用户及要访问的目录并设置相应的权限

# useradd -d /home/ftpsite virtual

# chmod 700 /home/ftpsite/

e)在配置文件/etc/vsftpd/vsftpd.conf中添加虚拟用户的配置内容

guest_enable=YES

guest_username=virtual

pam_service_name=ftp   //这行前面已经加过了

然后重启一下vsftp服务,使用aaa和bbb用户测试一下

对虚拟用户设置不同的权限

        #vi /etc/vsftpd/vsftpd.conf

添加用户配置文件目录设置,增加一行

user_config_dir=/etc/vsftpd_user_conf

然后建立虚拟用户的配置文件目录

# mkdir /etc/vsftpd_user_conf

为虚拟用户建立单独的配置文件,用户配置文件名称与用户名相同

/etc/vsftpd_user_conf/aaa

/etc/vsftpd_user_conf/bbbb

每个FTP虚拟用户都可以独立设置其权限和不同的家目录

#cat /etc/vsftpd_user_conf/aaa

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

local_root=/var/aaa


使用mysql存储虚拟用户

a)安装mysql

# tar -zxvf mysql-5.0.67.tar.gz

#cd mysql-5.0.67

# ./configure --prefix=/usr/local/mysql

#make;make install

# cp support-files/my-medium.cnf /etc/my.cnf

#useradd mysql

#chown -R root.root /usr/local/mysql/

初始化数据库

# /usr/local/mysql/bin/mysql_install_db

#chown -R root.root /usr/local/mysql/

# chown -R mysql.mysql /usr/local/mysql/mysql/var

# /usr/local/mysql/bin/mysqld_safe --user=mysql &

b)安装pam_mysql

因为mysql是编译安装的,所以在这步可能会出错,做下列的链接就可以

#ln -s /usr/local/mysql/lib/mysql  /usr/lib/mysql

#ln -s /usr/local/mysql/include/mysql  /usr/include/mysql

#tar -zxvf pam_mysql-0.6.2.tar.gz

#cd pam_mysql-0.6.2

#./configure --with-mysql=/usr/local/mysql –with-openssl

#make;make install

#cp /usr/lib/security/pam_mysql.so /lib/security/

c)设置数据库

mysql>create database vftp;

mysql>use vftp;

mysql>create table users(name char(16) binary,passwd char(16) binary);

mysql>insert into users (name,passwd) values ('test1','123456');

mysql>insert into users (name,passwd) values ('test2','123456');

mysql>quit

d)建立pam认证所需文件

#vi /etc/pam.d/ftp

添加如下两行

auth required /lib/security/pam_mysql.so user=root passwd=123456 host=localhost db=vftp

table=users usercolumn=name passwdcolumn=passwd crypt=0

account required /lib/security/pam_mysql.so user=root passwd=123456 host=localhost db=vftp

table=users usercolumn=name passwdcolumn=passwd crypt=0

注意:

#crypt=0: 明文密码

#crypt=1: 使用crpyt()函数(对应SQL数据里的encrypt(),encrypt()随机产生salt)

#crypt=2: 使用MYSQL中的password()函数加密

#crypt=3:表示使用md5的散列方式#上面是两句配置,第一句是以auth开始的,第二句以account开始的。

e)虚拟用户的配置

vsftpd.conf的配置和用DB库存储用户名及密码相同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值