Freeradius系统的安装与管理

在CentOS 6.5中安装freeredius:

yum -y install httpd httpd-devel mysql mysql-server mysql-devel
yum -y install php php-devel php-mysql php-common php-gd php-mbstring php-mcrypt php-xml
/etc/init.d/httpd start
/etc/init.d/mysqld start
chkconfig httpd on
chkconfig mysqld on
mysqladmin -u root password 'newpassowrd'

使用yum安装freeradius,这样安装的版本会略低一点。

yum install -y freeradius freeradius-mysql freeradius-utils

这是freeradius随系统启动。

chkconfig  radiusd on
service radiusd start

可以通过新开一个终端窗 口,然后执行cat /var/log/radius/radius.log,去查看启动日志看有没有错误。

以下开始配置freeradius了.

cp /etc/raddb/clients.conf /etc/raddb/clients.conf.bak 
grep -v \# /etc/raddb/clients.conf.bak | grep -v \^$ >/etc/raddb/clients.conf
vi /etc/raddb/clients.conf 

内容配置为:

client localhost {
        ipaddr = 127.0.0.1
        secret          = testing123
        require_message_authenticator = no
}

需要注意,上面配置的127.0.0.1主要用于测试,将来真正的客户端要按照下面的信息进行补充

#将来你的真正的raidus计费客户端如routeros等需要在这里配置ip信息,例如 
client x.x.x.x{  #这里的x.x.x.x就是你的routeros服务器内网口ip 
   ipaddr=x.x.x.x #routeros内网ip 
   secret=xxxxxxxxxx    #你自己定义的密码 
   shortname=ros 
} 
#!/bin/bash

# enable snd-soc-wmt-fm34
sed -i '/snd-soc-wmt-fm34/s/^#//' fs_patch/load_drivers.sh

source release_Common.sh

# disable snd-soc-wmt-fm34 back
sed -i '/snd-soc-wmt-fm34/s/^/#&/' fs_patch/load_drivers.sh
cp /etc/raddb/sql/mysql/admin.sql /etc/raddb/sql/mysql/admin.sql.bak
grep -v ^# /etc/raddb/sql/mysql/admin.sql.bak | grep -v \^$  > /etc/raddb/sql/mysql/admin.sql
vi /etc/raddb/sql/mysql/admin.sql

内容改成下面这个样子的 ;

CREATE USER 'radius'@'localhost'; 
SET PASSWORD FOR 'radius'@'localhost' = PASSWORD('radpass'); 
GRANT SELECT ON radius.* TO 'radius'@'localhost'; 
GRANT ALL ON radius.* TO 'radius'@'localhost';  

执行命令,mysql -u root -p回车后输入mysql的root管理员帐号密码,然后

source /etc/raddb/sql/mysql/admin.sql;
create database radius;
use radius;
source /etc/raddb/sql/mysql/schema.sql;
source /etc/raddb/sql/mysql/nas.sql;
source /etc/raddb/sql/mysql/ippool.sql;
flush privileges;
quit;

然后在linux终端里面执行

vi /etc/raddb/radiusd.conf

使劲往下翻页到module那块以后去掉

$INCLUDE sql.conf
$INCLUDE sql/mysql/counter.conf

前面的#后保存文件退出vi编辑器

然后

vi /etc/raddb/sql.conf

去除readclients变量的注释信息。

readclients = yes

然后

vi /etc/raddb/sites-enabled/default

找到authorize,accounting,session这几个配置,将里面的sql全部启用就行了,就是把sql前面的#去掉就ok了。另外在authorize里面添加以下monthlytrafficcounter 这个按月统计配置项(我这里加了这个按月统计后出错了)。

到了这就他妈的终于配置完了,下面就是插入一条数据到mysql数据库中真实的测试一下了:

mysql -u root -p $ROOT_PASSWORD -e "INSERT INTO radius.radcheck (UserName, Attribute, Value) VALUES ('user1', 'Password','password1');"

service radiusd restart

radtest user1 password1 localhost 1812 testing123

成功的样子就是这样的:

[root@localhost raddb]# radtest user1 password1 localhost 1812 testing123 
Sending Access-Request of id 155 to 127.0.0.1 port 1812 
        User-Name = "user1" 
        User-Password = "password1" 
        NAS-IP-Address = 127.0.0.1 
        NAS-Port = 1812 
        Message-Authenticator = 0x00000000000000000000000000000000 
   rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=155, length=20 

安装与daloradius

从sf.net下载最新版的daloraidus,然后

tar zxvf daloradius-0.9-9.tar.gz

cp  -R daloradius-0.9-9 /var/www

