freeradius简介:

freeradius一般用来进行账户认证管理,记账管理,常见的电信运营商的宽带账户,上网账户管理,记账,都是使用的radius服务器进行鉴权记账的。

daloradius简介:

一个FreeRADIUS的Web挂历程序。

准备工作(我这里是虚拟机):

主机地址为172.17.250.177

1,一台Centos系统的计算机#地址是172.17.250.189

2,一台ROS#第一个地址是172.17.250.190 第二个地址是内网地址。

3,一台客户机#地址是内网地址

第一步,安装Freeradius

1,安装需求包

yum -y install httpd mysql mysql-devel mysql-server php php-mysql php-gd php-imap php-odbc php-pear php-xml php-xmlrpc
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel

2,简单设置下http和mysql

chkconfig httpd on             #将http设置永久开启
chkconfig mysql on            #将mysql设置永久开启
/etc/init.d/httpd start           #启动http
/etc/init.d/mysqld start        #启动mysql
mysqladmin -u root password yuzhijian              #设置mysql的root密码是yuzhijian
vi /var/www/html/test.php#建立php测试文件,保存退出 
<?php  phpinfo();  ?> 
setenforce 0 #关闭selinux
service iptables stop#关闭防火墙

用主机访问http://172.17.250.189/test.php 

Python 解析pdb python 解析freeradius_mysql

出现这个页面就可以了。

第二步,安装raidus,并配置mysql

1,安装并测试raidus

yum install -y freeradius freeradius-mysql freeradius-utils      #安装radius  
vi /etc/raddb/users      #配置本地用户测试
radius  testuser Cleartext-Password := "testpassword"     #在文件的最后一行加入 ,保存退出  
/etc/init.d/radiusd restart       #重启radius服务  
radtest testuser testpassword localhost 1812 testing123   
#测试radius服务器的配置,如果看到下面内容,说明服务器配置成功

Python 解析pdb python 解析freeradius_FreeRadius_02

2,radius配置mysql验证

cp /etc/raddb/clients.conf /etc/raddb/clients.conf.bak      #备份radius的客户端配置文件  
grep -v \# /etc/raddb/clients.conf.bak > /etc/raddb/clients.conf    #将clients.conf.bak 中的注释行过滤掉,并输出到clients.conf中 
vi /etc/raddb/clients.conf      #编辑客户端文件,内容如下

Python 解析pdb python 解析freeradius_mysql_03

vi /etc/raddb/users   #编辑用户文件,注释掉刚才添加的测试用户      
# testuser Cleartext-Password := "testpassword"    #将该测试用户注释掉
cp /etc/raddb/sql/mysql/admin.sql /etc/raddb/sql/mysql/admin.sql.bak    #备份admin.sql文件  
grep -v ^# /etc/raddb/sql/mysql/admin.sql.bak > /etc/raddb/sql/mysql/admin.sql     #将admin.sql.bak 中的注释行过滤掉并输出到admin.sql中 
vi /etc/raddb/sql/mysql/admin.sql         #修改admin.sql文件,内容如下
CREATE USER 'radius'@'localhost';   
SET PASSWORD FOR 'radius'@'localhost' = PASSWORD('radpass');  
GRANT ALL ON radius.* TO 'radius'@'localhost';   
#以上内说明“ 数据库为radius,密码为radpass”如果要自己设置,设置完成后还要修改sql.conf把密码改为自己设置的
vi /etc/raddb/sql.conf #找到                          
#login = "radius"   ---> 登录用户名,可以在这里修改登录radius数据库的用户名                          
#password = "radpass"   --->登录用户密码 ,可以在这里修改登录radius数据库的密码

3,导入radius数据库 

mysql -u root -p                         #登录mysql数据库,输入之前设置的root密码。   
create database radius;             # 创建radius表 
exit;       #退出mysql数据库
mysql -u root -p radius < /etc/raddb/sql/mysql/admin.sql    
#输入这行的时候,可能会出现
“   ERROR 1396 (HY000) at line 2: Operation CREATE USER failed for 'radius'@'localhost'   ”

这个表示radius帐号已经存在,可以不用理会。

mysql -u root -p radius < /etc/raddb/sql/mysql/schema.sql   #导入schema.sql 文件  
mysql -u root -p radius < /etc/raddb/sql/mysql/nas.sql  #导入nas.sql文件  
mysql -u root -p radius < /etc/raddb/sql/mysql/ippool.sql   #导入ippool.sql文件 
mysql -u root -p #登录mysql数据库。
flush privileges; #使刚才导入的配置生效 
#

使刚才导入的配置生效

 



