建立一个基于FreeRadius的AAA服务器与MySQL和管理与Daloradius
本教程将介绍如何在Ubuntu 8.04 LTS Server Edition上设置带有Wifi身份验证和计费的FreeRadius(1.1.7)服务器与Daloradius的MySQL和Web管理结合使用此操作可以为新手工作。 生产部署也可以通过微调。 但像往常一样,如果发生错误,我不保证任何责任。
(有关基本操作方法,请参考https://www.youcl.com/info/6474 )。
当然,如果您觉得您的所有内容都没有被删除,您可以随时使用这个交钥匙解决方案https://www.youcl.com/how-to-set-up-an-aaa-server- with-ciitix-wifi )
涉及以下步骤:
- 构建Ubuntu 8.04 .debs(用于eap / ttls支持)
- 安装二进制包
- 使用MySQL配置FR
- 使用Daloradius设置Web管理
第1步-构建Ubuntu 8.04。 包装
注意:不需要openssl / tls / ttls(证书等)的人只需从apt-get ubuntu repos获取FR包,并跳到第3步。
在构建FreeRadius Ubuntu 8.04包之前,我们必须安装一些包,这些包是构建过程所必需的。
sudo su -
apt-get install debhelper libltdl3-dev libpam0g-dev \
libmysqlclient15-dev build-essential libgdbm-dev \
libldap2-dev libsasl2-dev libiodbc2-dev libkrb5-dev snmp \
autotools-dev dpatch libperl-dev libtool dpkg-dev libpq-dev \
libsnmp-dev libssl-dev
掌握FreeRadius源码并开始构建如下所示的软件包。
cd ~
apt-get source freeradius
注意:建议您在非生产服务器上携带此构建过程,并将最终二进制包移至生产服务器。 但是如果你知道你在做什么,这不是强制性的。
cd freeradius-1.1.7/
编辑规则文件( debian / rules
):
vi debian/rules
现在搜索这些行:
--without-rlm_eap_tls \ --without-rlm_eap_ttls \ --without-rlm_eap_peap \
并改变它们看起来像这样。
--with-rlm_eap_tls \ --with-rlm_eap_ttls \ --with-rlm_eap_peap \
在同一个文件中也用“--with-openssl”替换文本“--without-openssl”
现在搜索这些行并删除它们。
for pkg in $(shell grep ^Package debian/control | awk '{print $$2}') ; d o \ if dh_shlibdeps -p $$pkg -- -O | grep -q libssl; then \ echo "$$pkg links to openssl" ;\ exit 1 ;\ fi ;\ done
保存更改并退出vi。 现在编辑控件文件( debian / control
):
vi debian/control
搜索行:
Build-Depends: debhelper (>= 5), libltdl3-dev, libpam0g-dev, libmysqlclient15-dev | libmysqlclient-dev, libgdbm-dev, libldap2-dev, libsasl2-dev, libiodbc2-dev, libkrb5-dev, snmp, autotools-dev, dpatch (>= 2), libperl-dev, libtool, dpkg-dev (>= 1.13.19), libpq-dev, libsnmp-dev
并将libssl-dev
附加到此行的末尾,使其看起来像这样。
Build-Depends: debhelper (>= 5), libltdl3-dev, libpam0g-dev, libmysqlclient15-dev | libmysqlclient-dev, libgdbm-dev, libldap2-dev, libsasl2-dev, libiodbc2-dev, libkrb5-dev, snmp, autotools-dev, dpatch (>= 2), libperl-dev, libtool, dpkg-dev (>= 1.13.19), libpq-dev, libsnmp-dev, libssl-dev
保存更改并退出vi。
假设你在这里〜/ freeradius-1.1.7
。 开始构建包装:
dpkg-buildpackage -rfakeroot
注意 :您仍然可能需要一些这些软件包。 apt-get / aptitiude他们并重新运行重建过程。
一段时间(取决于您的系统),您应该在主目录中有一些.deb文件。
freeradius_1.1.7-1build4_i386.deb
freeradius-dbg_1.1.7-1build4_i386.deb
freeradius-dialupadmin_1.1.7-1build4_all.deb
freeradius-iodbc_1.1.7-1build4_i386.deb
freeradius-krb5_1.1.7-1build4_i386.deb
freeradius-ldap_1.1.7-1build4_i386.deb
freeradius-mysql_1.1.7-1build4_i386.deb
freeradius-postgresql_1.1.7-1build4_i386.deb
如果这是您的开发工作站,请将其移动到生产服务器。 (在此设置中,不需要postgresql,ldap,krb5,iodbc,dbg,dialupadmin二进制文件。)
第2步-安装二进制包
dpkg -i freeradius_1.1.7-1build4_i386.deb
dpkg -i freeradius-mysql_1.1.7-1build4_i386.deb
运行后开箱即用配置验证本地用户。
例如:在调试模式下运行半径:
freeradius -X
从另一个shell运行,而freeradius -X正在运行:
radtest abc 123 localhost 1812 testing123
确保在/ etc / freeradius / users
文件中设置了具有密码123
的用户abc
。
Setp 3-使用MySQL配置FR
首先是MySQL位(创建数据库及其管理员用户)。 从你的shell中执行以下操作。
mysqladmin -u root password 123456
mysql -u root -p
在MySQL shell上键入以下内容:
CREATE DATABASE radius;
GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY "radpass";
exit;
导入FreeRadius模式。 示例模式位于此位置: /usr/share/doc/freeradius/examples/mysql.sql.gz
。
Gunzip它在那里:
gunzip -d /usr/share/doc/freeradius/examples/mysql.sql.gz
执行以下操作:
mysql -u root -p radius < /usr/share/doc/freeradius/examples/mysql.sql
要查看db模式,请执行以下操作:
mysql -u root -p
use database radius;
show tables;
quit;
现在编辑你的/etc/freeradius/sql.conf
。
重置用户/密码/数据库参数以反映更改(例如,radius / radpass / radius); 把NAS管理从MySQL开始搜索
readclients = no
并将其更改为
readclients = yes
编辑文件/etc/freeradius/radius.conf
,并将一行“sql”添加到authorize {}
部分( 即向
文件末尾)。 还要向accounting {}
部分添加一条说'sql'的行来告诉FreeRadius在SQL中存储会计记录。 如果要同时使用检测,可以选择将“sql”添加到会话{}
部分。 如果要将所有身份验证尝试记录到SQL,可以选择将'sql'添加到post-auth {}
部分。
以下是授权部分:
authorize { preprocess chap mschap suffix eap sql pap }
会计科:
accounting { detail sql }
要在数据库中插入测试用户,请转到MySQL shell并运行:
mysql -u root -p
mysql> use database radius;
mysql> INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('sqltest', 'Password', 'testpwd');
mysql> select * from radcheck where UserName='sqltest';
mysql> exit
在调试模式下启动半径:
freeradius -X
去另一个shell并运行测试:
radtest sqltest testpwd localhost 1812 testing123
此时,您应该会看到包含类似... Accept-Accept ...
的消息,这表明您的用户正在获得身份验证。
恭喜! 您的FreeRadius + MySQL安装程序正在运行。
4-使用Daloradius设置Web管理
最新的稳定版本是0.9-7版本。
从http://sourceforge.net/projects/daloradius获取它。
tar -zxvf daloradius-0.9-7.tar.gz
cp daloradius-0.9-7/ /var/www -R
下载以下先决条件包:
apt-get install apache2
apt-get install php php-mysql php-pear php-gd php-pear-DB
更改权限和所有权:
chown www-data:www-data /var/www/daloradius-0.9-7 -R
chmod 644 /var/www/daloradius-0.9-7/library/daloradius.conf
Daloradius需要为我们之前创建的radius数据库添加更多的表。
mysql -u root -p radius < /var/www/daloradius-0.9-7/contrib/db/mysql-daloradius.sql
现在,只需调整DaloRadius配置文件中的MySQL数据库信息。
vi /var/www/daloradius-0.9-7/library/daloradius.conf
填写数据库详细信息,下列几个重要参数如下:
........... ...................... CONFIG_DB_ENGINE = mysql CONFIG_DB_HOST = 127.0.0.1 CONFIG_DB_USER = radius CONFIG_DB_PASS = radpass CONFIG_DB_NAME = radius ....................... ............
保存文件并退出。
设置apache服务器。
编辑/etc/apache2/apache2.conf
文件并将其附加到文件的末尾(自定义为您的喜好):
Alias /myradius "/var/www/daloradius-0.9-7/" <Directory /var/www/daloradius-0.9-7/> Options None order deny,allow deny from all allow from 127.0.0.1 allow from <my management system's ip which has a web-browser> </Directory>
保存并退出。
重新启动httpd服务器:
/etc/init.d/apache2 restart
启动Firefox(或任何其他borowser)并转到URL http:// <localhost或managemet系统的ip> / myradius
。
登录管理员进行管理:
用户名: administrator
密码: radius
为了安全起见,首先更改此信息(信息位于操作员表中)。
取Daloradius旋转。 您应该更早地创建了一个sqltest用户。 您还可以尝试从Daloradius前端添加新用户并测试连接。
恭喜你完成了
FreeRadius,MySQL和Daloradius的开发人员都会接受我对你所有努力的谦虚的赞赏。 开源社区,你也摇滚,thanx。
( 注意:在本文中,我没有提到关于设置eap / ttls的任何内容,因此,只需按照下面提到的youcl链接设置证书和eap.conf部分。)
参考文献:
http://wiki.freeradius.org/SQL_HOWTO
http://sourceforge.net/projects/daloradius
https://www.youcl.com/info/6474
http://www.linuxinsight.com/building-debian-freeradius-package-with-eap-tls-ttls-peap-support.html