cd /var/www

mv daloradius-0.9-9 daloradius

mysql -u root -p

use radius

source /var/www/daloradius/contrib/db/mysql-daloradius.sql



vi /var/www/daloradius/library/daloradius.conf.php

把链接数据库的密码改对,就是用户名是前面创建的radius,密码是radpass

$configValues['CONFIG_DB_USER'] = 'radius'; 
$configValues['CONFIG_DB_PASS'] = 'radpass'; 

然后

vi /etc/httpd/conf/httpd.conf

在最后增加以下内容

    Alias /myradius "/var/www/daloradius/" 
    <Directory /var/www/daloradius/> 
      Options None 
      order deny,allow 
      allow from all 
    </Directory> 

配置完成后 service httpd restart

然后开浏览器访问http://localhost/myradius的时候可以打开登录界面,输入用户名administrator,密码radius以后提交登录后界面无反应,cat /etc/httpd/logs/error_log 发现提示

    PHP Fatal error:  Class 'DB' not found in /var/www/daloradius/library/opendb.php on line 86, referer: http://localhost/myradius/login.php 

这是缺少php相关扩展造成的,还得TMD继续折腾

按照http://blog.sina.com.cn/s/blog_541a3cf10101hjth.html 这篇文章说的,增加第三方源

更新yum源
有些必须包是不在默认标准库里,安装前的必要条件,需要添加RPM forge资料库

#wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm 
#wget http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt 
#rpm --import RPM-GPG-KEY.dag.txt 
#rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm 

Html代码 收藏代码

安装PHP及扩展 
#yum install php php-mysql php-gd php-ldap php-xml php-mbstring 
安装PEAR相关 
#yum install php-pear php-pear-DB 
#pear channel-update pear.php.net 
#pear upgrade-all 

都安装完以后service httpd restart ,再次登录daloradius就可以了。
接下来是改防火墙规则,开放80端口

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 1812 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 1813 -j ACCEPT 
/sbin/iptables -I INPUT -p tcp --dport 1814 -j ACCEPT 
/etc/rc.d/init.d/iptables save #保存配置
/etc/rc.d/init.d/iptables restart #重启服务

使用freeradius中的测试用户验证是否安装成功

通过yum安装的freeradius时,所有的配置文件都存放在/etc/raddb路径下。关于用户的配置文件为/etc/raddb/users。如果将来将freeradius与mysql数据库关联上后,这个配置文件就不起作用了。
1. 启用测试用户
打开配置文件:

vi /etc/raddb/users

然后找到下面这段文字,将这些文字前面的#注释符删掉,然后保存文件。这段文字配置的用户的用户名为steve,密码为testing。

#steve  Cleartext-Password := "testing" 
#       Service-Type = Framed-User, 
#       Framed-Protocol = PPP, 
#       Framed-IP-Address = 172.16.3.33, 
#       Framed-IP-Netmask = 255.255.255.0, 
#       Framed-Routing = Broadcast-Listen, 
#       Framed-Filter-Id = "std.ppp", 
#       Framed-MTU = 1500, 
#       Framed-Compression = Van-Jacobsen-TCP-IP 

2. 启动freeradius
通过radiusd -X来做首次启动,注意首次启动必须是root账户才行,还有注意那个X是大写的,如果看到下面的提示应该就是启动成功了。

Listening on authentication address * port 1812 
Listening on accounting address * port 1813 
Listening on command file /var/run/radiusd/radiusd.sock 
Listening on authentication address 127.0.0.1 port 18120 as server inner-tunnel 
Listening on proxy address * port 1814 
Ready to process requests. 

3. 测试用户连接情况
然后另外开一个终端运行

radtest steve testing localhost 1812 testing123

进行测试,当出现rad_recv: Access-Accept的提示时,说明freeradius已经安装成功。正常情况下的测试提示应该如下:

rad_recv: Access-Accept

4. 测试过程收尾

测试无问题以后记得再次用户配置文件,将启用的用户配置全部注释掉,然后关闭radiusd的调试进程,

daloradius异常情况分析

在浏览器中输入http://localhost/myradius,打开登录界面,输入用户名和密码,提交登录后界面无反应,查看HTTP的错误日志 /etc/httpd/logs/error_log,发现如下提示:

PHP Fatal error:  Class 'DB' not found in /var/www/daloradius/library/opendb.php on line 86, referer: http://localhost/myradius/login.php 

这是缺少php的相关扩展造成的,主要是pear-DB扩展,以上的安装过程中已经解决了这个问题。

猜你喜欢

转载自blog.csdn.net/xkjcf/article/details/78713230