苏州浪琴手表专卖店:freeradius安装

来源:百度文库 编辑:中财网 时间:2024/04/28 14:25:13
 

CentOS 5.5 成功安装 freeradius 2.1.9 mysql

安装CentOS 5.5 直接把apache、mysql、php都装上了,注意装mysql的时候,最好是把mysql-devel也装上,开始装的时候不知道是不是因为他没有装也没在freeradius连接mysql的时候没有成功。

当然,如果你安装系统的时候没有选,也可以用yum来安装就可以。

[root@localhost ~]# yum install mysql-devel.i386

下载freeradius 2.1.9

[root@localhost ~]# wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.1.9.tar.gz

解压

[root@localhost ~]# tar -zxvf freeradius-server-2.1.9.tar.gz

进入目录

[root@localhost ~]# cd freeradius-server-2.1.9
[root@localhost freeradius-server-2.1.9]#

[root@localhost freeradius-server-2.1.9]# ./configure

[root@localhost freeradius-server-2.1.9]# make

[root@localhost freeradius-server-2.1.9]# make install

正常没有什么错误提示,那就是ok了。

测试下。

freeradius已经有给你准备测试用的用户了。

进入下面的目录(注:freeradius的配置文件都在这个目录下)

[root@localhost freeradius-server-2.1.9]# cd /usr/local/etc/raddb/

[root@localhost raddb]#

编辑user

[root@localhost raddb]# vi users

找下面这段,把前面的注释去掉。

steve   Cleartext-Password := “testing”
Service-Type = Framed-User,
Framed-Protocol = PPP,
Framed-IP-Address = 172.16.3.33,
Framed-IP-Netmask = 255.255.255.0,
Framed-Routing = Broadcast-Listen,
Framed-Filter-Id = “std.ppp”,
Framed-MTU = 1500,
Framed-Compression = Van-Jacobsen-TCP-IP

这样你就有了一个测试的用户,用户名:steve 密码:testing

启动freeraidus的debug模式

[root@localhost raddb]# radiusd -X(注:大写)

如果看到

Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on command file /usr/local/var/run/radiusd/radiusd.sock
Listening on proxy address * port 1814
Ready to process requests.

这就是正常启动了。

再开一个终端窗口。

[root@localhost ~]# radtest steve testing localhost 1812 testing123
Sending Access-Request of id 145 to 127.0.0.1 port 1812
User-Name = “steve”
User-Password = “testing”
NAS-IP-Address = 127.0.0.1
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=145, length=71
Service-Type = Framed-User
Framed-Protocol = PPP
Framed-IP-Address = 172.16.3.33
Framed-IP-Netmask = 255.255.255.0
Framed-Routing = Broadcast-Listen
Filter-Id = “std.ppp”
Framed-MTU = 1500
Framed-Compression = Van-Jacobson-TCP-IP

如果看到以上的信息,主要是看那个是不是Access-Accept,如果是,那就是成功了。

下面开始让freeradisu使用mysql.

我对mysql没有太多的了解,下面的都是google来的。

给mysql设置密码

[root@localhost ~]# mysqladmin -u root password test(你的密码)

以下命令执行的时候如果出现
Enter password:

输入你上面设置的mysql的密码就可以了。

# mysqladmin -u root -p create radius     — 创建radius 数据库
# mysql -u root -p radius < /usr/local/etc/raddb/sql/mysql/schema.sql
# mysql -u root -p radius < /usr/local/etc/raddb/sql/mysql/nas.sql
# mysql -u root -p radius < /usr/local/etc/raddb/sql/mysql/ippool.sql
# mysql -u root -p radius < /usr/local/etc/raddb/sql/mysql/wimax.sql
# mysql -u root -p
mysql> GRANT SELECT ON radius.* TO ‘radius’@'localhost’ IDENTIFIED BY ‘radpass’;
mysql> GRANT ALL on radius.radacct TO ‘radius’@'localhost’;
mysql> GRANT ALL on radius.radpostauth TO ‘radius’@'localhost’;

