freeradius 性能优化
Posted 坐看云起时
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了freeradius 性能优化相关的知识,希望对你有一定的参考价值。
目前freeradius 使用线程池多线程的方案处理,radius认证报文,自己内部维持一个状态机。网络模型为监听1812的认证端口,以及1813的计费端口。
linux搭建freeradius服务器
相关网站
Freeradius下载链接 https://github.com/FreeRADIUS/freeradius-server/tree/v3.0.x
系统版本: CentOS Linux release 7.3.1611 (Core)
freeradius:https://github.com/FreeRADIUS/freeradius-server/archive/v3.0.x.zip
我的系统上面什么都没有安装,这里要下载一些需要的包,这里说明下,我使用yum安装php RPM包的时候会自动安装apache服务,所以这里我就不安装apache了,如果你们的php RPM包中没有Apache就用yum install -y httpd安装下。
yum install -y php php-gd wget gcc gcc-c++ unzip php-mysql libtalloc-devel freeradius-mysql
daloRADIUS管理界面需要用到php-pear-DB,但是centos默认的yum源中没有这个包,所以这里使用go-pear来进行安装。
wget http://pear.php.net/go-pear.phar
php go-pear.phar
这里我们选择路径安装,直接回车安装在默认路径就可以了
vi /etc/profile 在最后一行添加下面的配置(在vi视图中使用大写的GG可以直接到最后一行)
export PATH=/usr/bin/pear:$PATH
pear的系统环境就添加好了,保存退出
source /etc/profile
重新加载系统环境
pear install db
这样php-pear-DB包就安装好了
这里询问要修改/etc/php.ini文件,这里我们选择y,让其修改php配置文件
在防火墙上面放行我们需要用到的端口,freeradius需要用到1812和1813端口,1812端口用来认证,1813端口用来计费
还需要放行80端口或443端口
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --permanent --zone=public --add-port=1812/tcp
firewall-cmd --permanent --zone=public --add-port=1813/tcp
firewall-cmd --reload
firewall-cmd --state
可以用来查看防火墙是否是启用的
下面安装mysql数据库
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server mysql-devel
service mysqld start
启动mysql数据库
/usr/bin/mysqladmin -u root password "123456"
用来设置mysql初始密码
到此LAMP平台和freeradius和dalofreeradius管理平台所需要的包都安装完成了,接下来就开始安装freeradius和dalofreeradius。
wget https://github.com/FreeRADIUS/freeradius-server/archive/v3.0.x.zip
unzip v3.0.x.zip
cd freeradius-server-3.0.x/
./configure --with-openssl=no && make && make install
cd /usr/local/etc/raddb/
vi /usr/local/etc/raddb/users
将箭头处的#去掉。然后保存退出。
运行 radiusd -X 调试freeradius ,在开一个窗口
radtest steve testing localhost 1812 testing123
运行上面的命令,如果看到上图的中的提示,说明freeradius搭建成功了。
这样用文件来管理设备,会十分的复杂和难以管理,所以这里我们使用一个web图形化管理和用mysql数据库来存储数据
由于dalofreeradius图形化管理有点问题,所以这里要修改下freeradius的数据库
vi /usr/local/etc/raddb/mods-config/sql/ippool/mysql/schema.sql
为所有字段加上默认值。
cd /usr/local/etc/raddb/mods-config/sql/main/mysql
mysql -uroot -p
mysql> cerate database radius;
mysql> use radius;
mysql> source /usr/local/etc/raddb/mods-config/sql/main/mysql/schema.sql;
freeradius 数据库就添加完了,接下来要设置freeradius关联mysql数据库
vi /usr/local/etc/raddb/sites-enabled/default
编辑default文件,利用vi文字搜索将所有files和radutmp在前面加#号注释掉,在搜索sql文本,将sql文本全部取消注释,取消#号就可以了。
将rlm_sql_null修改为rlm_sql_mysql
将数据库设置注释(#)取消掉,然后在添加数据库信息
将注释(#)取消,如果注释该配置,表示从clients文件中读取nas数据,取消该注释,表示从mysql数据库中读取nas数据
ln -s /usr/local/etc/raddb/mods-available/sql /usr/local/etc/raddb/mods-enabled/sql
由于freeradius需要读取mods-enabled目录下的sql文件,而mods-enabled没有这个sql文件,所以这里从mods-available中把sql做一个链接,也可以在复制sql文件到mods-enabled,但是如果需要修改sql文件,就需要修改两个目录中的sql文件,所以这里我用了一个链接,只需要修改一个sql文件即可
cp /usr/local/sbin/rc.radiusd /etc/init.d/radiusd
将freeradius启动文件复制到/etc/init.d/目录中
到此freeradius就安装完成了,下面来安装daloradius 管理界面
cd /var/www/html
wget https://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 dalor
vi /var/www/html/daloradius/library/daloradius.conf.php
添加数据库信息
第一处标记出来的是proxy.conf文件目录,该文件在freeradius服务的根目录中
第二处标记出来的是dolaradius安装目录,我将dolaradius放在了/var/www/html目录中
看到dolaradius有报错,但是用户还是添加成功了,这是因为dolaradius非常的老了,已经好久没更新,mysql数据库有某些地方改动增加安全性,所以这里要对mysql数据库进行一些修改
vi /etc/my.cnf
将STRICT_TRANS_TABLES配置删除即可。
重启mysql数据库
service mysqld restart
现在在新建用户就不会出现错误了
到此dolaradius也安装完成了
本文出自 “技术交流” 博客,转载请与作者联系!
以上是关于freeradius 性能优化的主要内容,如果未能解决你的问题,请参考以下文章