FreeRadius2.1.6的安装hansel@163.com2008-9-7Linux:RedHatEnterpriseLinuxAS5红帽子企业版安装了freeradius-1.1.3-1.2.el5,先卸载:#rpm-evfreeradius1.下载目前的版本是2.1.6,文件名是freeradius-server-2.1.6.tar.bz2编译#cd/opt#mkdirhost#tarxjvf/opt/download/freeradius-server-2.1.6.tar.bz2#cdfreeradius-server-2.1.6#./configure#make#makeinstall安装的文件所在的系统目录:1)/usr/local/sbin:checkradradiusdradminradwatchrc.radiusd2)/usr/local/bin:radlastradtestrandpktrlm_dbm_parserradclientradsniffradwhoradeapclientradsqlrelayradzaprlm_dbm_cat3)/usr/local/etc/raddb:配置文件4)/usr/local/share/man:man手册5)/usr/local/var/run/radiusd:运行时生成的文件存放目录6)/usr/local/var/log/radius:日志文件存放目录7)/usr/local/var/log/radius/radacct8)/usr/local/share/freeradius:存放各个属性定义9)/usr/local/lib:freeradius使用的库文件测试是否安装成功:1)#radiusd–Xf…………..2)在另外一个终端上运行:#radtesttesttestlocalhost0testing123SendingAccess-Requestofid18to127.0.0.1port1812User-Name=testUser-Password=testNAS-IP-Address=127.0.0.1NAS-Port=0rad_recv:Access-Rejectpacketfromhost127.0.0.1port1812,id=18,length=20说明可以正常和radiusd进行通信。2.配置radius1)修改radius.conf去掉$INCLUDEsql.conf的注释;auth_badpass=yesauth_goodpass=yes2)修改sql.confserver=localhost#port=3306login=radiuspassword=radpass3)修改clients.conf:增加client192.168.0.0/16{secret=testing123shortname=private-networknastype=other}4)修改eap.confdefault_eap_type=peap5)修改sites-enable/default和site-enable/inner-tunnel在authorize、authenticate、accounting和session中去掉sql前面的注释。去掉auth_log的注释,注释掉unix6)这样192.168.x.x的AP都可以访问Radius服务器。3.生成证书(如果使用外部证书可以跳过这步)生成随机数:#cd/usr/local/etc/raddb/certs#makedh#makerandom编辑ca.cnf、server.cnf、client.cnf文件中的input_password和output_password字段,设置密码,分别编辑[certificate_authority],[server],和[client]字段为证书的信息,default_days字段为证书有效期。修改Makefile:a)不知道为什么对于ca.cnf日期的修改不生效,生成的根证书有效期总是一个月,所以只好在生成根证书的命令行加上一个-days3650修改后如下:#moreMakefileca.keyca.pem:ca.cnfopensslreq-new-x509-days3650-keyoutca.key-outca.pem-config./ca.cnfb)由于客户端证书是用server证书签名,增加导出server证书的Make目标:server.der:server.pemopensslx509-informPEM-outformDER-inserver.pem-outserver.der同时修改:server:server.derc)还可以增加一个删除所有证书的Make目标:allclean:rm-f*.pem*.der*.csr*.crt*.key*.p12serial*index.txt*#makecaserverclient验证根证书:#opensslx509-inca.pem-text–noout安装客户端证书:d)导入根证书:生成的ca.der为根证书,需要先导入到客户端,注意存放的位置要选受信任的根证书颁发机构。e)导入客户端证书:生成的user@example.com.pem是客户端证书(如果更改了client.cnf中的commonName,则不是这个名字),不过使用client.p12文件更容易导入Windows系统。服务器端配置:注意,如果修改了server.cnf的input_password,则需要修改eap.conf文件中的tls字段的private_key_password信息。4.设置为开机自动启动#cpfreeradius-server-2.1.6/scripts/rc.radiusd/etc/init.d/radiusd#vi/etc/init.d/radiusd在#!/bin/sh一行后面加入:#radiusdThisshellscripttakescareofstartingandstopping#standaloneradiusd.##chkconfig:-7070#description:freeradiusserver.#processname:/usr/local/sbin/radiusd#config:/usr/local/etc/raddb使用命令:#chkconfig--addradiusd#chkconfigradiusdon5.配置apacheHTTPserver允许在没有index.html等文件时列出目录#vi/etc/httpd/conf.d/welcome.conf去掉Indexes前面的减号LocationMatch^/+$OptionsIndexesErrorDocument403/error/noindex.html/LocationMatch6.配置mysqla)安装phpMyadmin(如果使用命令行方式配置,可以省略该步骤)下载:phpMyAdmin-2.11.9.5-all-languages.tar.bz2高版本的需要php-5.2以上版本,RHEL5只带了php-5.1.6解压:tarxjvfphpMyAdmin-2.11.9.5-all-languages.tar.bz2创建一个config目录mkdirconfig;chmodo+rwconfig做符号链接到httpd目录:lnphpMyAdmin-2.11.9.5-all-languages/var/设置:设置认证方式为cookie,配置完并保存后,移动config/config.in.php到上一级目录。解决phpMyAdmin的警告:i)安装mbstringrpm-Uvhphp-mbstring-5.1.6-20.el5.i386.rpmii)使用phpMyAdmin管理mysql,如果出现以下提示Cannotloadmcryptextension在rpmfind.net下载以下RPM包即可解决上述问题php-mcryptphp-mhashlibmcryptlibmcrypt-devellibmhashlibmhash-devel修改/etc/php.ini增加:;;;;;;;;;;;;;;;;;;;;;;;DynamicExtensions;;;;;;;;;;;;;;;;;;;;;;;extension=mbstring.soextension=mcrypt.sob)创建并配置数据库radius(可以使用phpMyAdmin来配置,下同)#mysqladmin-uroot-pcreateradius#cd/usr/local/etc/raddb/sql/mysql#mysql-uroot-pradiusadmin.sql#mysql-uradius-pradiusschema.sql可选创建其他表,可以使用的SQL脚本:ippool.sql,nas.sql,wimax.sql7.配置freeradius的管理WEB页面dialup_admina)复制dialup_admin到/usr/local/opt/#cpfreeradius-server-2.1.6/dialup_admin/dialup_admin/-ab)创建符号链接#ln-s/usr/local/opt/dialup_admin/htdocs//var/)创建mysql数据表#cddialup_admin/sql#mysql-uradius-pradiusbadusers.sql还有mtotacct.sql,totacct.sql,userinfo.sql导入userinfo.sql出错:ERROR1067(42000)atline4:Invaliddefaultvaluefor'id'在userinfo.sql文件中去掉DEFAULT‘0’d)修改配置文件修改admin.conf中以下设置:general_base_dir:/usr/local/opt/dialup_admingeneral_radius_server_auth_proto:chap//将pap改成chapgeneral_encryption_method:clear//将crypt改成cleargeneral_radiusd_base_dir:/usr/localgeneral_domain:xxxxsql_username:xxxxsql_password:xxxxsql_usergroup_table:radusergroupsql_debug:falsee)修改apache的php.conf配置文件#vi/etc/httpd/conf.d/php.conf在未尾添加AddTypeapplication/x-httpd-php.php.php3重启httpd#servicehttpdrestart8.参考文档a)红帽RHEL5U3平台实现pppoe接入记账认证服务器