免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1377 | 回复: 0
打印 上一主题 下一主题

redhat 平台实现PPPOE接入记账认证服务器 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-01 10:04 |只看该作者 |倒序浏览
红帽RHEL5U3平台实现pppoe接入记账认证服务器
作者:zorro
邮件:zorro@uplooking.com
软件需求:
        红帽自带的:rp-pppoe,ppp,freeradius,freeradius-mysql,mysql。
        另需:freeradius-2.1.3以及ppp2.4.4的源代码包。
第一部分:实现简单的pppoe拨号服务
        检查系统上的rp-pppoe以及ppp软件是否安装,命令:
        #rpm -q rp-pppoe ppp
        如果安装则会有显示软件包的名称,若未安装,找到安装盘上的相关rpm包安装。
        然后配置/etc/ppp/pppoe-server-options文件,内容为:
        # PPP options for the PPPoE server
        # LIC: GPL
        require-chap
        login
        lcp-echo-interval 10
        lcp-echo-failure 2
        defaultroute
        ms-dns 192.168.1.1
        logfile /var/log/pppod.log
        
        文件内容不做解释,可以通过man pppd查寻相关帮助。此时pppoe服务器从/etc/ppp/ chap-secrets文件中读取验证的用户名和密码信息,此文件格式为:
        # Secrets for authentication using CHAP
        # client        server        secret                        IP addresses
        "zorro"        *        "123456"                *
        想要多添加用户,再加入新行即可。
        然后可以启动pppoe服务了,命令是:
        #pppoe-server -I eth0 -L $LOCALIP -R $REMOTEIP -N $CONNLIMIT
        命令详细信息查询man pppoe-server。
        注:红帽自带的pppoe服务器,在RHEL5至RHEL5U2的版本上与系统的syslog服务有冲突。可现关闭syslog服务,让pppoe服务器正常运行。
第二部分:让pppoe服务使用freeradius服务器进行验证
        首先更改/etc/ppp/pppoe-server-options,添加一行设置:
        # PPP options for the PPPoE server
        # LIC: GPL
        require-chap
        login
        lcp-echo-interval 10
        lcp-echo-failure 2
        defaultroute
        ms-dns 192.168.1.1
        logfile /var/log/pppod.log
        plugin /usr/lib/pppd/2.4.4/radius.so
        表示让pppoe-server在运行时加入pppd的radius查检,可以让pppoe服务通过freeradius来验证和记账。添加此行之后,可以创建/etc/radiusclient/目录,创建完之后,我们需要使用一下ppp的源代码,因为红帽没有给我们提供相应的配置文件。解压ppp的源代码目录:
        #tar xvfz ppp-2.4.4.tar.gz
        #cd ppp-2.4.4
        #cd pppd/plugins/radius/etc/
        #cp * /etc/radiusclient/
        这个目录下有我们需要的所有相关的配置文件,其中最重要的是/etc/radiusclient/radiusclient.conf,我们先打开此文件配置,其内容为(已去掉注释):
        auth_order        radius
        login_tries        4
        login_timeout        60
        nologin /etc/nologin
        issue        /etc/radiusclient/issue
        authserver         localhost:1812
        acctserver         localhost:1813
        servers                /etc/radiusclient/servers
        dictionary         /etc/radiusclient/dictionary
        login_radius        /sbin/login.radius
        seqfile                /var/run/radius.seq
        mapfile                /etc/radiusclient/port-id-map
        default_realm
        radius_timeout        10
        radius_retries        3
        login_local        /bin/login
        
        字段相关意义清参考文件自带的注释。
        另外,还需更改此目录下的servers文件,此文件用来指定读取的radius服务器的主机名称以及key值(需要在freeradius配置中指定)。
        此时pppoe服务已经可以通过radius认证了。然后进行freeradius的配置。
        首先检查freeradius是否安装:
        #rpm -q freeradius freeradius-mysql
        其中freeradius-mysql包使用来让freeradius连接mysql数据库的,本部分还用不到。
        首先打开/etc/raddb/clients.conf配置客户端访问控制,文件内容如下(已删除注释):
        client 127.0.0.1 {
                secret                = hello
                shortname        = localhost
                nastype     = othe
        }
        表示客户端之允许从127.0.0.1的ip登录radius服务,并且需要验证的secret为hello,就是在上面的servers文件中需要配置的信息。若要实现可以从别的机器访问,请参考注释获得帮助。
        然后配置naslist文件,内容为:
        # NAS Name                Short Name        Type
        #----------------        ----------        ----
        #portmaster1.isp.com        pm1.NY                livingston
        #portmaster2.isp.com        pm1.LA                livingston
        localhost                local                portslave
        此文件用来配置记录有哪些指定的nas服务器需要使用radius进行记账。现在指定的是localhost。
        主控配置文件是radiusd.conf,目前没有需要改的,可通过注释学习其中配置方法。此文件主要是用来指定freeradius服务器默认的验证和记账方式。我们目前使用本地的文件方式,就是/etc/raddb/users文件,在其中添加我们需要提供给pppoe服务认证的用户信息,内容如下(某段截取):
        zorro   Auth-Type := Local, Simultaneous-Use := 1, User-Password == "zorro"
                     Service-Type = Framed-User,
                        Framed-Protocol = PPP,
                        Framed-IP-Address = 10.0.0.33,
                      Framed-IP-Netmask = 255.255.255.255
        其中Simultaneous-Use := 1字段用来设置每个用户同时登录的个数。所有字段信息都在freeradius的源代码中有文档给予解释。另外要注意,添加的用户字段应写在文件DEFAULT字段前面添加,否则可能不会生效。
        都配置完毕后,可以通过radiusd -X命令以排错方式启动,此时再启动pppoe-server,用客户端拨号验证一下,检查pppoe服务是否成功通过freeradius来验证用户。如果成功,这一部分完成。可通过 service radiusd restart来正常启动radius服务。
第三部分:配置freeradius从mysql数据库读取用户信息
        首先更改/etc/raddb/radiusd.conf,首先将$INCLUDE  ${confdir}/sql.conf字段这行原有的注释去掉,然后找到authorize字段中的sql将注释取消掉,以及accouting字段中的sql的注释取消。然后需要更改sql.conf中的设置,主要是设置读取的mysql服务器的相关信息,可更改如下一些字段:
        server = "localhost"                                                 #数据库服务器
    login = "mysql_username"                                         #数据库用户
    password = "mysql_password"                                #数据库密码
        radius_db = "radius"                                                #数据库名称
        当然前提是你要现把mysql服务设置好,设置方法是:
        先启动你的mysqld:
                service mysqld start
        然后设置root帐户密码:
                mysqladmin –uroot –p password 12345
        创建radius数据库
                mysqladmin –uroot –p123456 create radius
        
        建立mysql的数据库raius的表,我们可以通过软件已经给出的sql脚本导入数据库:
                mysql -uroot –p123456 radius

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/48768/showart_1982460.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP