- 论坛徽章:
- 0
|
本帖最后由 camel2004 于 2011-11-23 15:37 编辑
过去一周对freeradius做了一点东西,参考了网络上牛人的资料,将安装中遇到的问题记录下来作为个人的文案。同时单位里面有一台sinfor的nas成功的实现了认证上网和访问其他资源的认证
1、安装centos5.7
我是用CD刻录下来一共7张盘,服务器比较老,只能安装cd盘,如果是dvd一张盘就够了
将光盘放入光驱,引导系统)出现安装界面后输入回车,用图形方式安装。偷懒一下
安装空间采用系统默认方式分配
配置你的网卡ip地址地址
接下来就是等待系统提示,插入cd光盘就可以了。大约15-20分钟就可以搞定。
2、 更新系统内核到最新
yum update
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY*
3、安装必要的编译环境以及Apahce, PHP, Mysql, 以及php连接mysql库组件
yum install mysql-devel curl php-mysql php-mcrypt compat-libstdc++-33 libtool-ltdl-devel
wget http://ncu.dl.sourceforge.net/pr ... -1.520-1.noarch.rpm
rpm -ivh webmin-1.520-1.noarch.rpm
启动http和mysql数据库
/sbin/service httpd start
/sbin/service mysqld start
关闭selinux
echo "SELINUX=disabled">>/etc/sysconfig/selinux
4、 安装ionCube
wget http://www.dmasoftlab.com/cont/d ... ders_lin_x86.tar.gz
tar zxvf ioncube_loaders_lin_x86.tar.gz
cp -rf ioncube /usr/local/
php -v
查看php版本,并记下来(如5.1版本),下一步根据版本选择
vim /etc/php.ini
然后在最后面输入
zend_extension=/usr/local/ioncube/ioncube_loader_lin_5.1.so
(注意,若php是5.1 radiusmanager页面会出现空白,等一下php进行升级到5.2版本,升级后这里则改为5.2.so)
php -m
查看是否装载成功,然后重启httpd服务
service httpd restart
5、修改网卡的Mac地址
先查看网卡地址
# ifconfig
eth0 Link encap:Ethernet HWaddr xx x x x x x
inet addr:192.168.1.10 Bcast:192.168.1.254 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe6a:682f/64 Scope:Link
用编辑方法修改比较好!
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
将自动识别到的MAC地址注释,MACADDR为更改MAC地址的配置选项,根据破解的地址修改MAC地址
#HWADDR=00:0c:29:6a:68:2f
MACADDR=xx x x x x x
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.1.10
TYPE=Ethernet
GATEWAY=192.168.1.65
更改MAC地址之后必须重新启动计算机
# service network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
6、FreeRadius安装及配置
#解压缩下载的软件包
# tar -zxvf freeradius-server-2.1.8-dmamod-2.tar.gz
# cd freeradius-server-2.1.8
#预编译生成Makefile
# ./configure
#编译生成2进制文件
# make
#拷贝2进制文件和配置文件到他们该去的地方
# make install
#测试FreeRadius是否工作正常
# radiusd -X
...
Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on command file /usr/local/var/run/radiusd/radiusd.sock
Listening on proxy address * port 1814
Ready to process requests.
#修改权限
# chown apache /usr/local/etc/raddb
# chown apache /usr/local/etc/raddb/clients.conf
#修改FreeRadius配置文件和MySQL数据库结合工作
# vi /usr/local/etc/raddb/sql.conf
#按如下内容进行修改(用户名和密码可以自定义)
# Connection info:
server = "localhost"
#port = 3306
login = "radius" #访问MySQL时的用户名
password = "radius123" #访问MySQL时使用的密码
7、建立MySql相关的数据库并作设置。
#登陆MySQL服务器进行用户创建(注意:-p之后紧跟数据库管理员密码,我是空密码填空格,下面密码可以自己设定)
# mysql -u root -p
mysql>CREATE DATABASE radius;
mysql>CREATE DATABASE conntrack;
#CREATE USER后紧跟的为MySQL帐号用户名,IDENTIFIED BY之后紧跟的为密码
mysql>CREATE USER 'radius'@'localhost' IDENTIFIED BY 'radius123';
mysql>CREATE USER 'conntrack'@'localhost' IDENTIFIED BY 'conn123';
mysql>GRANT ALL ON radius.* TO radius@localhost;
mysql>GRANT ALL ON conntrack.* TO conntrack@localhost
8、安装Radius Manager
tar zxvf radiusmanager-3.7.0.tgz
cd radiusmanager-3.7.0-rel/
chmod 755 install.sh
./install.sh
然后出现安装界面,一路回车(除了提问是否安装时间按“Y”外,其他基本上用默认设置)。
执行vim /etc/crontab 命令,加入如下内容(注意下面的12345是默认密码):
02 0 * * * root /usr/bin/php /var/www/html/radiusmanager/rmscheduler.php 12345
设置相关服务开机自动启动,方法是vim /etc/rc.local,同时加入如下内容:
/usr/local/sbin/radiusd
/usr/local/sbin/rmpoller
/sbin/service httpd start
/sbin/service mysqld start
把mod.txt和lic.txt传输到/var/www/html/radiusmanager/下面。
#更改Apache的配置文件如下,一般配置80端口即可
# vi /etc/httpd/conf/httpd.conf
DocumentRoot “/var/www/html/radiusmanager”
DirectoryIndex index.html index.html.var user.php
#重启Apache
# service httpd restart
# service mysqld restart
重启计算机。
# radiusd -X
注意:当 radiusd -X时出现不能启动的现象
#lsof -i:1812 命令查看有重复的radiusd占领1812端口
#kill pid-XXX 结束这个PID进程,然后重启 radiusd -X
#返回如下信息为正常
...
Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on command file /usr/local/var/run/radiusd/radiusd.sock
Listening on proxy address * port 1814
Ready to process requests.
另外开启一个命令窗口执行以下操作
# radtest user 1111 localhost 1812 testing123
#返回如下内容为正常
Sending Access-Request of id 57 to 127.0.0.1 port 1812
User-Name = "user"
User-Password = "1111"
NAS-IP-Address = 127.0.0.1
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=57, length=50
WISPr-Bandwidth-Max-Up = 262144
WISPr-Bandwidth-Max-Down = 262144
Acct-Interim-Interval = 60
9、修改php.ini优化日志输出
# vi /etc/php.ini
#找到error_reporting选项修改如下。
error_reporting = E_ERROR | E_WARNING | E_PARSE
#重启Apache服务
# service httpd restart
10、登录radiusmanager看看是否正常
http://radmius计算机地址/admin.php
默认用户名密码admin/1111
http://radmius计算机地址/user.php
默认用户名密码user/1111
极有可能出现空白页面需要我们做下一步工作
11、将CentOS 下 PHP 从 5.1.x升级到5.2.x
第一步,先查看php组件信息:(很清楚是5.1)
# rpm -qa |grep php
php-common-5.1.6-15.el5.i386
php-cli-5.1.6-15.el5.i386
php-5.1.6-15.el5.i386
php-pdo-5.1.6-15.el5.i386
php-bcmath-5.1.6-15.el5.i386
php-ldap-5.1.6-15.el5.i386
php-devel-5.1.6-15.el5.i386
php-gd-5.1.6-15.el5.i386
php-xml-5.1.6-15.el5.i386
php-mbstring-5.1.6-15.el5.i386
php-mysql-5.1.6-15.el5.i386
php-dba-5.1.6-15.el5.i386
第二步,我们添加官方新增的开发库,先新建一个repo文件
# vim /etc/yum.repos.d/CentOS-Testing.repo
复制以下内容,保存并退出。
# CentOS-Testing:
# !!!! CAUTION !!!!
# This repository is a proving grounds for packages on their way to CentOSPlus and CentOS Extras.
# They may or may not replace core CentOS packages, and are not guaranteed to function properly.
# These packages build and install, but are waiting for feedback from testers as to
# functionality and stability. Packages in this repository will come and go during the
# development period, so it should not be left enabled or used on production systems without due
# consideration.
[c5-testing]
name=CentOS-5 Testing
baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
includepkgs=php*
第三步,通过官方新增的开发库,对我们自己的服务器php组件进行升级。
# yum update
第四步,当你看到这里时,一切已经顺利的快完成啦。上一步正常结束之后,我们重启一下apache服务器:
# service httpd restart
查看升级后的程序版本。
# rpm -qa |grep php
php-cli-5.2.6-2.el5s2
php-mbstring-5.2.6-2.el5s2
php-devel-5.2.6-2.el5s2
php-pdo-5.2.6-2.el5s2
php-gd-5.2.6-2.el5s2
php-dba-5.2.6-2.el5s2
php-common-5.2.6-2.el5s2
php-bcmath-5.2.6-2.el5s2
php-xml-5.2.6-2.el5s2
php-pear-1.5.1-2.el5s2
php-ldap-5.2.6-2.el5s2
php-5.2.6-2.el5s2
php-mysql-5.2.6-2.el5s2
# php -v
PHP 5.2.6 (cli) (built: Sep 15 2008 20:42:05)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
1、运行yum update提示未个组件出错,(由于之前不清楚怎么升5.2,所以其中一个组件的版本就先到了5.2。)
解决办法:
先用yum将组件移除,到最后一步,再重新安装即可。
2、ZendOptimizer提示出错啦!!我的ZendOptimizer版本是3.3.9的不用安装,解压就可以使用的。
解决办法:
#vi /etc/php.d/zend.ini
添加以下代码:
; Enable Zend Optimizer extension module
;zend_optimizer.optimization_level=15
zend_extension=/usr/local/Zend/data/5_2_x_comp/ZendOptimizer.so
; zend_extension=/usr/local/Zend/data/5_1_x_comp/ZendOptimizer.so
12、再一次修改php.ini
vim /etc/php.ini
然后在最后面输入为
zend_extension=/usr/local/ioncube/ioncube_loader_lin_5.2.so
(注意,若php是5.1 radiusmanager页面会出现空白,php进行升级到5.2版本,升级后这里则改为5.2.so)
php -m
查看是否装载成功,然后重启httpd服务
service httpd restart
13、安装phpMyAdmin 管理mysql
wget http://packages.sw.be/rpmforge-r ... 6-1.el5.rf.i386.rpm
rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
yum install phpmyadmin
对phpMyAdmin进行一些简单的配置。由于phpMyAdmin安装后,默认是只能从本地服务器上访问的,我们需要修改 phpMyAdmin配置文件,使得远程主机或客户端也能访问它。修改/etc/httpd/conf.d/phpmyadmin.conf,把 <Directory “/usr/share/phpmyadmin”> 这个节点的配置注释掉:
vi /etc/httpd/conf.d/phpmyadmin.conf
#
# Web application to manage MySQL
#
<Directory “/usr/share/phpmyadmin”>
Order Deny,Allow
Deny from all
Allow from 192.168.1.10 (自己可以添加访问的地址)
</Directory>
Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin
把phpMyAdmin的验证方式从默认的cookie方式改成http:
vi /usr/share/phpmyadmin/config.inc.php
[...]
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = ‘http’;
[...]
打开 http://192.168.1.10/phpmyadmin 开始用户为:root 密码:空 进去后赶快修改掉。
14、汉化Radius Manager
wget ftp://angela-ctce.3322.org/Chinese-3.6.1.zip
或者wget ftp://ftp:ftp@angela-ctce.3322.org:2121/Chinese-3.6.1.zip
下载语言文件。
unzip -o Chinese-3.6.1.zip -d /var/www/html/radiusmanager/lang/
在浏览器登陆Radius Manager的管理页面:
http://radmius计算机地址/admin.php
查看管理面板(默认用户名密码admin/1111)
15、安裝 Daloradius
wget http://jaist.dl.sourceforge.net/ ... radius-0.9-8.tar.gz
#tar zxvf daloradius-0.9-8.tar.gz
#cp -R daloradius-0.9-8 /var/www
设定 Daloradius
#chown -R apache:apache /var/www/daloradius-0.9-8
#chmod 644 /var/www/daloradius-0.9-8/library/daloradius.conf.php
在radius数据库中加入daloradius的表.(注意!导入表时与前面radiusmanger的表有重复现象不能导入进去)
登录到radius数据库,删除冲突的表
#http://192.168.1.10/phpmyadmin
然后再导入daloradius的表
#mysql -u root -p radius < /var/www/daloradius-0.9-8/contrib/db/mysql-daloradius.sql
设定 daloradius.conf.php
#vi /var/www/daloradius-0.9-8/library/daloradius.conf
$configValues['FREERADIUS_VERSION'] = '1';
$configValues['CONFIG_DB_ENGINE'] = 'mysql';
$configValues['CONFIG_DB_HOST'] = '127.0.0.1';
$configValues['CONFIG_DB_USER'] = 'radius'; --> radius用户名
$configValues['CONFIG_DB_PASS'] = 'radius23'; --> radius密码
$configValues['CONFIG_DB_NAME'] = 'radius'; --> radius数据库
在apache中 加虚拟目录( Alias )
#vi /etc/httpd/conf/httpd.conf
Alias /daloradius "/var/www/daloradius-0.9-8/"
<Directory /var/www/daloradius-0.9-8/>
Options None
order deny,allow
allow from all
</Directory>
重新启动HTTPD:
service httpd restart
登录
http://192.168.1.10/daloradius/
用戶: administrator
密碼: radius
16、daloradius错误问题的解决
在radius数据库中缺少radiusgruop表或者 usergroup表会报错,自己可以创建一个这样的表,一般就不会报错
17、架构freeradius遇到故障处理办法
出现故障:rad_recv: Access-Reject packet from host 127.0.0.1:1812, id=231, length=38
修改配置文件:/etc/freeradius/radiusd.conf
把authorize、accounting、session、post-auth几个部分中sql一句前的注释取消掉,启用mysql认证。
更改users.conf
vim /usr/local/etc/raddb/users.conf
注释掉users文件中的如下内容:
DEFAULT Auth-Type = System
Fall-Through = 1
测试成功
18、与sangfor—nas 进行上网联网认证的测试。。。。
设置sangfor 中设置参数 略
在radiusmanager增加一个sangfor nas,在增加测试用户名或者在daloradius中增加测试用户。
打开浏览器跳出认证页面,输入测试用户名和密码,通过后页面转到http://www.google.com.hk 页面
至此完成整个架构工作。
等一下继续。。。。 |
|