美文网首页Openwrt路由联盟
Openwrt+pppoe-server+radius笔记

Openwrt+pppoe-server+radius笔记

作者: cowkeys | 来源:发表于2016-09-13 11:36 被阅读1459次

    简介

    最近项目接触到Openwrt的编译和使用,op本身是一个定制的linux系统,兼容的包和语言也有很多,随着物联网的发展,相信在路由器方面的应用会越来越多。

    目的

    项目需要涉及到网关控制,之前加入了coova-chilli,现在需要使用pppoe-server来执行登录验证上网,类似路由器设置一个拨号服务器,然后员工pc通过用户名密码进行拨号上网。

    测试环境和ipk

    X86网关,自己编译的openwrt15.05,rp-pppoe-server3.10 rp-pppoe-server下载地址
    注意:openwrt 好像在14.07后就没有把rp-pppoe-server放入packages了,只找到了12.09的rp-pppoe-server

    OpenWrt上使用pppoe-server

    1. 安装pppoe-server:
      opkg install rp-pppoe-server_3.10-2_x86.ipk
      copy /usr/lib/pppd/2.4.7里面的rp-pppoe.so文件到 /etc/ppp/plugins中
    2. 设置/etc/ppp/pppoe-server-options
    # PPP options for the PPPoE server
    # LIC: GPL
    require-chap
    login
    lcp-echo-interval 10
    lcp-echo-failure 2
    ms-dns 8.8.8.8
    
    1. 设置/etc/ppp/chap-secrets (用于拨号的用户名 密码)
    #USERNAME  PROVIDER  PASSWORD  IPADDRESS
    test * test *
    
    1. pppoe server 具体设置
      1.设置ip 10.0.0.0段的地址经过的时候全部转换成上层网络动态获取的IP出去具体语法介绍查看
      iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE
      2.带参数值启动pppoe-server,参数说明直接输入 pppoe-server -h 查看,这里的10.0.0.1和上面iptables 对应好就行,成功拨号后的PC端获取的就是这个网段的IP地址
      pppoe-server -k -T 60 -I br-lan -N 100 -C Myp -L 10.0.0.1 -R 10.0.0.2
      3.设置ppp0端口数据接收流入流出,拨号后可以可以通过ifconfig查看到有个虚拟网口ppp0
    iptables -I FORWARD -i ppp0 -j ACCEPT
    iptables -I FORWARD -o ppp0 -j ACCEPT
    

    4.通过在chap-secrets里面设置的用户名密码 就能拨号成功

    pppoe-server+radius认证

    参考地址linux配置radius
    radius是一个认证授权的开源服务器,当你架好之后,pppoe-server 能连接radius进行用户密码验证,其实和上面的chap验证一样。只是需要指向radius服务器以及设置一些参数

    1. openwrt上首先需要安装 radius
      opkg install ppp-mod-radius
    2. copy /usr/lib/pppd/2.4.7里面的radius.so文件到 /etc/ppp/plugins中
    3. etc/ppp/radius
        # SERVER SECRET
        (radius地址) (**secret**)
    
    1. etc/ppp/radius.conf 修改
        authserver (radius地址):1812
        acctserver (radius地址):1813
    
    1. etc/ppp/options 添加
    plugin /etc/ppp/plugins/radius.so
    radius-config-file /etc/ppp/radius.conf
    
    1. radattr.so 不存在的问题,在编译openwrt的时候 进入package network service 找到ppp的makefile
      在这一行 define Package/ppp-mod-radius/install
      下面修改成:
    $(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_VERSION)
    $(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_VERSION)/radattr.so \
    $(1)/usr/lib/pppd/$(PKG_VERSION)/
    $(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_VERSION)/radius.so \
    $(1)/usr/lib/pppd/$(PKG_VERSION)/
    

    再编译文件,得到的ipk就有 radattr.so

    这样就设置成功了,和前面的chap验证一样进行拨号就行了。

    注意

    我使用的是带了6个网口的X86机子
    可能连接lan口后没拨号的情况也能上网,如果需要限制在没有拨号之前不能上网,直接在firewall里面关掉4.2步骤里面br-lan这个对应的wan forwading就行了。

    相关文章

      网友评论

        本文标题:Openwrt+pppoe-server+radius笔记

        本文链接:https://www.haomeiwen.com/subject/wxjmettx.html