您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 红帽RHEL5U4平台实现pppoe+freeradius+mysql认证服务器
软件需求:红帽自带的:rp-pppoe,ppp,freeradius,freeradius-mysql,mysql,mysql-devel,mysql-server,openssl。另需:freeradius-2.1.3以及ppp2.4.4的源代码包。有一点要说明,freeradius需要openssl库,所以如果系统里没安装的话,还是要事先安装一下的。第一部分:实现简单的pppoe拨号服务检查系统上的rp-pppoe以及ppp软件是否安装,命令:#rpm-qrp-pppoeppp如果安装则会有显示软件包的名称,若未安装,找到安装盘上的相关rpm包安装。配置/etc/ppp/optionslockcrtsctsnobsdcompnodeflatenopcomp然后配置/etc/ppp/pppoe-server-options文件,内容为:#PPPoptionsforthePPPoEserver#LIC:GPLauthrequire-chapdefault-mrudefault-asyncmaplcp-echo-interval60lcp-echo-failure5ms-dns202.106.0.20noipdefaultnoipxnodefaultrouteproxyarpnoktunelogfile/var/log/pppd.log文件内容不做解释,可以通过manpppd查寻相关帮助。此时pppoe服务器从/etc/ppp/chap-secrets文件中读取验证的用户名和密码信息,此文件格式为:#SecretsforauthenticationusingCHAP#clientserversecretIPaddressesaaa*aaa*想要多添加用户,再加入新行即可。然后可以启动pppoe服务了,命令是:#pppoe-server-Ieth1-L10.0.0.64-R192.168.0.5-N10我简单介绍一下这条命令中的各个参数的意思。I:指定响应PPPOE请求的端口,本例中是在eth1口上。L:PPPOE服务器的IP地址,这是客户端所填的PPPOE服务器的地址。R:这是分配给客户端的地址池起始地址,本例中从192.168.0.5开始N:地址池的IP地址递增几个,本例中添增10,也就是从192.168.0.5开始,到192.168.0.14结束。可以看出我们在LINUX中将以上步骤都完成了,也就是说PPPOE服务准备好了,客户端PPPOE拨号,顺利的话就可以拨号成功了。当然现在客户端还不能上网,因为PPPOE服务器还没有启用NAT,我们用IPTABLES软件来实现,写一个这样的脚本即可:echo1/proc/sys/net/ipv4/ip_forwardiptables-tnat-APOSTROUTING-s192.168.0.0/24-owan-jSNAT--to10.0.0.65第一行的作用是启用IP转发,第二行是启动IPTABLES进行NAT转换,下面是对各个参数的解释-tnat表示进行NAT转化-s192.168.0.0/24表示源地址为192.168.0.0/24这个网段-jSNAT--to10.0.0.65表示将源地址都转化成10.0.0.65这个外网地址启动NAT以后,这台PPPOE服务器就功能完整了,客户端不仅可以拨通服务器,拨通后还可以上网。注:红帽自带的pppoe服务器,在RHEL5至RHEL5U2的版本上与系统的syslog服务有冲突。可现关闭syslog服务,让pppoe服务器正常运行。第二部分:让pppoe服务使用freeradius服务器进行验证1)首先更改/etc/ppp/pppoe-server-options,添加一行设置:#PPPoptionsforthePPPoEserver#LIC:GPLauthrequire-chapdefault-mrudefault-asyncmaplcp-echo-interval60lcp-echo-failure5ms-dns202.106.0.20noipdefaultnoipxnodefaultrouteproxyarpnoktuneplugin/usr/lib/pppd/2.4.4/radius.soradius-config-file/etc/ppp/radiuds/radiusclient.conflogfile/var/log/pppd.log表示让pppoe-server在运行时加入pppd的radius查检,可以让pppoe服务通过freeradius来验证和记账。添加此行之后,可以创建/etc/ppp/radiuds/目录,创建完之后,我们需要使用一下ppp的源代码,因为红帽没有给我们提供相应的配置文件。解压ppp的源代码目录:#wget*/etc/ppp/radiuds/2)这个目录下有我们需要的所有相关的配置文件,其中最重要的是/etc/ppp/radiuds/radiusclient.conf,我们先打开此文件配置,其内容为(已去掉注释):auth_orderradiuslogin_tries4login_timeout60nologin/etc/nologinissue/etc/ppp/radiuds/issueauthserverlocalhost:1812acctserverlocalhost:1813servers/etc/ppp/radiuds/serversdictionary/etc/ppp/radiuds/dictionarylogin_radius/usr/local/sbin/login.radiusseqfile/var/run/radius.seqmapfile/etc/ppp/radiuds/port-id-mapdefault_realmradius_timeout10radius_retries3login_local/bin/login3)另外,还需更改此目录下的servers文件,此文件用来指定读取的radius服务器的主机名称以及key值(需要在freeradius配置中指定)。编辑/etc/ppp/radius/servers,设定radius服务器的位置localhost123//这里的123是我前面设置的nas(localhost)访问radius服务器的密码4)编辑/etc/ppp/radius/dictionary,修改一些路径设置,主要是最后一个dictionary.microsoft的路径设置INCLUDE/etc/ppp/radiuds/dictionary.microsoft#INCLUDE/etc/ppp/radiuds/dictionary.ascend#INCLUDE/etc/ppp/radiuds/dictionary.merit#INCLUDE/etc/ppp/radiuds/dictionary.compat5)此时pppoe服务已经可以通过radius认证了。然后进行freeradius的配置。首先检查freeradius是否安装:#rpm-qfreeradiusfreeradius-mysql其中freeradius-mysql包使用来让freeradius连接mysql数据库的,本部分还用不到。首先打开/etc/raddb/clients.conf配置客户端访问控制,文件内容如下:client127.0.0.1{secret=123shortname=localhostnastype=othe}表示客户端之允许从127.0.0.1的ip登录radius服务,并且需要验证的secret为123,就是在上面的servers文件中需要配置的信息。若要实现可以从别的机器访问,请参考注释获得帮助。6)然后配置naslist文件,内容为:#NASNameShortNameType#------------------------------#portmaster1.isp.compm1.NYlivingston#portmaster2.isp.compm1.LAlivingstonlocalhostlocalportslave此文件用来配置记录有哪些指定的nas服务器需要使用radius进行记账。现在指定的是localhost。7)主控配置文件是radiusd.conf,目前没有需要改的,可通过注释学习其中配置方法。此文件主要是用来指定freeradius服务器默认的验证和记账方式。我们目前使用本地的文件方式,就是/etc/raddb/users文件,在其中添加我们需要提供给pppoe服务认证的用户信息,内容如下(用户名前面一定不能有空格):aaaAuth-Type:=Local,Simultaneous-Use:=1,User-Password==aaaService-Type=Framed-User,Framed-Protocol=PPP,Framed-IP-Address=192.168.0.8,Framed-IP-Netmask=255.255.255.255其中Simultaneous-Use:=1字段用来设置每个用户同时登录的个数。所有字段信息都在freeradius的源代码中有文档给予解释。另外要注意,添加的用户字段应写在文件DEFAULT字段前面添加,否则可能不会生效。8)为了让radius能正确地调用mysql,还要指定一下库的位置:echo/usr/lib/etc/ld.so.confldconfig9)都配置完毕后,可以通过radiusd-X命令以排错方式启动,此时再启动pppoe-server,用客户端拨号验证一下,检查pppoe服务是否成功通过freeradius来验证用户。如果成功,这一部分完成。可通过serviceradiusdrestart来正常启动radius服务。radiusd-Xradtestaaaaaalocalhost0123看到Access-Accept之类的字样就表示OK了。这时可以正式启动radiusd第三部分:配置freeradius从mysql数据库读取用户信息1)首先更改/etc/raddb/radiusd.conf,首先将$INCLUDE${confdir}/sql.conf字段这行原有的注释去掉,然后编辑/etc/raddb/radiusd.conf使其支持mysql认证;authorize{preprocesschapmschapsuffixsql...}accounting{...#radutmp(因为我要使用Simultaneous-Use:=1(同一用户一次只能登陆一台机器),用它在radiusd意外结束会有问题,所以禁用)sql...}session{#radutmp(同上)sql}2)需要更改sql.conf中的设置,主要是设置读取的mysql服务器的相关信息,可更改如下一些字段:driver=rlm_sql_mysqlserver=localhost#数据库服务器login=mysql_username#数据库用户password=mysql_password#数据库密码radius_db=radius#数据库名称3)当然前提是你要现把mysql服务设置好,设置方法是:先处理一下mysql的库,freeradius默认查找libmysqlclient_r.so,可是mysql默认为libmysqlclient.so,内容完全一样,做个链接即可:(至关重要,否则启动freeradius的时候会提示找不到rlm_sql_mysql.so:Couldnotlinkdriverrlm_sql_mysql:filenotfound)#echo/usr/lib/mysql
本文标题:红帽RHEL5U4平台实现pppoe+freeradius+mysql认证服务器
链接地址:https://www.777doc.com/doc-1600705 .html