nui9 发表于 2013-7-3 08:49:18

Vsftp服务器搭建--虚拟用户使用MySQL 认证

1、使用yum 方式安装MySQL#yum -y install mysql mysql-servermysql-devel2、启动 MySQL 服务并修改MySQL 管理员密码#service mysqldstart#mysql_secure_installation// 设置一下root管理员密码3、创建MySQL为vsftpd验证的数据库与表# mysql -u root –pEnter password:    //此处输入vsftpd为刚刚为MySQL设置的管理员密码
mysql> create database vsftpd;//创建一个vsftpd的数据库Query OK, 1 rowaffected (0.00 sec)mysql> use vsftpd;   //使用vsftpd数据库mysql> create table users (>id INT NOT NULL AUTO_INCREMENT PRIMARYKEY,>name CHAR(15) NOT NULL UNIQUE KEY,>passwordCHAR(48) NOT NULL );   //创建一个3个列位的users表,一个id用于索引,name用于账户名,password用户设置密码mysql> insert into users(name,password) values ('oracle',password('oracle'));   //添加一个oracle账户,密码为oracle,并加密存储密码,此账户是为了等下登录FTP服务器用4、创建一个vsftpd的MySQL账户用于检索vsftpd数据库mysql> grant select on vsftpd.* to vsftpd@localhostidentified by 'vsftpd';    //创建一个只有select vsftpd数据库下所有表的权限的MySQL账户并将密码设为vsftpdmysql> flush privileges;//只为使权限即时生效二.安装并配置PAM模块1、安装依赖库# yum -y install gccgcc-c++ make pam pam-devel openssl openssl-devel2、下载并安装pam_mysql# wget http://nchc.dl.sourceforge.net/project/pam-mysql/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz# tar zxvf pam_mysql-0.7RC1.tar.gz# cd pam_mysql-0.7RC1[root@vsftpdpam_mysql-0.7RC1]# ./configure --with-openssl[root@vsftpdpam_mysql-0.7RC1]# make# make installpam文件默认安装到/lib 目录下,若系统为64位系统,需要将文件复制一份到/lib64 目录下# cp /lib/security/pam_mysql.*/lib64/security/
3、创建认证文件# vim /etc/pam.d/vsftpd.mysqlauth required /lib64/security/pam_mysql.souser=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=namepasswdcolumn=password crypt=2account required/lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpdtable=users usercolumn=name passwdcolumn=password crypt=2注意:这里是2行,不可以换行.另外还要注意里面相应栏位的填写。特别说明下crypt选项crypt=0:明文密码crypt=1:使用 crpyt()函数(对应 SQL 数据里的 encrypt(),encrypt()随机产生 salt)crypt=2:使用 MYSQL 中的 password()函数加密crypt=3:表示使用 md5 的散列方式user 、passwd 用户名密码当然你也可以随便设置,不过需要在mysql 里面赋予查询权限。三.vsftpd的安装与设置1、使用yum方式安装vsftpd# yum -y install vsftpd2、备份vsftpd的配置文件# cp /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf.bak3、修改vsftpd.conf将anonymous_enable选项改为anonymous_enable=NO将pam_service_name选项改为pam_service_name=vsftpd.mysql   //这里更改为上面创建的认证文件名并添加如下:virtual_use_local_privs=YESuser_sub_token=$USERlocal_root=/home/share/$USERguest_enable=YESguest_username=vsftpdchroot_local_user=YESuser_config_dir=/etc/vsftpd/vsftpd_user_conf4、创建一个vsftpd服务的宿主用户vsftpd账户 (注:账户可以任意取)# useradd -s /sbin/nologin -d /home/share/vsftpd5、在/etc/vsftpd/下面创建一个vsftpd_user_conf目录# mkdir/etc/vsftpd/vsftpd_user_conf
6、将MySQL服务器及vsftpd服务器开机启动
# chkconfig--level 35 mysqld on# chkconfig--level 35 vsftpd on7、定制虚拟用户配置文件模版# vim/etc/vsftpd/vsftpd_user_conf/userclone.tmplocal_root=/home/share/anonymous_enable=NOwrite_enable=YESlocal_umask=022anon_upload_enable=NOanon_mkdir_write_enable=NOidle_session_timeout=300data_connection_timeout=90max_clients=10max_per_ip=110local_max_rate=525000                  ______________________________________________________8、复制用户模版给用户#cd /etc/vsftpd/vsftpd_user_conf#cp userclone.tmp oracle#vimoracle将local_root=/home/share/ 改为 local_root=/home/share/oracle
9、开启iptables 防火墙#iptables -A INPUT -p tcp --dport 21 -j ACCEPT#iptables -A INPUT -p tcp --dport 23 -j ACCEPT#iptables-save > /etc/sysconfig/iptables# service iptables startiptables: Applyingfirewall rules:                        #setsebool -P allow_ftpd_full_access 1// 设置 SElinux 允许 ftp用户访问10、创建 oracle 用户登录目录#mkdir /home/share/oracle# chown –R vsftpd:vsftpd /home/share11、现在可以使用oracle用户进行登录了。


视频的容积 发表于 2013-7-3 11:00:18

天塌下来你顶着,我垫着!

zhangsanfeng88 发表于 2013-7-3 19:55:25

走过了年少,脚起了水泡

96818 发表于 2013-7-3 20:59:13

男人在结婚前觉得适合自己的女人很少,结婚后觉得适合自己的女人很多。

随风飞世 发表于 2013-7-3 21:40:14

男人有冲动可能是爱你,也可能是不爱,但没有冲动肯定是不爱!

ykwll 发表于 2013-7-3 22:46:36

禽兽尚且有半点怜悯之心,而我一点也没有,所以我不是禽兽。

搜ijsio 发表于 2013-7-3 23:07:13

只有假货是真的,别的都是假的!
页: [1]
查看完整版本: Vsftp服务器搭建--虚拟用户使用MySQL 认证