设为首页 收藏本站
查看: 1543|回复: 0

[经验分享] CentOS 5.7安装FreeRADIUS 1.1.3+MySQL 5.0.77结合RouteOS

[复制链接]

尚未签到

发表于 2018-9-30 11:36:30 | 显示全部楼层 |阅读模式
一、安装FreeRadius 和 MySQL
  [root@radius ~]# yum install freeradius2 freeradius2-mysql freeradius2-utils
  [root@radius ~]# yum install mysql mysql-server

二、开启MySQL和Radius服务
  [root@radius ~]# service mysqld start
  [root@radius ~]# radiusd –X
  [root@radius ~]# service radiusd start

三、设置服务开机启动
  [root@radius ~]# chkconfig mysqld --level 2345 on
  [root@radius ~]# chkconfig radiusd --level 2345 on

四、做个简单的测试(可选操作)
  ①定义一个radius客户端ip
  [root@radius ~]# vim /etc/raddb/clients.conf
  删除原来的所有
  配置示例:
  client localhost {
  
        ipaddr = 127.0.0.1
  
        secret = testing123
  
        require_message_authenticator = no
  
        nastype = other
  
}
  ②定义一个用户和密码
  [root@radius ~]# vim /etc/raddb/users
  在第一行添加
  配置示例:
  testing Cleartext-Password := "password"
  ③以调试模式开启radius
  [root@radius ~]# radiusd –X
  状态如下:
  Ready to process requests.
  ④测试服务是否正常
  [root@radius ~]# radtest testing password localhost 0 testing123
  返回结果(关键是返回Access-Accept)示例:

  Sending Access-Request of>  
        User-Name = "testing"
  
        User-Password = "password"
  
        NAS-IP-Address = 127.0.0.1
  
        NAS-Port = 0

  
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812,>
五、创建一个MySQL数据库
  [root@radius ~]# mysql -uroot –p
  mysql> CREATE DATABASE radius;

  mysql> GRANT ALL ON radius.* TO radius@localhost>  mysql> exit
  [root@radius ~]# cd /etc/raddb/sql/mysql/
  [root@radius mysql]# mysql -uroot -p radius < schema.sql

六、检查一下是否创建成功
  [root@radius mysql]# mysql -uroot -p
  mysql> show databases;
  +--------------------+
  
| Database           |
  
+--------------------+
  
| information_schema |
  
| mysql              |
  
| radius             |
  
| test               |
  
+--------------------+
  
4 rows in set (0.03 sec)
  mysql> use radius
  mysql> show tables;
  +------------------+
  
| Tables_in_radius |
  
+------------------+
  
| radacct          |
  
| radcheck         |
  
| radgroupcheck    |
  
| radgroupreply    |
  
| radpostauth      |
  
| radreply         |
  
| radusergroup     |
  
+------------------+
  
7 rows in set (0.00 sec)

七、配置FreeRadius使用SQL
  [root@radius ~]# vim /etc/raddb/sql.conf
  示例:
  sql {
  
        database = &quot;mysql&quot;
  
        driver = &quot;rlm_sql_${database}&quot;
  
        server = &quot;localhost&quot;
  
        login = &quot;radius&quot;
  
        password = &quot;radpass&quot;
  
        radius_db = &quot;radius&quot;
  
        acct_table1 = &quot;radacct&quot;
  
        acct_table2 = &quot;radacct&quot;
  
        postauth_table = &quot;radpostauth&quot;
  
        authcheck_table = &quot;radcheck&quot;
  
        authreply_table = &quot;radreply&quot;
  
        groupcheck_table = &quot;radgroupcheck&quot;
  
        groupreply_table = &quot;radgroupreply&quot;
  
        usergroup_table = &quot;radusergroup&quot;
  
        deletestalesessions = yes
  
        sqltrace = no
  
        sqltracefile = ${logdir}/sqltrace.sql
  
        num_sql_socks = 5
  
        connect_failure_retry_delay = 60
  
        lifetime = 0
  
        max_queries = 0
  
        nas_table = &quot;nas&quot;
  
        $INCLUDE sql/${database}/dialup.conf
  
}
  [root@radius ~]# vim /etc/raddb/radiusd.conf
  找到:
  $INCLUDE sql.conf
  去掉注释
  以下区段需要注释掉files,去掉sql前的注释(没有则不需要)
  [root@radius ~]# vim /etc/raddb/sites-available/default
  authorize{}
  accounting{}
  session{}
  post-auth{}
  [root@radius ~]# vim /etc/raddb/sites-available/inner-tunnel
  authorize {}

八、创建测试数据
  ①创建用户组[radgroupcheck]
  ②创建用户密码[radcheck]
  ③创建用户应答属性[radreply]
  ④创建组应答属性[radgroupreply]
  下面是一个示例:
  这个例子包含三个用户fredf,barney,dialrouter
  fredf由NAS(网络接入服务器)动态分配ip
  barney分配一个静态的ip
  dialrouter表示的是一个典型的拨号路由
  

  