vi /etc/raddb/radiusd.conf            #编辑radius配置文件,使其使用sql认证,去掉前面的#号
$INCLUDE sql.conf  #保存退出
vi /etc/raddb/sql.conf  #修改sql.conf,只修改下面的内容
server = "localhost"          
port = 3306          
login = "radius"          
password = "radpass"          
radius_db = "radius"          
readclients = yes #保存退出

4,修改认证的方式。

vi /etc/raddb/sites-enabled/default   #编辑radius默认的认证文件
 # authorize  {     --->找到这一行,将其注释掉,并把结束的“}”也注释掉 # }  
# accounting {   ---->找到这一行,将其注释掉,并把结束的“}”也注释掉 # }                        
# session {         ---->找到这一行,将其注释掉,并把结束的“}”也注释掉  # }                        
#然后到文件的末尾添加如下内容,保存退出 
authorize {  preprocess
 chap 
mschap 
suffix 
eap 
sql 
pap }  
accounting {  detail
 sql }   
session {  radutmp 
sql }

5,插入测试数据 。

mysql -u root -p     #登录mysql数据库 
use radius;           #使用radius库 
 INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('user1', 'Password','password1');   #插入测试帐号“user1”和“password1” exit;      #退出mysql数据库 
radtest user1 password1 localhost 1812 testing123   #用测试帐号测试一下radius的mysql认证是否成功,如果看到下图的内容,则说明已经配置成功了

Python 解析pdb python 解析freeradius_Python 解析pdb_04

第三步,安装daloradius。

wget http://download.pear.php.net/package/DB-1.7.14RC2.tgz  #下载软件包
pear install DB-1.7.14RC2.tgz     #安装软件包
wget  http://nchc.dl.sourceforge.net/project/daloradius/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz   #下载软件包
tar -zxvf daloradius-0.9-9.tar.gz   #安装软件包  
mv daloradius-0.9-9 daloradius    #将文件daloraidus-0.9-9重命名 
cp -rf daloradius/* /var/www/html/  #复制daloradius/*所有文件到html下   
chown apache:apache -R /var/www/html/    #将html文件夹极其下面的所有文件设置为apache组和apache用户所拥有   
chmod 644 /var/www/html/library/daloradius.conf.php      #将daloraidus.conf.php文件的权限设置为rw-r--r--
cd /var/www/html/contrib/db/     #进入/var/www/html/contrib/db/目录  
mysql -u root -p radius < mysql-daloradius.sql   #将mysql-daloradius.sql  导入到mqsql中radius数据库中 
vi /var/www/html/library/daloradius.conf.php    #修改daloradius.conf.php ,将以下涉及到的内容更改,其他的别动

Python 解析pdb python 解析freeradius_daloRADIUS_05

$configValues['CONFIG_MAINT_TEST_USER_RADIUSSECRET'] = 'testing123';#最重要这条·,保存退出。
touch /tmp/daloradius.log     #建立daloraidus的日志文件  
chown apache.apache /tmp/daloradius.log    #将其文件设置为apache组及apache用户拥有

安装完后打开Http://172.17.250.189 就可以看到daloradius了,登录的用户名密码为  username: administrator password: radius

Python 解析pdb python 解析freeradius_daloRADIUS_06

第四步,进行ROS PPPOE验证

1,添加RADIUS客户端:

vi /etc/raddb/clients.conf#新加一个客户端

Python 解析pdb python 解析freeradius_mysql_07

2,ROS下PPPOE服务器配置

ip pool add name=pppoe ranges=192.168.2.2-192.168.2.254 #新建PPPOE客户端IP池              
 ppp profile set default local-address=pppoe remote-address=pppoe dns-server=8.8.8.8,4.4.4.4 #新建PPPOE模板
 interface pppoe-server server add service-name=pppoe interface=ether2 authentication=pap \default-profile=default one-session-per-host=yes keepalive-timeout=10 disabled=no#开启并设置PPPOE服务器
 ppp secret add name=user password=passwd service=pppoe #使用本地pap验证,新建PPPOE用户

3,ROS端配置使用RADIUS验证:

ppp aaa set use-radius=yes #允许使用RADIUS认证     
 radius add address=192.168.1.22 secret=root service=ppp authentication-port=1812 \
 accounting-port=1813 disabled=no  #设置RADIUS服务器地址,验证端口,验证服务
 radius incoming set accept=yes port=1700  #允许RADIUS端断开用户PPP连接

4.daloRADIUS端配置,新建NAS,即ROS客户端:

Management——Nas

Python 解析pdb python 解析freeradius_ROS_08

5,新建用户,即PPPOE客户:

Management——users

Python 解析pdb python 解析freeradius_ROS_09

6,下面的xp客户机连接ros拨号

Python 解析pdb python 解析freeradius_ROS_10