环境:

OS:Linux Centos 6.9 x86_x64

PPPOE : ppp-2.4.7.tar.gz   rp-pppoe-3.12.tar.gz

FreeRadius : V3.0.X

Mysql : mysql-server-5.1.73-8.el6_8.x86_64

下载地址:

wget https://download.samba.org/pub/ppp/ppp-2.4.7.tar.gz

wget https://www.roaringpenguin.com/files/download/rp-pppoe-3.12.tar.gz

git clone https://github.com/FreeRADIUS/freeradius-server.git

安装:

1、PPPOE

 wget https://download.samba.org/pub/ppp/ppp-2.4.7.tar.gz
wget https://www.roaringpenguin.com/files/download/rp-pppoe-3.12.tar.gz
tar zxvf ppp-2.4..tar.gz
tar zxvf rp-pppoe-3.12.tar.gz
cd ppp-2.4.
./configure
make && make install
cd ..
cd rp-pppoe-3.12/src/
./configure --prefix=/usr/local --enable-plugin=../../ppp-2.4.
make && make install
cd
mkdir /etc/ppp/radius
cp -rf /usr/local/lib/pppd/2.4./* /etc/ppp/plugins/
cp -rf /root/ppoe/ppp-2.4.7/pppd/plugins/radius/etc/* /etc/ppp/radius/
cp -rf /root/ppoe/ppp-2.4.7/etc.ppp/* /etc/ppp/

2、安装MYSQL (这里没有采用原码安装)

yum install -y mysql mysql-server mysql-devel mysql-libs

3、安装FreeRadius

组件安装:

1、openssl

yum install -y openssl openssl-devel

2、talloc-2.1.10

 wget https://www.samba.org/ftp/talloc/talloc-2.1.10.tar.gz
tar zxvf talloc-2.1..tar.gz
cd talloc-2.1.
ls
./configure --prefix=/usr
make
make install

3、gcc-4.8.1 ,支持C11

 wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.1/gcc-4.8.1.tar.gz
tar -xvzf gcc-4.8..tar.gz
cd gcc-4.8.
./contrib/download_prerequisites
cd ..
mkdir build_gcc_4.8.1
cd build_gcc_4.8.1
../gcc-4.8./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j23
make install
ls /usr/local/bin | grep gcc
/usr/sbin/update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/x86_64-unknown-linux-gnu-gcc-4.8.
gcc --version
/usr/sbin/update-alternatives --install /usr/bin/g++ g++ /usr/local/bin/g++
g++ --version

注:摘自http://blog.csdn.net/abcd1f2/article/details/49760365

4、 安装FreeRadius

 git clone https://github.com/FreeRADIUS/freeradius-server.git
cd freeradius-server
git checkout v3..x
./configure
make
make install

配置

1、 配置PPPOE,拷贝文件并配置pppoe-server-options

 mkdir /etc/ppp/radius
cp -rf /usr/local/lib/pppd/2.4./* /etc/ppp/plugins/
cp -rf /root/ppoe/ppp-2.4.7/pppd/plugins/radius/etc/* /etc/ppp/radius/
cp -rf /root/ppoe/ppp-2.4.7/etc.ppp/* /etc/ppp/
#编辑pppoe-server-options 配置文件
/////文件内容如下:
auth
lock
login
mru 1480
mtu 1480
proxyarp
require-pap
require-chap
lcp-echo-interval 10
lcp-echo-failure 2
chap-interval 5
chap-max-challenge 20
chap-restart 3
ms-dns 114.114.114.114
ms-dns 8.8.8.8
logfile /var/log/pppd.log
plugin /etc/ppp/plugins/radius.so
radius-config-file /etc/ppp/radius/radiusclient.conf
////// radius.so和radiusclient.conf 路径根据实际情况设置

配置/etc/ppp/radius/radiusclient.conf文件,注意路径

配置/etc/ppp/radius/server文件,testing123为默认密码

修改dictionary文件,注意里面包含的配置文件位置

2、 配置mysql

 mysql -uroot -p
mysql>update user set password=password('') where user="root";
mysql>flush privileges;
mysql>create database radius;
mysql> GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY "radpass";
# cd /usr/local/etc/raddb/mods-config/sql/main/mysql
##创建数据表schema.sql脚本
#mysql -uroot -p radius <schema.sql
#mysql -uroot -p
mysql> use radius;
mysql> insert into radcheck(id,username,attribute,op,value) values('','test','Cleartext-Password',':=','test123');

3、 配置FreeRadius

配置/usr/local/etc/raddb/radiusd.conf,增加一条 $INCLUDE  sql.conf

创建sql.conf,vi sql.conf ,增加内容 database = "mysql"

在users 文件创建一个本地用户测试

配置/usr/local/etc/raddb/mods-available/sql 文件(这里有用户名密码是上面授权的使用输入的,即数据库里的GRANT语句)

创建sql 连接到mods-enable中(enable中的文件代表开启这项功能)

配置/usr/local/etc/raddb/sites-enabled/default,开启sql 禁用files ,files 在本地测试的时候是需要开启的,mysql 测试可以关闭(可选)

一个authorize{ },一个accounting{ },其它选项暂时未涉及,应该也可以操作post-auth { },session { }

使用openssl的时候需要修改:

vim /usr/local/etc/raddb/radiusd.conf

配置FreeRadius连接认证密码,其它程序需要需要使用radius 配置的连接密码必须与此相同

细化配置

4、 配置Linux

 iptables -F
iptables -x
#ISP直接外网IP
echo 'net.ipv4.conf.eth0.proxy_arp = 1' >>/etc/sysctl.conf
echo > /proc/sys/net/ipv4/conf/eth0/proxy_arp
#内网转外网
echo > /proc/sys/net/ipv4/ip_forward
sed -i /net.ipv4.ip_forward/s///g /etc/sysctl.conf
iptables -t nat -A POSTROUTING -s 192.168.1.0/ -o eth0 -j MASQUERADE eth0为外国端口,192.168.1.0 为分配的地址段
iptables -A POSTROUTING -t nat -s 192.168.1.0/ -j MASQUERADE
# 不指定出口
sysctl -w "net.ipv4.conf.eth0.proxy_arp=1"

测试

radius 本地本地用户测试(本地测试需要开启authorize {} 选项中的file),开一个窗口输入radiusd -X 启动debug 模式

radius -X

新开一个窗口输入:

radtest testing password 127.0.0.1 testing123

数据库用户测试

radtest test test123 localhost testing123

开启PPPOE服务

 pppoe-server -I eth0 -L 10.0.0.48 -p /etc/ppp/fname.txt  指定IP列表文件
pppoe-server -I eth0 -L 10.0.0.2 -R 10.0.0.240 -N
# -L 指定公网的网关地址
# -p 指定对应的IP列表
# -R -N 指定地址段

相关服务开启命令

 iptables -F
iptables -X
radiusd
service mysqld start/stop/restart
pppoe-server -I eth0 -L 10.0.0.2 -R 10.0.0.100 -N

感谢:

http://blog.csdn.net/name_kongkong/article/details/53010377

http://wiki.freeradius.org/building/home#hard-dependencies_libkqueue-or-native-kqueue-support-since-v4-0-x

http://blog.csdn.net/abcd1f2/article/details/49760365

http://www.linuxfromscratch.org/blfs/view/cvs/general/talloc.html

http://blog.csdn.net/shanshanhi/article/details/51851444

http://blog.csdn.net/chinasanduo/article/details/46630567

PPPOE+FREERADIUS+MYSQL+LINUX的更多相关文章

  1. PPTP + FreeRADIUS + MySQL 安装与配置

    原文地址:http://www.zhukun.net/archives/5375 PPTP + FreeRADIUS + MySQL 安装与配置 2012/03/29Linux运维centos.Fre ...

  2. Django Python MySQL Linux 开发环境搭建

    Django Python MySQL Linux 开发环境搭建 1.安装Python 进行Python开发,首先必须安装python,对于linux 或者Mac 用户,python已经预装. 在命令 ...

  3. FreeRADIUS + MySQL 安装配置笔记

    FreeRADIUS + MySQL 安装配置笔记 https://www.2cto.com/net/201110/106597.html

  4. mysql linux查看配置文件my.cnf位置

    原文:mysql linux查看配置文件my.cnf位置 命令: mysql --help | grep 'Default options' -A 1

  5. [mysql]linux mysql 读写分离

    [mysql]linux mysql 读写分离 作者:flymaster qq:908601287 blog:http://www.cnblogs.com/flymaster500/ 1.简介 当今M ...

  6. Memcached+PHP+Mysql+Linux 实践

    首先确保你的服务器环境已经具备了memcached和lamp,关于在Linux上搭建memcahced+php环境可以参考我的另外一篇帖子( http://www.cnblogs.com/codeAB ...

  7. 推荐一些不错的计算机书籍(php c mysql linux等等)

    推荐一些不错的计算机书籍. # PHP<PHP程序设计>(第2版)  --PHP语法和入门最好的书<PHP5权威编程>  --PHP入门后升级书<深入PHP:面向对象.模 ...

  8. Linux14.04安装Mysql Linux公社

    今天在Ubuntu 14.04下安装MySQL,本来是去官网下载安装包来安装的,可是安装之后却不能用,估计是要配置吧,在网上搜了很多的资料,结果还是失败.所以只好在软件源中安装,这样就省去很多不必要的 ...

  9. Navicat for mysql linux 破解方法

    安装方法   进入下载页面:http://www.navicat.com.cn/download/navicat-for-mysql ,选择Linux版本进行下载,下载后解压安装包,运行 start_ ...

随机推荐

  1. java实例练习——基于TCP/IP协议的多客户端通信

    先说一下大概的思路: 应用多线程来实现服务器与多客户端之间的通信 1.服务器端创建ServerSocket,循环调用accept()等待客户端连接: 2.客户端创建一个Socket并请求与服务器端连接 ...

  2. 2017-10-12 NOIP模拟赛

      斐波那契 /* 相同颜色的节点与父亲节点的差相等,且是一个小于它的最大斐波那契数 所以降两个点同时减去小与它的最大斐波那契数,直到两点相等 */ #include<cstdio> ; ...

  3. 关于node中的global,箭头函数的this的一个小问题

    this一直是一个JS中的困扰问题,这次在跑JS精粹的代码的时候顺带发现了Node里面全局变量的问题 var x = 1; var myObj = { x: 2 }; myObj.func = fun ...

  4. 默认约束 default

    default :初始值设置,插入记录时,如果没有明确为字段赋值,则自动赋予默认值.  例子:create table tb6(   id int primary key auto_increment ...

  5. 主键约束 primary key

    主键的作用: 可以唯一标识 一条数据,每张表里面只能有一个主键,.主键特性: 非空且唯一.当表里没有主键的时,第一个出现的非空且为唯一的列,被当成主键. 例子:create table tb3(    ...

  6. DropDownList 不能绑定多个值错误!

    ListItem item = new ListItem("--请选择--",""); ddlstPurchaser.Items.Insert(0, item) ...

  7. 使用shell巧妙高效的批量删除历史文件或目录

    背景:有实时产生的数据按小时分文件保存,如“/data/2013/09/18/14.txt”.现需要保留30天的最新数据,而删除所有其它的历史数据.注意“保留30天的最新数据”,可能不是连续的30天, ...

  8. linux目录权限

    linux中,有三种不同类型的用户可以对文件或目录进行访问:文件所有者,同组用户,其他用户.所有者一般是文件的创建者,文件所有者自动拥有对该文件的读.写和可执行权限.所有者能允许同组用户有权访问文件, ...

  9. string的各种函数(系统学习)

    1.按照面向对象的要求,可以把字符串看作一个对象,设计一个串类加以描述.但是,在一般的情况下不必建立自己的串类,c++标准 在库<string>中给出了类string,提供了丰富的串操作, ...

  10. POI Java 导出数据到Excel

    <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifac ...