Redhat Enterprise Linux 5.5
下安装与配置
freeradius + mysql
加
H 3C S5600
上配置集中式
MAC
认证
为了实现非授权的电脑接入公司网络,结合现在的网络环境,以及本着节约的原则,特配置此方案。
1、
安装
freeradius2- 2.1.7 -7.e15
、
freeradius2-mysql-2.1.7-7.e15
、
freeradius2-utils-2.1.7-7.e15.
安装以上软件包会依赖一些软件包,安装时解决一些依赖问题就可以了。。
2、
安装
mysql-5.0.77-4.e15_4.2
、
mysql-server-5.0.77-4.e15_4.2
3、
安装完软件包后,需修改
freeradius
的配置文件才能启动
radiusd
服务。
4、
先说说都有哪些配置文件先:
/etc/raddb/radius.conf
这个是主配置文件,在这个配置文件里面
inclule
了许多其他文件
/etc/raddb/users
用户账号配置文件
/etc/raddb/client.conf
这是
radius
客户端配置文件
/etc/raddb/sites-enbale/default = /etc/raddb/sites-avalible/default
这个是认证,授权,计费配置文件
/etc/raddb/sites-enble/inner-tunnel = /etc/raddb/sites-avalible/inner-tunnel
虚拟服务器配置文件
/etc/raddb/sql.conf
与数据库连接的配置文件
/etc/raddb/sql
这个目录下有许多
sql
语句文件,用来创建
radius
数据库表的。
/etc/raddb/certs/bootstrap
这是生成证书的执行文件,执行一下
OK
了。但是执行后腰把该目录下的所有文件属性添加
other
可读
,否则编译
inner-eap
模块时出错
5、
开始配置
1
、
vi /etc/raddb/sites-enable/default
,将文件中的
eap
替换成
inner-eap
vi /etc/raddb/sites-enable/inner-tunnel
将文件中的
eap
替换成
inner-eap
2
、执行
/etc/raddb/certs/bootstrap
,执行完后将
/etc/raddb/certs/
目录下所有文件添加
other
可读
chmod o+r /etc/raddb/certs/*
3
、此时看看是否可以启动
radiusd
服务器
,
若是失败,则查看日志文件可以找到原因进行解决
vi /var/log/radius/radius.log
4
、继续我们需要的修改,修改
/etc/raddb/radius.conf
取消
$include sql
这行的注释
5
、
vi /etc/raddb/sql.conf
编辑此文件,修改与
mysql
数据库连接参数
server=”localhost”
login=”root”
password=“mysq“的root的密码”
radius_db=”radius”
6、
vi /etc/raddb/client.conf
编辑radius客户端配置文件
client 192.168.0.110 {
ipaddr = 192.168.0.110
secret = jiubang
shortname = 3G
nastype = other
}
7
、vi /etc/raddb/radius.conf
linsten {
ipaddr = 192.168.215.17
port = 1812
type = auth
}
另外需根据实际情况修改radius服务器的连接等性能参数。。。
7
、
导入
mysql
数据库
#
mysqladmin
-
u root
-
p create radius
#
mysql
-
u root
-
p radius
<
/
etc
/
raddb
/
sql
/
mysql
/
schema
.
sql
#
mysql
-
u root
-
p radius
<
/
etc
/
raddb
/
sql
/
mysql
/
nas
.
sql
#
mysql
-
u root
-
p radius
<
/
etc
/
raddb
/
sql
/
mysql
/
ippool
.
sql
#
mysql
-
u root
-
p radius
<
/
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
>
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 ('geng', 'Password',
'peng'
);
然后把用户加到组里:
mysql
>
insert into radusergroup
(
username
,
groupname
)
values
(
'geng'
,
'user'
);
mysql
>
select
*
from radcheck where UserName
=
'geng'
;
radius
数据库中的表
配置集中式MAC认证的时,只需往radcheck表中添加MAC地址作为用户名和密码就可以了。
批量添加用户名到数据库的表时,可以创建好一个.sql文件,里面写上SQL语句,然后执行.
vi /etc/raddb/3gmac/3guser.sql
进入到要插入数据的表所在的数据库后,执行
配置完重启服务。
6
、测试
6.1 linux客户端
radtest geng peng localhost 0 testing123
用户名:geng
密码: peng
Ip
地址 localhost
密钥 testing123
交换机中的配置
[H 3C ]display current-configuration
#
sysname H 3C
#
MAC-authentication
MAC-authentication domain jiubang
#
radius scheme system
server-type standard
radius scheme freeradius
server-type standard
primary authentication 192.168.215.17
accounting optional
#
由于我的freeradius没有配置记账功能,所以在交换机上需配置此项,
否则在服务器上用tcpdump host 192.168.0.110 -n 查看网络通信状态时即使是显示请求接受,也接入不了网络。
key authentication jiubang
user-name-format without-domain
nas-ip 192.168.0.110
#
domain jiubang
scheme radius-scheme freeradius
domain system
#
stp enable
#
vlan 1
#
#
interface Vlan-interface1
ip address 192.168.0.110 255.255.255.0
interface GigabitEthernet1/0/1
port access vlan 214
MAC-authentication
#
interface GigabitEthernet1/0/2
port access vlan 214
MAC-authentication
#
#
interface GigabitEthernet1/0/23
port link-type trunk
port trunk permit vlan all
gvrp
#
user-interface vty 0 1
authentication-mode scheme
user privilege level 3
set authentication password cipher K^ANUZ0#I(-B-.UEM,.3^1!!
user-interface vty 2 4
user privilege level 3
set authentication password cipher K^ANUZ0#I(-B-.UEM,.3^1!!
#
return
[H 3C ]