天天看点

Jradius+freeRadius+mysql安装与配置

1.yum install openssl

2.yum install openssl-devel

=============================================================================

JRadius 服务端安装

3.在/usr目录下创建jradius目录,把server.zip包上传到jradius目录下

4.通过unzip server.zip 解压zip包

5.通过cd命令进入server目录

6.在 /usr/jradius/server/scripts目录下有start.sh文件但是无法启动,找不到类,vim start.sh打开

(cd `dirname $0`; classpath=".:./lib"

for jar in /data/jradius/server/target/lib/*.jar; do

  classpath="$classpath:$jar"

done

CLASSPATH="$classpath" java net.jradius.StartSpring)

#把上面的/data/jradius修改成/usr/jradius, 再把 /usr/jradius/server/config下的所以配置文件copy到/usr/jradius/server/scripts的目录下,

7.给start.sh文件授权:chmod a+x start.sh,通过/usr/jradius/server/scripts/start.sh运行jradius服务

#忽略出现的ERROR [net.jradius.log.Log4JRadiusLogger] - No command found for null错误

=============================================================================

FreeRADIUS 服务端安装

8.在/usr目录下创建freeradius目录,把freeradius-server-2.2.10.tar.gz上传到freeradius下。

9.执行下面的命令

tar zxf freeradius-server-2.2.10.tar.gz

cd freeradius-server-2.2.10

echo rlm_jradius >> src/modules/stable   #有freeradius对jradius的支持模块了。

./configure

make

make install

10.vim /usr/local/etc/raddb/users

查找 steve Cleartext-Password := "testing" (76-84行), 取消该段内容的注释。

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

11./usr/local/sbin/radiusd -X

 # 大写X,意思是以debug模式运行。 如果有出现(

Listening on authentication address * port 1812

Listening on accounting address * port 1813

Listening on command file /var/run/radiusd/radiusd.sock

Listening on authentication address 127.0.0.1 port 18120 as server inner-tunnel

Listening on proxy address * port 1814表明正常启动成功了

12./usr/local/bin/radtest steve testing localhost 0 testing123

#新开一个窗口执行,看到 "Access-Accept packet" 表示成功了,"Access-Reject" 表示失败了。

============================================================================

FreeRadius MySQL 模块配置

13.vim /usr/local/etc/raddb/radiusd.conf

# 查找"sql.conf”(743行),去掉#号

#设置FreeRadius写log日志

 Log{

auth = yes #第476行

auth_badpass = yes #第484行

auth_goodpass = yes #第485行

}

#日志位置在/usr/local/var/log/radius

#添加jradius支持  放在760行后面

modules {

   ...

   # configure the rlm_jradius module

   jradius {

      name      = "example"             # The "Requester" name (a single

                                        # JRadius server can have

                                        # multiple "applications")

      primary   = "localhost"           # Uses default port 1814

      secondary = "192.168.0.1"         # Fail-over server

      tertiary  = "192.168.0.1:8002"    # Fail-over server on port 8002

      timeout   = 1                     # Connect Timeout

      onfail    = NOOP                  # What to do if no JRadius

                                        # Server is found. Options are:

                                        # FAIL (default), OK, REJECT, NOOP

      keepalive = yes                   # Keep connections to JRadius pooled

      connections = 8                   # Number of pooled JRadius connections

  }

}

14.创建 radius 数据库及表

mysqladmin -uroot -ppeople2000 create radius;

# people2000是mysql的root密码

#修改radius帐号的密码

cd /usr/local/etc/raddb/sql/mysql

sed -i 's/radpass/123456/g' admin.sql

sed -i 's/radpass/123456/g' /usr/local/etc/raddb/sql.conf

mysql -uroot -ppeople2000 < admin.sql

mysql -uroot -ppeople2000 radius < ippool.sql

mysql -uroot -ppeople2000 radius < schema.sql

mysql -uroot -ppeople2000 radius < wimax.sql

mysql -uroot -ppeople2000 radius < cui.sql

mysql -uroot -ppeople2000 radius < nas.sql

#freeRadius自带8张表

#nas      nas配置表

#radcheck 用户检查信息表

#radreply 用户回复信息表

#radgroupcheck 用户组检查信息表

#radgroupreply 用户组回复信息表

#radusergroup 用户和组关系表

#radacct 计费情况表

#radpostauth 认证后处理信息,可以包括认证请求成功和拒绝的记录。

#FreeRadius数据表详解:https://blog.csdn.net/ChinaSanDuo/article/details/46630567

15.打开从数据库查询nas支持

默认从 "/usr/local/etc/raddb/clients.conf" 文件读取,开启后可从数据库nas表读取

sed -i 's/\#readclients/readclients/g' /usr/local/etc/raddb/sql.conf

16.打开在线人数查询支持

vim /usr/local/etc/raddb/sql/mysql/dialup.conf

#查找simul_count_query将290-294行注释去掉

17.修改sites-enabled目录配置文件

vim /usr/local/etc/raddb/sites-enabled/default

找到authorize {}模块,注释掉files(170行),去掉sql前的#号(177行)

找到accounting {}模块,注释掉radutmp(396行),注释掉去掉sql前面的#号(406行)。

找到session {}模块,注释掉radutmp(450行),去掉sql前面的#号(454行)。

找到post-auth {}模块,去掉sql前的#号(475行),去掉sql前的#号(577行)。

#设置FreeRadius写log日志

Authorize{

auth_log                #去掉前面的#号(第94行 )

}

post-auth{

reply_log #去掉前面的#号(第469行 )

}

#日志位置在/usr/local/var/log/radius

#各个模块添加jradius关键字

authorize {

   jradius

}

post-auth {   

  jradius

   Post-Auth-Type REJECT {             

       jradius                         

   }                                   

}  

preacct {

     jradius

}  

accounting {

     jradius

}

vim /usr/local/etc/raddb/sites-enabled/inner-tunnel

找到authorize {}模块,注释掉files(125行),去掉sql前的#号(132行)。

找到session {}模块,注释掉radutmp(252行),去掉sql前面的#号(256行)。

找到post-auth {}模块,去掉sql前的#号(278行),去掉sql前的#号(302行)。

============================================================================

用户权限管理

18.数据库操作

mysql -uroot -ppeople2000;

#people2000是数据库密码

use radius;

#使用 radius 数据库

#添加用户demo,密码demo,注意是在radchec表

INSERT INTO radcheck (username,attribute,op,VALUE) VALUES ('demo','Cleartext-Password',':=','demo');

# 将用户demo加入users用户组

INSERT INTO radusergroup (username,groupname) VALUES ('demo','user');

# 限制同时登陆人数,注意是在radgroupcheck表

INSERT INTO radgroupcheck (groupname,attribute,op,VALUE) VALUES ('normal','Simultaneous-Use',':=','1');

# 其他

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-Protocol',':=','PPP');

INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Framed-MTU',':=','1500');

INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('user','Framed-Compression',':=','Van-Jacobson-TCP-IP');

#添加用户回复信息

INSERT INTO radreply(username,attribute,op,value) VALUES('demo','Reply-Message','=','SUCCESS');

19.设定数据库类型,帐号,密码,数据库,根据实际情况修改

vi /usr/local/etc/raddb/sql.conf

修改文件第36-39行

36   server = "localhost" #数据库地址

37   port = 3306 #数据库端口

38   login = "root" #数据库用户名称

39   password = "people2000" #数据库用户密码

20. 找到 readclients = yes取消前面的注释(第108行),取消该注释主要是启用nas表查询,clients.conf就可以不需要了

============================================================================

21.通过ps aux|grep radius 命令查询是否有进程,通过kill -9 进程号 杀掉所有radius进程进程

22.启动jradius 和 freeradius服务

jradius服务:

通过/usr/jradius/server/scripts/start.sh&启动服务

通过kill -9 进程号停止服务

freeradius服务:

通过/etc/init.d/radiusd start 命令启动服务

通过/etc/init.d/radiusd stop 命令停止服务

23.用刚才插入数据库的用户名和密码来检验

radtest demo demo localhost 1812 testing123

# 出现 rad_recv: Access-Accept packet字样说明安装已经成功

# 可以在radius数据库radpostauth看到日志

资料连接地址下载:https://download.csdn.net/download/weixin_38501485/10931709