免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1586 | 回复: 0
打印 上一主题 下一主题

vsftpd+pam_mysql+mysql [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-12 00:54 |只看该作者 |倒序浏览
RH9.0上实现,转载请保留作者信息,谢谢!
一、安装相关软件包
mysql-5.0.41
pam_mysql-0.7RC1
vsftpd-2.0.5
openssl-0.98e
1.安装mysql-5.0.41
#groupadd mysql
#useradd -g mysql -s /sbin/nologin -M mysql
#tar zxvf mysql-5.0.41.tar.gz
#cd mysql-5.0.41
#./configure --prefix=/usr/local/mysql --sysconfdir=/etc --enable-thread-safe-client --enable-local-infile --with-charset=gbk --with-extra-charset=all --with-low-memory
#make
#make install
#cp support-files/my-medium.cnf /etc/my.cnf
#cd /usr/local/mysql
#chgrp -R mysql .
#bin/mysql_install_db --user=mysql
#chown -R root .
#chown -R mysql var
#bin/mysqld_safe --user=mysql &
#cd /usr/local/src/mysql-5.0.41
#cp support/mysql.server /etc/rc.d/init.d/mysqld
#chmod 700 /etc/rc.d/init.d/mysqld
#chkconfig --add mysqld
#chkconfig --level 345 mysqld on
测试
#/usr/local/mysql/bin/mysqladmin ping
#/usr/local/mysql/bin/mysqladmin version
#/usr/local/mysql/bin/mysql
添加root密码
#/usr/local/mysql/bin/mysqladmin -uroot -p 旧密码 password '新密码'
修改库文件的搜索路径
#vi /etc/ld.so.conf
添加如下条目:
/usr/local/mysql/lib/mysql
增加库文件及头文件的链接
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
2.安装openssl-0.9.8e
#tar zxvf openssl-0.9.8e.tar.gz
#cd openssl-0.9.8e
#./config shared zlib
#make
#make test
#make install
mv /usr/bin/openssl /usr/bin/openssl.OFF
mv /usr/include/openssl /usr/include/openssl.OFF
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
配置库文件搜索路径
#echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
#ldconfig -v
3.安装pam_mysql-0.7RC1
#tar zxvf  pam_mysql-0.7RC1.tar.gz
#cd  pam_mysql-0.7RC1
#./configure --with-mysql=/usr/local/mysql --with-openssl=/usr/local/ssl
#make
#make install
#cp /usr/lib/security/pam_mysql.so /lib/security/
4.安装vsftpd-2.0.5
#mkdir -pv /usr/share/empty   /var/ftp
#useradd -s /bin/false -d /var/ftp ftp
#tar xzvf vsftpd-2.0.5.tar.gz
#cd vsftpd-2.0.5
#make
#make install
安装配置文件
#cp vsftpd.conf /etc
编辑配置文件/etc/vsftpd.conf
添加:listen=YES
启动服务器
#/usr/local/sbin/vsftpd &
#chmod og-w /var/ftp
二、配置
1.准备数据库及相关表
在此,我们建立名为vsftp的数据库来存放相关虚拟用户的帐号
mysql> create database vsftp;
mysql> grant select on vsftp.* to vsftpd@localhost identified by '123456';
mysql> grant select on vsftp.* to
vsftpd@127.0.0.1
identified by '123456';
mysql> use vsftp;
mysql> create table users (
    -> id int AUTO_INCREMENT NOT NULL,
    -> name char(20) binary NOT NULL,
    -> passwd char(48) binary NOT NULL,
    -> primary key(id)
    -> );
添加测试的虚拟用户,其密码采取加密存放的方式
mysql> insert into users(name,passwd) values('benet',password('123456'));
mysql> insert into users(name,passwd) values('aptech',password('123456'));
查看结果
mysql> select * from users;
+----+-----------+----------------------------------------------------------------------------+
| id | name    | passwd                                                                              |
+----+-----------+----------------------------------------------------------------------------+
|  1 | benet    | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
|  2 | aptech  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+----+-----------+----------------------------------------------------------------------------+
3 rows in set (0.00 sec)
2.建立pam认证所需文件
#vi /etc/pam.d/vsftp.mysql
添加如下两行
auth required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftp table=users
usercolumn=name passwdcolumn=passwd crypt=2
account required /lib/security/pam_mysql.so user=vsftpd passwd=123456 host=localhost db=vsftp table=users
usercolumn=name passwdcolumn=passwd crypt=2
3.修改vsftpd的配置文件,使其适应mysql认证
建立虚拟用户映射的系统用户及对应的目录
#useradd -s /sbin/nologin -d /var/ftp2 vsftp
#chmod go+rx /var/ftp2
请确保/etc/vsftpd.conf中已经启用了以下选项
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
添加以下选项
guest_enable=YES
guest_username=vsftp
listen=YES
pam_service_name=vsftpd.mysql
三、启动vsftpd服务
#/usr/local/sbin/vsftpd &
查看端口开启情况
# netstat -tnlp |grep :21
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      23286/vsftpd
使用虚拟用户登录,验正配置结果,以下为本机的命令方式测试,你也可以在其它Win Box上用IE或者FTP客户端工具登录验正
# ftp localhost
Connected to localhost (127.0.0.1).
220 (vsFTPd 2.0.5)
Name (localhost:root): benet
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,235,31)
150 Here comes the directory listing.
-rw-r--r--    1 0        0          155985 Jun 06 07:16 vsftpd-2.0.5.tar.gz
226 Directory send OK.


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/66077/showart_684850.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP