LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 13492|回复: 27

建立PPPOE服务器跟我来

[复制链接]
发表于 2003-4-17 11:26:23 | 显示全部楼层 |阅读模式
在Linux下建立PPPOE服务器的步骤
建立环境:
操作系统:DEBIAN 2.2 升级到3.0
内    核:2.4.18
硬件环境:赛扬3 1.1G ,内存 128M , 硬盘  40G ,主板芯片组  694T
显    卡:ATI RAGE IIC(4M)
PPPOE服务器:RP-PPPOE 3.4.1
RADIUS服务器:FREERADIUS 0.8
数   据   库: MYSQL 3.23.56
PPPOE服务器认证的建立分三种认证方式,第一种方式为用RP-PPPOE自带的基于文本认证方式,第二种方式为建立在RADIUS认证服务器上的文本认证方式,第三种方式是基于MYSQL的数据库认证方式
一、编译内核
要建立PPPOE服务器,除了内核要支持PPP以外还需要内核支持PPPOE,不过在2.4.18里需要打开内核的不成熟代码才可以选择,内核的配置如下:
code maturity level options——>
  • prompt for development and/or incomplete code/drivers
    networking options——>
  • packet socket
  • packet socket:mmapped io
    network device support——>
  • ppp (point-to-point  protocol) support
  • ppp multilink support (experimental)
  • ppp filtering
  • ppp support for async serial ports
  • ppp support for sync tty ports
  • ppp deflate compression
  • ppp bsd-compress compression
  • ppp over Ethernet (experimental)
    character devices——>
  • non-standard serial port support
  • hdlc line discipline support
    编辑/etc/modules.conf(redhat好象是conf.modules),如果没有就加入以下几行:
    •        alias char-major-108  ppp_generic
    •        alias /dev/ppp ppp_generic
    •        alias tty-ldisc-3 ppp_async
    •        alias tty-ldisc-13 n_hdlc
    •        alias tty-ldisc-14 ppp_synctty
    •        alias ppp-compress-21 bsd_comp
    •        alias ppp-compress-24 ppp_deflate
    •        alias ppp-compress-26 ppp_deflate
    完成以后就可以下一步,建立PPP拨号服务器了
    二、建立PPP服务器
    在建立拨号服务器之前,应确保你在内核中打开了IP转发功能:
    echo “1”>/proc/sys/net/ipv4/ip_forward
    编译PPP服务器很容易,就是按以下几步就可以了:
    •使用configure
    •使用make编译PPPD,这里有几个参数比较重要,要支持windows的客户端,应该在编译时加上选项USE_MS_DNS=1,如果你的系统shadow的话,你应该使用make HAS—SHADOW=1表示支持shadow密码
    •编译完成后,将生成pppd、pppdump、chat和pppstats这几个文件,使用make install安装这些文件
    •修改pppd的访问权限,允许由root启动服务进程
      chmod u+s /usr/sbin/pppd
    三、建立PPPOE服务器
    cd /rp-pppoe-3.4/src
    ./configure
    make
    make install
    启动PPPOE进程:
    pppoe-server –L 10.0.0.1 –R 10.0.0.2 –N 64 –k -u
    -L:  指定PPPOE服务器的IP地址
    -R:  指定PPPOE拨入服务器分配给客户端的IP地址段
    -N:  允许客户端同时拨入的数量(默认是64  最大是65534)
    -k:    使用内核方式(不过好象无法使用)
    修改/etc/ppp/options,查看有没有以下几行,没有就加进去:
    local
    repaire-pap                               
    login
    auth                                       
    defaultroute                       
    hide-password
    ipcp-accept-local               
    ipcp-accept-remote               
    10.0.0.1:10.0.0.255               
    netmask 255.255.255.0
    ms-dns  10.0.0.1               
    修改/etc/ppp/pppoe-server-options,将所有的行都注释掉
    添加用户到/etc/ppp/pap-secrets中,例如添加用户luo,密码为123456,允许从任何位置拨入:
    #client        server        secret                ip addresses
    luo         *        “123456”                    *
    设置windows的用户名:luo  密码: 123456,如果连接成功就可以进行下一步
    四、建立RADIUS认证服务器
    cd /freeradius-0.81
    ./configure
    make
    make install
    编辑/usr/local/etc/raddb/clients,输入你的NAS(网络认证服务器)的IP地址和serect,本例中NAS为本机,serect为linux,看上去如下:
    localhost                 linux
    编辑/usr/local/etc/raddb/clients.conf,加入以下几行:
    client        127.0.0.1{                                       
    secret = linux               
    shortname = localhost               
    }
    nastype = other        
    编辑/usr/local/etc/raddb/naslist,加入:
    localhost                local               
    编辑/usr/local/etc/raddb/users,加入用户:luo、密码:123456,显示如下:
    luo                Auth-Type:=local,                User-Password==“123456”
                    Service-Type:= Framed-User,
                    Framed-Protocol = PPP
                    Framed-IP-Address := 10.0.0.2                       
                    Framed-IP-Netmask := 255.255.255.0
  •  楼主| 发表于 2003-4-17 11:34:38 | 显示全部楼层
    启动RADIUS服务、测试帐号
    启动调试模式
    RADIUS        –X       
    进行帐号测试
    Radtest luo        123456 localhost 0 linux
    如果能看到应答,说明RADIUS设置成功了
    要使PPPD进程能够使用RADIUS进行认证,需要加入RADIUS认证的插件
    cp radius.so /usr/lib
    编辑/etc/ppp/options,加入以下到文件:
    plugin /usr/lib/radius.so
    radius-servers                localhost:1812/1813                       
    radius-auth-key                linux                               
    radius-ip-pool                10.0.0.2:10.0.0.255                       
    运行客户端进行登陆,如果能通过认证则成功了
    五、建立MYSQL服务器
    tar zxvf mysql-3.23.56.tar.gz
    cd mysql-3.23.56
    ./configure
    make
    make install
    cd script
    ./mysql_install_db
    /usr/local/bin/safe_mysqld&                       
    安装RADIUS数据库
    cd freeradius-0.81/src/modules/rlm_sql/drivers/rlm_sql_mysql
    mysql –u root –p 密码 radius<db_mysql.sql
    编辑/usr/local/etc/raddb/radius.conf使其支持SQL,修改后如下:
    authorize{
            preprocess
            chap
            mschap
            suffix
            sql
    }
    accounting{
    ……
    sql
    ……
            }
    修改sql.conf,如下所示:
            server="loclahost"                                                login="root"                                                        password="mysql的root的密码"
           
    加入组帐号
    mysql –u root –p 密码 radius
    insert into radgroupreply (groupname,attribute,op,value) values (‘user’,’Auth-Tyep’,’:=’,’local’);
    insert into radgroupreply (groupname,attribute,op,value) values (‘user’,’Service-Type’,’:=’,’Framed-User’);
    insert                 into         radgroupreply          (groupname,attribute,op,value)     values
    (‘user’,’Framed-IP-Netmask’,’:=’,’255.255.255.0’);               
    #设定拨入用户的掩码,本例只有PPPOE服务,所以可以与options中设定相同
    加入用户帐号:
    insert into   radcheck        (username,attribute,op,value)         values
    (‘luo’,’User-Password’,’:=’,’123456’);
    将用户帐号加入组帐号
    insert into usergroup(username,groupname) values(‘luo’,’user’);
    如果提示无法找到rlm_sql_mysql文件,则:
    cp /usr/local/lib /usr/lib
    测试:
    radtest luo 123456 localhost 0 linux
    见到应答就OK了!

    以上是我建立PPPOE服务器的方法,因本人才疏学浅,如有什么错误请指正,如有什么问题可以联系我:QQ  124249756    E-mail:luo19800526@sina.com
    发表于 2003-4-17 21:50:05 | 显示全部楼层
    我需要的东西,先表示感谢,但最近没有时间。到五一的时候试试!
    先给你顶一下!
    发表于 2003-4-17 22:24:22 | 显示全部楼层
    谢谢兄弟了!
     楼主| 发表于 2003-4-18 09:33:01 | 显示全部楼层
    linux是自由而开放的,好东西应该与大家同分享,希望能对大家有用
    发表于 2003-5-1 22:30:27 | 显示全部楼层
    精品。。。。。
    多谢luojiangming兄,辛苦了。。。。。。
    发表于 2003-6-10 13:44:43 | 显示全部楼层
    请教radius.so在哪一目录下?
    谢谢
     楼主| 发表于 2003-6-11 18:04:55 | 显示全部楼层
    在PPPD-2.4.1中!
    发表于 2003-6-11 22:26:43 | 显示全部楼层
    兄弟,能说具体一点吗,我的是redhat7.2,pppoe通过rpm安装的,好像没有pppd-2.4.1这个目录。radius.so是不是要下载rp-pppoe.xx.xx.gz编译才产生呀?
    谢谢
    发表于 2003-6-12 08:56:05 | 显示全部楼层
    能不能将radius.so文件发到我邮箱里去?

    hujiehit@yahoo.com.cn
    hujie@hit.edu.cn

    3xs
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

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