首 页文章中心

Linux学习网

您的位置Linux学习网 > Linux服务器应用 > 文章内容

PPPOE + FreeRADIUS + MySQL 配置过程

作者:佚名  来源:不详  发布时间:2008-6-20 8:09:00
上回说到,我们用ppp+rp-pppoe架设了 pppoe的拨号服务器,采用了文本文件的认证方式,这回我们要说ppp如何使用radius来认证,radius认证的好处我就不多说了,一方面支持数据库,另一方面支持计费。

1、先装mysql,这就不多说了;

2、把freeradius安装一下;
freeradius是个很周到的东西,考虑到了n多种后台,什么oracle,mssql, ldap都支持,mysql更是不在话下。没说的,就安装:


# tar zxvf freeradius-1.0.4.tar.gz
# cd freeradius-1.0.4
# ./configure --prefix=/usr/local/freeradius
# make
# make install
有一点要说明,freeradius需要openssl 库,所以如果系统里没安装的话,还是要事先安装一下的。

3、配置freeradius;
1) 修改 clients.conf


# vi /usr/local/freeradius/etc/raddb/clients.conf
client 127.0.0.1 {
secret = 123456
shortname = localhost
nastype = other
}
这里secret = 123456 表示从127.0.0.1这个客户端连接radius服务所需要用的密码。
2) 修改 naslist ,加入:


# vi /usr/local/freeradius/etc/raddb/naslist
localhost local portslave
3) 编辑 users ,加入用户: (这个用户是保存在文本文件里的,做测试用)


# vi /usr/local/freeradius/etc/raddb/users
hefish Auth-Type:=local,
User-Password==123456,
Service-Type = Framed-User,
Framed-Protocol = PPP,
Framed-IP-Address = 10.0.0.2,
Framed-IP-Netmask = 255.255.255.0
4) 启动radiusd,测试radiusd服务:


# /usr/local/freeradius/sbin/radiusd -X
# /usr/local/freeradius/bin/radtest hefish 123456 localhost 0 123456
如果有类似 Access-Accept的字样出现,则表示radius开始工作了。下一步就是要培植radiusd用mysql来认证。

5) 先在mysql里面创建数据库;


# /usr/local/mysql/bin/mysqladmin -u root -p create radius
# cd freeradius-1.0.4/src/modules/rlm_sql/drivers/rlm_sql_mysql
# /usr/local/mysql/bin/mysql -u root -p radius < db_mysql.sql
6) 编辑 radius.conf 使其支持mysql认证;


# vi /usr/local/freeradius/etc/raddb/radius.conf
authorize {
preprocess
chap
mschap
suffix
sql
...
}

accounting {
...
sql
...
}
7) 编辑 sql.conf ,使radius可以访问mysql


# vi /usr/local/freeradius/etc/raddb/sql.conf
sql {
driver = "rlm_sql_mysql"
server = "localhost"
login = "root"
password = "mysql的密码"
radius_db = "radius"
// 剩下的配置就默认吧 (如果您要做用户帐号/网卡MAC/电话号码绑定之类的东西,那就例外,可以改下面的配置)
}
8) 向数据库里增加一些数据;


# /usr/local/mysql/bin/mysql -u root -p radius
先加入一些组信息:
insert into radgroupreply (groupname,attribute,op,value) values ('user','Auth-Type',':=','Local');
insert into radgroupreply (groupname,attribute,op,value) values ('user','Service-Type','=','Framed-User');
insert into radgroupreply (groupname,attribute,op,value) values ('user','Framed-IP-Netmask','=','255.255.255.255');
insert into radgroupcheck (groupname, attribute, op, value) values ("user", "Auth-Type", ":=", "Local");

然后加入用户信息:
insert into radcheck (username,attribute,op,value) values ('heyu','User-Password','==','123456');

然后把用户加到组里:
insert into usergroup(username,groupname) values('heyu','user');
9) 为了让radius能正确地调用mysql,还要指定一下库的位置:


# echo /usr/local/freeradius/lib >;>; /etc/ld.so.conf
# ldconfig
10) 启动radiusd , 做一下测试:


# /usr/local/freeradius/sbin/radiusd -X
# /usr/local/freeradius/bin/radtest heyu 123456 localhost 0 123456
看到 Access-Accept 之类的字样就表示OK了。 这时可以正式启动radiusd


# /usr/local/freeradius/sbin/radiusd
4、配置pppd,使其和radius一起工作;
1) 建立一个 /etc/ppp/radius 目录,用来存放radius的配置,然后把ppp-2.4.3里面的radius相关配置复制过来:


# mkdir /etc/ppp/radiuds
# cd ppp-2.4.3/pppd/plugins/radius/etc
# cp * /etc/ppp/radius
2) 编辑 /etc/ppp/options , 加上radius 支持


# vi /etc/ppp/options 加上下面两句
plugin /etc/ppp/plugins/radius.so // 注意pppd安装时候radius.so的位置
radius-config-file /etc/ppp/radius/radiusclient.conf
3) 编辑 radiusclient.conf 文件,如下:(主要是修改一些默认的文件路径,其他没什么要改的)


# cat /etc/ppp/radius/radiusclient.conf
auth_order radius
login_tries 4
login_timeout 60
nologin /etc/nologin
issue /etc/ppp/radius/issue
authserver localhost:1812
acctserver localhost:1813
servers /etc/ppp/radius/servers
dictionary /etc/ppp/radius/dictionary
login_radius /usr/local/sbin/login.radius
seqfile /var/run/radius.seq
mapfile /etc/ppp/radius/port-id-map
default_realm
radius_timeout 10
radius_retries 3
login_local /bin/login
4) 编辑 servers ,设定radius 服务器的位置


# cat /etc/ppp/radius/servers
localhost 123456 // 这里的123456是我前面设置的访问radius服务器的密码
5) 编辑 dictionary ,修改一些路径设置,主要是最后一个dictionary.microsoft 的路径设置



# vi /etc/ppp/radius/dictionary
..
...
INCLUDE /etc/ppp/radius/dictionary.microsoft
6) 可以拨号看看了,用数据库里面的帐号登录看看,应该是能登录了。所有的登录记录,都会保存在mysql的radacct表里面,统计十分方便。

上一页  [1] [2] 

收藏本页到: 365Key | del.icio.us | | 添加到雅虎收藏+
  • 网站帮助 - 广告合作 - 网站地图