PROFTPD服务通过MYSQL进行身分验证的原理 [原创]

由 欧可侠 在 06-24-2003 16:55 发表:

PROFTPD服务通过MYSQL进行身分验证的原理 [原创]

我有使用MYSQL进行身份验证,搭建PROFTPD服务器的经验,在这里写出来与大家分享。希望有不足之处还请高人指点。

环境:

Redhat9.0

ProFTPD 1.2.9rc.1

mysql-3.23.54a

步骤:

(1) 安装MySQL的rpm

apt-get install MySQL

apt-get install MySQL-client

apt-get install MySQL-devel

apt-get install MySQL-shared

(2)建立"proftpd"的数据库

(3)建立用户“proftpd”,属性设置为SELECT

(4)建立“proftpd”数据库的table:“groups”和“users”

table 的构造如下:

CREATE TABLE groups (

groupname varchar(30) NOT NULL default '',

gid int(11) NOT NULL default '1000',

members varchar(255) default NULL

UNIQUE KEY gid (gid)

PRIMARY KEY (groupname)

) TYPE=MyISAM;

CREATE TABLE users (

userid varchar(30) NOT NULL default '',

password varchar(30) NOT NULL default '',

uid int(11) NOT NULL auto_increment,

gid int(11) NOT NULL default '1000',

homedir varchar(255) default NULL,

shell varchar(255) default '/bin/true',

UNIQUE KEY uid (uid),

PRIMARY KEY (userid)

) TYPE=MyISAM;

(5)user和 group的 record生成

INSERT INTO groups VALUES ('ftpusers',1000,'');

INSERT INTO users VALUES ('user1','pass1',1000,1000,'/home/test','/bin/true');

(6)安装proftpd的source rpm

apt-get source proftpd

(7)打开proftpd.spec, 在 --with-modules= 一行中追加:

mod_sql:mod_sql_mysql

(8)使用编辑后的proftpd.spec,做成rpm 包:

rpm -bb proftpd.spec

(9)安装在(8)制作的rpm包:

rpm -ivh proftpd.1.2.9rc.1.rpm

(10)在 /etc/proftpd.conf 中追加以下数据:(但是要注意根据自己的环境而定。比如说SQLConnectInfo,SQLAuthTypes)

 1<global>   
 2  
 3DefaultRoot ~   
 4  
 5SQLConnectInfo proftpd@localhost:3306 proftp ****   
 6  
 7SQLAuthTypes Plaintext   
 8  
 9SQLUserInfo users userid password uid gid homedir shell   
10  
11SQLGroupInfo groups groupname gid members   
12  
13SQLAuthenticate on   
14  
15SQLHomedirOnDemand on   
16  
17</global>

(11) 编辑/etc/shells ,追加在FTP下使用的shell.

(12)根据个人的喜好,设置 proftpd 由 standalone启动还

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus