对linux下pppoe server插件编写的分析(1)

本文分析了在RAS4环境下,使用ppp-2.4.3和freeradius构建PPPoE服务器时,如何自定义radius插件以满足特定需求。插件开发主要涉及pap和chap的认证过程、IP选择和事件通知等功能。通过插件,可以避免复杂的radius配置,直接与MySQL交互进行用户验证和流量管理。难点在于理解chap密码的验证机制。
摘要由CSDN通过智能技术生成

分析环境: RAS4 + gcc version 3.4.3 20041212 +ppp-2.4.3

         使用ppp 2.4.3+rp_pppoe+freeradius搭建pppoe server时,由于某些特定的要求得不到实现,因而希望自己修改radius插件,实现自己的要求,所以做了些分析。
  

      一、radius插件生成后缀是 .so,放置在ppp源码的pppd/plugins/radius/下,分析radius.c,可以得出插件编写的基本要求。
        (1)、插件与主程序的接口为 void plugin_init(void),在这个函数里定义了当ppp链路建立连接时插件hook的相应函数。对于在这个函数里没有定义的过程,由pppd的主体函数处理,所以对于下面的过程里,可以只根据自己的要求设定hook过程
void plugin_init(void)
{
    pap_check_hook = radius_secret_check;         //与radius接口时的serect检查
    pap_auth_hook = radius_pap_auth;                 // //用户名和密码pap方式的校验过程

    chap_check_hook = radius_secret_check;   //如果不需要处理, radius_secret_check函数直接返回1即可
    chap_verify_hook = radius_chap_verify;         //用户名和密码chap方式的校验过程,radius_chap_verify返回0代表密码校验不通过,返回1通过验证

    ip_choose_hook = radius_choose

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值