mysql> select * from radcheck;
  
+----+----------------+--------------------+------------------+------+

  
|>  
+----+----------------+--------------------+------------------+------+
  
|  1 | fredf          | Cleartext-Password | wilma            | :=   |
  
|  2 | barney         | Cleartext-Password | betty            | :=   |
  
|  2 | dialrouter     | Cleartext-Password | dialup           | :=   |
  
+----+----------------+--------------------+------------------+------+
  
3 rows in set (0.01 sec)
  

  
mysql> select * from radreply;
  

  
+----+------------+-------------------+---------------------------------+------+

  
|>  
+----+------------+-------------------+---------------------------------+------+
  
|  1 | barney     | Framed-IP-Address | 1.2.3.4                         | :=   |
  
|  2 | dialrouter | Framed-IP-Address | 2.3.4.1                         | :=   |
  
|  3 | dialrouter | Framed-IP-Netmask | 255.255.255.255                 | :=   |
  
|  4 | dialrouter | Framed-Routing    | Broadcast-Listen                | :=   |
  
|  5 | dialrouter | Framed-Route      | 2.3.4.0 255.255.255.248         | :=   |

  
|  6 | dialrouter |>  
+----+------------+-------------------+---------------------------------+------+
  
6 rows in set (0.01 sec)
  

  
mysql> select * from radgroupreply;
  
+----+-----------+--------------------+---------------------+------+

  
|>  
+----+-----------+--------------------+---------------------+------+
  
| 34 | dynamic   | Framed-Compression | Van-Jacobsen-TCP-IP | :=   |
  
| 33 | dynamic   | Framed-Protocol    | PPP                 | :=   |
  
| 32 | dynamic   | Service-Type       | Framed-User         | :=   |
  
| 35 | dynamic   | Framed-MTU         | 1500                | :=   |
  
| 37 | static    | Framed-Protocol    | PPP                 | :=   |
  
| 38 | static    | Service-Type       | Framed-User         | :=   |
  
| 39 | static    | Framed-Compression | Van-Jacobsen-TCP-IP | :=   |
  
| 41 | netdial   | Service-Type       | Framed-User         | :=   |
  
| 42 | netdial   | Framed-Protocol    | PPP                 | :=   |
  
+----+-----------+--------------------+---------------------+------+
  
12 rows in set (0.01 sec)
  

  创建测试用户
  INSERT INTO radcheck (username,attribute,op,value) VALUES ('dialrouter','Cleartext-Password',':=','dialup');
  
INSERT INTO radreply (username,attribute,op,value) VALUES ('dialrouter','Framed-IP-Address',':=','2.3.4.1');
  
INSERT INTO radreply (username,attribute,op,value) VALUES ('dialrouter','Framed-IP-Netmask',':=','255.255.255.255');
  
INSERT INTO radreply (username,attribute,op,value) VALUES ('dialrouter','Framed-Routing',':=','Broadcast-Listen');
  
INSERT INTO radreply (username,attribute,op,value) VALUES ('dialrouter','Framed-Route',':=','2.3.4.0 255.255.255.248');
  
INSERT INTO radreply (username,attribute,op,value) VALUES ('dialrouter','Idle-Timeout',':=','900');
  
INSERT INTO radgroupreply (groupname,attribute,op,value) VALUES ('netdial','Service-Type',':=','Framed-User');
  
INSERT INTO radgroupreply (groupname,attribute,op,value) VALUES ('netdial','Framed-Protocol',':=','PPP');

九、测试是否创建成功
  [root@radius ~]# radiusd -X
  [root@radius ~]# radtest dialrouter dialup localhost 1812 testing123

  Sending Access-Request of>  
        User-Name = &quot;dialrouter&quot;
  
        User-Password = &quot;dialup&quot;
  
        NAS-IP-Address = 127.0.0.1
  
        NAS-Port = 1812

  
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812,>  
        Framed-IP-Address = 2.3.4.1
  
        Framed-IP-Netmask = 255.255.255.255
  
        Framed-Routing = Broadcast-Listen
  
        Framed-Route = &quot;2.3.4.0 255.255.255.248&quot;

  
       >
十、配置RouteOS 使用radius认证
  [root@radius ~]# vim /etc/raddb/clients.conf
  client RouterOS {
  
        ipaddr = 192.168.137.50
  
        secret = 111
  
        shortname = RouterOS
  
        nastype = other
  
}
  RouteOS的配置如下:
DSC0000.png

DSC0001.png

  附上参考链接:
  http://wiki.freeradius.org/guide/SQL-HOWTO
  http://wiki.freeradius.org/config/Operators
  http://www.cnblogs.com/fly1988happy/archive/2011/12/15/2288554.html
  http://www.cnblogs.com/eastson/archive/2012/07/11/2584937.html



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-606683-1-1.html 上篇帖子: 解决 安装 MYSQL exec: g++: not found 报错 下篇帖子: mysql本地连接错误解决办法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表