PPPOE+FREERADIUS+MYSQL 安装配置

1、重编译内核,加入PPP和PPPOE的支持;
首先解压内核 源码,然后把MPPC+MPPE的补丁打上。之后就make menuconfig , 加入以下支持:


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 support for async serial ports
    ;PPP support for sync tty ports
    ;PPP Deflate compression
    ;PPP BSD-Compress compression
    ;Microsoft PPP compression/encryption (MPPC/MPPE)
    ;PPP over Ethernet (EXPERIMENTAL)
    character devices――>;
  • non-standard serial port support
    [M]hdlc line discipline support
    Cryptographic options--->;
    [M]SHA1 digest algorithm
    [M]ARC4 cipher algorithm
    按照上面的配置重新编译内核,然后安装内核,并用它启动完毕后,备用。

    2、创建一个/dev/ppp 设备文件,这是ppp拨号所必需的。


    # mknod --mode=664 /dev/ppp c 108 0
    3、确保 /etc/modules.conf 里面有如下几行:


    alias char-major-108 ppp_generic
    alias tty-ldisc-3 ppp_async
    alias tty-ldisc-13 n_hdlc
    alias tty-ldisc-14 ppp_synctty
    alias net-pf-24 pppoe
    4、安装 ppp-2.4.3.tar.gz
    解压缩之后,打上ppp-2.4.3-mppe-mppc-1.1.patch.gz 补丁,然后编译安装:


    # tar zxvf php-2.4.3.tar.gz
    # gunzip ppp-2.4.3-mppe-mppc-1.1.patch.gz
    # patch -p0 < ppp-2.4.3-mppe-mppc-1.1.patch
    # cd ppp-2.4.3
    # ./configure
    # make
    # make install install-etcppp
    # chmod u+s /usr/local/sbin/pppd
    # cd ..
    5、安装rp-pppoe


    # tar zxvf rp-pppoe-3.5.tar.gz
    # cd rp-pppoe-3.5/src
    # ./configure --prefix=/usr/local --enable-plugin=../../ppp-2.4.3
    # make
    # make install
    6、把生成的rp-pppoe.so/radius.so等模块复制到ppp的配置目录里


    # cp /usr/local/lib/pppd/2.4.3/* /etc/ppp/plugins
    7、配置 /etc/ppp/options


    # cat /etc/ppp/options
    lock
    crtscts
    nobsdcomp
    nodeflate
    nopcomp
    8、配置 /etc/ppp/pppoe-server-options


    # cat /etc/ppp/pppoe-server-options
    auth
    require-chap
    default-mru
    default-asyncmap
    lcp-echo-interval 60
    lcp-echo-failure 5
    ms-dns 192.168.0.2
    ms-dns 61.132.90.92
    noipdefault
    noipx
    nodefaultroute
    noproxyarp
    noktune
    10.0.0.1:10.0.0.200
    netmask 255.255.255.255
    logfile /var/log/pppd.log
    * 这里 192.168.0.2 和 61.132.90.92是我使用的dns
    * 10.0.0.1:10.0.0.200 是客户端分配的IP区间

    9、设置密码文件 (先实现文本文件密码认证)


    # cat /etc/ppp/chap-secrets
    hefish * 123456 *
    10、启动pppoe拨入服务:


    /usr/local/sbin/pppoe-server -k -I eth0 -L 192.168.1.123 -R 10.0.0.1 -N 128
    * -k 使用PPP的kernel mode
    * -I eth0 启动pppoe拨号接入的网卡设备
    * -L 本地地址IP
    * -R 客户端起始IP
    * -N 最大并发连接数

    11、启动IP转发,使客户端可以通过pppoe服务器访问外网。


    # echo 1 >; /proc/sys/net/ipv4/ip_forward
    # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -s 0/0
    启动之后就可以使用PPPOE拨号接入了。
    客户端可以采用win2000+raspppoe或者WinXP自带的pppoe,我用的win2003+raspppoe就不行,改用win2003自带的PPPOE就好了,想必也是软件压缩的问题,按理说我打了MPPC补丁,应该是支持软件压缩了,这个问题以后再说吧。

    如果拨号之后无法访问拨号服务器,那就把客户端的PPP设置里面的启用软件压缩去掉,即可。
  • 1、先装mysql,这就不多说了;

    2、把freeradius安装一下;
    freeradius是个很周到的东西,考虑到了n多种后台,什么oracle,mssql, ldap都支持,mysql更是不在话下。没说的,就安装:


    # tar zxvf freeradius-1.0.4.tar.gz
    # cd freeradius-1.0.4
    # ./configure --prefix=/usr/local/freeradius
    # make
    # make install
    有一点要说明,freeradius需要openssl 库,所以如果系统里没安装的话,还是要事先安装一下的。

    3、配置freeradius;
    1) 修改 clients.conf


    # vi /usr/local/freeradius/etc/raddb/clients.conf
    client 127.0.0.1 {
    secret = 123456
    shortname = localhost
    nastype = other
    }
    这里secret = 123456 表示从127.0.0.1这个客户端连接radius服务所需要用的密码。
    2) 修改 naslist ,加入:


    # vi /usr/local/freeradius/etc/raddb/naslist
    localhost local portslave
    3) 编辑 users ,加入用户: (这个用户是保存在文本文件里的,做测试用)


    # vi /usr/local/freeradius/etc/raddb/users
    hefish 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
    4) 启动radiusd,测试radiusd服务:


    # /usr/local/freeradius/sbin/radiusd -X
    # /usr/local/freeradius/bin/radtest hefish 123456 localhost 0 123456
    如果有类似 Access-Accept的字样出现,则表示radius开始工作了。下一步就是要培植radiusd用mysql来认证。

    5) 先在mysql里面创建数据库;


    # /usr/local/mysql/bin/mysqladmin -u root -p create radius
    # cd freeradius-1.0.4/src/modules/rlm_sql/drivers/rlm_sql_mysql
    # /usr/local/mysql/bin/mysql -u root -p radius < db_mysql.sql
    6) 编辑 radius.conf 使其支持mysql认证;


    # vi /usr/local/freeradius/etc/raddb/radius.conf
    authorize {
    preprocess
    chap
    mschap
    suffix
    sql
    ...
    }

    accounting {
    ...
    sql
    ...
    }
    7) 编辑 sql.conf ,使radius可以访问mysql


    # vi /usr/local/freeradius/etc/raddb/sql.conf
    sql {
    driver = "rlm_sql_mysql"
    server = "localhost"
    login = "root"
    password = "mysql的密码"
    radius_db = "radius"
    // 剩下的配置就默认吧 (如果您要做用户帐号/网卡MAC/电话号码绑定之类的东西,那就例外,可以改下面的配置)
    }
    8) 向数据库里增加一些数据;


    # /usr/local/mysql/bin/mysql -u root -p radius
    先加入一些组信息:
    insert into radgroupreply (groupname,attribute,op,value) values ('user','Auth-Type',':=','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.255');
    insert into radgroupcheck (groupname, attribute, op, value) values ("user", "Auth-Type", ":=", "Local");

    然后加入用户信息:
    insert into radcheck (username,attribute,op,value) values ('heyu','User-Password','==','123456');

    然后把用户加到组里:
    insert into usergroup(username,groupname) values('heyu','user');
    9) 为了让radius能正确地调用mysql,还要指定一下库的位置:


    # echo /usr/local/freeradius/lib >;>; /etc/ld.so.conf
    # ldconfig
    10) 启动radiusd , 做一下测试:


    # /usr/local/freeradius/sbin/radiusd -X
    # /usr/local/freeradius/bin/radtest heyu 123456 localhost 0 123456
    看到 Access-Accept 之类的字样就表示OK了。 这时可以正式启动radiusd


    # /usr/local/freeradius/sbin/radiusd
    4、配置pppd,使其和radius一起工作;
    1) 建立一个 /etc/ppp/radius 目录,用来存放radius的配置,然后把ppp-2.4.3里面的radius相关配置复制过来:


    # mkdir /etc/ppp/radiuds
    # cd ppp-2.4.3/pppd/plugins/radius/etc
    # cp * /etc/ppp/radius
    2) 编辑 /etc/ppp/options , 加上radius 支持


    # vi /etc/ppp/options 加上下面两句
    plugin /etc/ppp/plugins/radius.so // 注意pppd安装时候radius.so的位置
    radius-config-file /etc/ppp/radius/radiusclient.conf
    3) 编辑 radiusclient.conf 文件,如下:(主要是修改一些默认的文件路径,其他没什么要改的)


    # cat /etc/ppp/radius/radiusclient.conf
    auth_order radius
    login_tries 4
    login_timeout 60
    nologin /etc/nologin
    issue /etc/ppp/radius/issue
    authserver localhost:1812
    acctserver localhost:1813
    servers /etc/ppp/radius/servers
    dictionary /etc/ppp/radius/dictionary
    login_radius /usr/local/sbin/login.radius
    seqfile /var/run/radius.seq
    mapfile /etc/ppp/radius/port-id-map
    default_realm
    radius_timeout 10
    radius_retries 3
    login_local /bin/login
    4) 编辑 servers ,设定radius 服务器的位置


    # cat /etc/ppp/radius/servers
    localhost 123456 // 这里的123456是我前面设置的访问radius服务器的密码
    5) 编辑 dictionary ,修改一些路径设置,主要是最后一个dictionary.microsoft 的路径设置



    # vi /etc/ppp/radius/dictionary
    ..
    ...
    INCLUDE /etc/ppp/radius/dictionary.microsoft
    6) 可以拨号看看了,用数据库里面的帐号登录看看,应该是能登录了。所有的登录记录,都会保存在mysql的radacct表里面,统计十分方便。

    你可能感兴趣的:(mysql,数据库,安装配置,休闲)