mysql> use radius;

google到的没有上面这个命令,结果执行下面的命令的时候,出现错误。
mysql> insert into radgroupreply (groupname,attribute,op,value) values (‘user’,'Auth-Type’,':=’,'Local’);
ERROR 1046 (3D000): No database selected

因为没有选择数据库。

先 加入一些组信息:
mysql> insert into radgroupreply (groupname,attribute,op,value) values (‘user’,'Auth-Type’,':=’,'Local’);
mysql> insert into radgroupreply (groupname,attribute,op,value) values (‘user’,'Service-Type’,'=’,'Framed-User’);
mysql> insert into radgroupreply (groupname,attribute,op,value) values (‘user’,'Framed-IP-Netmask’,'=’,’255.255.255.255′);
mysql> insert into radgroupreply (groupname,attribute,op,value) values (‘user’,'Framed-IP-Netmask’,':=’,’255.255.255.0′);
然后加入用户信息:
mysql> INSERT INTO radcheck (UserName, Attribute, Value) VALUES (‘sqltest’, ‘Password’, ‘testpwd’);
然后把用户加到组里:
mysql> insert into radusergroup(username,groupname) values(‘sqltest’,'user’);
mysql> select * from radcheck where UserName=’sqltest’;

mysql>exit

下面开始编辑配置文件了。

[root@localhost raddb]# cd /usr/local/etc/raddb

编辑/usr/local/etc/raddb/sql.conf

[root@localhost raddb]# vi sql.conf

下面添入mysql的用户名和密码

# Connection info:
server = “localhost”
#port = 3306
login = “root” 用户名
password = “test” 密码

编辑/usr/local/etc/raddb/sites-enabled/default

[root@localhost raddb]# vi sites-enabled/default

在152行的files前加#注释

在159行去掉sql前的#注释

在383行去掉sql前的#注释

编辑/usr/local/etc/raddb/sites-enabled/inner-tunnel

[root@localhost raddb]# vi sites-enabled/inner-tunnel

在111行的files前加#注释

在118行去掉sql前的#注释

google到的有人说是还要改/usr/local/etc/raddb/eap.conf中的default_eap_type = md5为default_eap_type = peap

可是我改了 不成功 ,还是就用他的md5好了。

最为关键一个修改到了,如果你只是做了上面的,那么启动radius -X会出现以下错误,这个问题,我郁闷了好几天。

/usr/local/etc/raddb/sites-enabled/inner-tunnel[118]: Failed to find module “sql”.
/usr/local/etc/raddb/sites-enabled/inner-tunnel[34]: Errors parsing authorize section.

出现上面的错误,先要看一下有没有rlm_sql_mysql.so这个文件,如果没有,那你就就惨了,我不知道怎么才能让他有。

谢谢有兄弟 回复我说是可以

/usr/local/etc/freeradius-server-2.1.9/src/modules/rlm_sql/drivers/rlm_sql_mysql 下面去编译安装就行了,就有rlm_sql_mysql.so了。

可能就是我上面说的,安装mysql没有安装mysql-devel。所以编译的时候没有生成这个文件。如果有的话,那么照下面修改就可以了。

编辑/usr/local/etc/raddb/radiusd.conf

[root@localhost raddb]#vi radiusd.conf

去掉683行$INCLUDE sql.conf前的#注释

下面运行一个radius -X 试一下。

如果出现

Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on command file /usr/local/var/run/radiusd/radiusd.sock
Listening on proxy address * port 1814
Ready to process requests.

那么恭喜你成功了。

下面我们来加一个需要认证的服务器进来试一下。

编辑/usr/local/etc/raddb/clients.conf

[root@localhost raddb]# vi clients.conf

加入

client 192.168.0.0/24 {
secret          = testing123(认证的密钥)
}

哈哈 成功了吧。