CentOS 6.2 yum 安装配置Freeradius 3A认证
最近帮助朋友做服务器运维,需要一个3A认证服务,我选得freeradis,第一次用,也不太明白,默默索索就这样安装完成了。这里做个记录分享给大家。
1.首先安装LAMP环境
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#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 #service httpd start #service mysqld start #chkconfig httpd on//把httpd加入开机启动 #chkconfig mysqld on//把mysqld加入开机启动 #mysqladmin -uroot -p123456//给mysql 设置root的密码。这里密码设置为123456 #vim /var/www/html/index.php//测试下lamp环境是否正常安装 //输入<? phpinfo();?>保存 #service httd restart //打开浏览器访问http://localhost出来php信息就证明你的php安装好了。 如果中间有安装失败的 //使用yum remove xxx 来卸载掉 //然后#find / -name 'xxx' //查找是否有剩余,都删掉,重启一下,重新yum安装即可。基本上不会有问题的。 |
出现这个页面就表示没问题了
1 2 3 4 |
#yum -y install freeradius freeradius-mysql freeradius-utils//安装Freeradius服务端 还有mysql模块 工具包 #service radiusd start//启动freeradius服务 #chkconfig radiusd on//添加开机启动 测试Freeradius |
PS:注意这里调试的时候需要把服务关掉的否则会提示端口1812(udp端口)占用
1 2 3 4 5 6 7 8 9 10 11 12 |
#vim /etc/raddb/users steve Cleartext-Password := "testing"//大概在76行左右,将这行行首注释去掉 ,这个就是测试帐号和密码 #radiusd -X //大写X以debug调试模式运行,然后会在当前终端显示一系列信息最后一部分是 ... adding new socket proxy address * port 54261 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. 然后在当前服务器再开一个终端,执行 <span style="line-height: 24.049999237060547px; text-indent: 2em; font-family: 'Microsoft YaHei', 微软雅黑, Arial, 'Lucida Grande', Tahoma, sans-serif; font-size: 13px;">#radtest steve testing localhost 0 testing123</span> |
PS:解释下命令的含义,radtest是测试radtest认证的命令,如果提示找不到该命令说明你的freeradius-utils没安装,yum安装一下即可;steve是用户名 testing是密码,刚才在user里面配置好了 localhost是radius的服务器地址; 0是nas端口 ;testing123是密钥,这个密钥信息在/etc/raddb/clients 里面
看到 "Access-Accept packet" 表示成功了,"Access-Reject" 表示失败了。
3.配置freeradius 支持sql
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
vim /etc/raddb/radiusd.conf $INCLUDE sql.conf #调用sql.conf配置,去掉行首的# 大概在700行左右 vim /etc/raddb/sites-enabled/default 找到以下两个模块,添加sql支持,authorize 大概在69行,将177行的sql前面的#去掉;accounting 大概在378行,去掉sql前的#,大概在406行 authorize { preprocess chap mschap digest suffix eap { ok = return } files sql expiration logintime pap } accounting { detail unix radutmp sql exec attr_filter.accounting_response } |
4.配置freeradius 跟mysql的连接
1 2 3 4 5 6 7 8 |
#vim /etc/raddb/sql.conf database = "mysql" driver = "rlm_sql_${database}" server = "localhost" #port = 3306 login = "radius" #用户名 建议用root,因为后面可能会有很多关于权限的问题,出问题比较麻烦,所以直接用root了。 password = "radiupass" #对应用户的密码。用root 密码我们在第一步设置为123456. radius_db = "radius" |
5.安装DaloRADIUS(web管理端)
1 2 3 4 |
#wget http://downloads.sourceforge.net/project/daloradius/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz #tar -zvxf daloradius-0.9.9.tar.gz #mv daloradius-0.9-9 /var/www/html/daloradius #chown -R apache:apache /var/www/html/daloradius |
6.登录mysql,导入sql脚本
1 2 3 4 5 6 7 8 |
#mysql -u root -p123456 #mysql>create database radius; //如果在第四步里面用的root下面两步不用执行,直接exit即可 #mysql>grant all on radius.* to radius@localhost identified by "radpass"; #mysql>flush privileges; #mysql>exit; #mysql -uroot -p radius < /var/www/html/daloradius/contrib/db/mysql-daloradius.sql #mysql -uroot -p radius < /var/www/html/daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql |
7.配置DaloRADIUS
1 2 3 4 5 6 7 8 9 |
#vim /var/www/html/daloradius/library/daloradius.conf.php $configValues['CONFIG_DB_ENGINE'] = 'mysql'; $configValues['CONFIG_DB_HOST'] = 'localhost'; $configValues['CONFIG_DB_PORT'] = '3306'; #同样下面两行如果第四步中用的root下面要修改为root的用户和密码 $configValues['CONFIG_DB_USER'] = 'radius'; $configValues['CONFIG_DB_PASS'] = 'radpass'; $configValues['CONFIG_DB_NAME'] = 'radius'; $configValues['CONFIG_PATH_DALO_VARIABLE_DATA'] = '/var/www/daloradius/var'; #如在别目录需修改 |
8.添加客户端:
1 2 3 4 5 6 |
#vim /etc/raddb/clients.conf #下面是我自己添加的 也可以用默认的 默认是localhost client 192.168.0.172 { secret = rorot shortname = ROS } |
打开浏览器输入http://ip/daloradius 用户名administrator 密码radius
PS:这里有几个问题 是我安装过程遇到的
问题一:
输入密码页面是空白,查看/var/log/httpd/error.log 发现有一个错误
Mon Aug 01 18:25:12 2014] [error] [client 192.168.0.6] PHP Fatal error: Class 'DB' not found in /var/www/html/daloradius/library/opendb.php on line 86, referer: http://192.168.0.172/daloradius/login.php
查了下资料,原来少个包 。新版本的daloradius连接数据库,需要安装数据库连接模块。php-pear-DB
然后我就执行yum install php-pear-DB ,发现没有
然后继续百度,找到发现需要安装一个包:
下载 :#wget http://pear.php.net/go-pear.phar
安装:#php go-gear.phar
然后用pear来安装
#pear install DB
重启一下httpd 发现就可以正常登录了
问题二:
yum 安装mysql成功后,执行了mysqladmin -uroot -p123456 后 还是登录不了,但是使用mysql -uroot 直接就登陆了。
原因是你安装的数据库里有字段是空的。
解决方法:登录mysql。
#mysql -uroot
#mysql>use mysql;
#mysql>delete from user where host='';
ok,这样就可以了。
如果还是不行
修改一下密码:
#mysql>update user set password = password('123456') where user = 'root';
这样就可以了