红帽RHEL5U4平台实现pppoe+freeradius+mysql认证服务器_第1页
红帽RHEL5U4平台实现pppoe+freeradius+mysql认证服务器_第2页
红帽RHEL5U4平台实现pppoe+freeradius+mysql认证服务器_第3页
红帽RHEL5U4平台实现pppoe+freeradius+mysql认证服务器_第4页
红帽RHEL5U4平台实现pppoe+freeradius+mysql认证服务器_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件需求: 红帽自带的: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/

2、options lockcrtsctsnobsdcompnodeflatenopcomp然后配置/etc/ppp/pppoe-server-options文件,内容为: #PPPoptionsforthePPPoEserver #LIC:GPLauthrequire-chapdefault-mrudefault-asyncmaplcp-echo-interval 60lcp-echo-failure 5ms-dns 0noipdefaultnoipxnodefaultrouteproxyarpnoktunelogfile /var/log/pppd.log 文件内容不做解释,可以通过manpp

3、pd查寻相关帮助。此时pppoe服务器从/etc/ppp/chap-secrets文件中读取验证的用户名和密码信息,此文件格式为: #SecretsforauthenticationusingCHAP #clientserversecretIPaddresses aaa*aaa* 想要多添加用户,再加入新行即可。 然后可以启动pppoe服务了,命令是: # pppoe-server -I eth1 -L 4 -R -N 10我简单介绍一下这条命令中的各个参数的意思。I:指定响应PPPOE请求的端口,本例中是在eth1口上。L:PPPOE服务器的IP地址,这是客户端所填的PPPOE服务器的地址。

4、R:这是分配给客户端的地址池起始地址,本例中从开始N:地址池的IP地址递增几个,本例中添增10,也就是从开始,到4结束。可以看出我们在LINUX中将以上步骤都完成了,也就是说PPPOE服务准备好了,客户端PPPOE拨号,顺利的话就可以拨号成功了。当然现在客户端还不能上网,因为PPPOE服务器还没有启用NAT,我们用IPTABLES软件来实现,写一个这样的脚本即可:echo 1 /proc/sys/net/ipv4/ip_forwardiptables -t nat -A POSTROUTING -s /24 -o wan -j SNAT -to 5第一行的作用是启用IP转发,第二行是启动IPT

5、ABLES进行NAT转换,下面是对各个参数的解释-t nat表示进行NAT转化-s /24表示源地址为/24这个网段-j SNAT -to 5表示将源地址都转化成5这个外网地址启动NAT以后,这台PPPOE服务器就功能完整了,客户端不仅可以拨通服务器,拨通后还可以上网。注:红帽自带的pppoe服务器,在RHEL5至RHEL5U2的版本上与系统的syslog服务有冲突。可现关闭syslog服务,让pppoe服务器正常运行。 第二部分:让pppoe服务使用freeradius服务器进行验证 1)首先更改/etc/ppp/pppoe-server-options,添加一行设置: #PPPoption

6、sforthePPPoEserver #LIC:GPLauthrequire-chapdefault-mrudefault-asyncmaplcp-echo-interval 60lcp-echo-failure 5ms-dns 0noipdefaultnoipxnodefaultrouteproxyarpnoktuneplugin /usr/lib/pppd/2.4.4/radius.soradius-config-file /etc/ppp/radiuds/radiusclient.conflogfile /var/log/pppd.log表示让pppoe-server在运行时加入pppd

7、的radius查检,可以让pppoe服务通过freeradius来验证和记账。 添加此行之后,可以创建/etc/ppp/radiuds/目录,创建完之后,我们需要使用一下ppp的源代码,因为红帽没有给我们提供相应的配置文件。 解压ppp的源代码目录: #wget /pub/ppp/ppp-2.4.4.tar.gz#tarxvfzppp-2.4.4.tar.gz #cdppp-2.4.4 #cdpppd/plugins/radius/etc/ #cp*/etc/ppp/radiuds/ 2) 这个目录下有我们需要的所有相关的配置文件,其中最重要的是/etc/ppp/radiuds/radiusc

8、lient.conf,我们先打开此文件配置,其内容为(已去掉注释): auth_order radiuslogin_tries 4login_timeout 60nologin /etc/nologinissue /etc/ppp/radiuds/issueauthserver localhost:1812acctserver localhost:1813servers /etc/ppp/radiuds/serversdictionary /etc/ppp/radiuds/dictionarylogin_radius /usr/local/sbin/login.radiusseqfile /v

9、ar/run/radius.seqmapfile /etc/ppp/radiuds/port-id-mapdefault_realmradius_timeout10radius_retries3login_local /bin/login 3) 另外,还需更改此目录下的servers文件,此文件用来指定读取的radius服务器的主机名称以及key值(需要在freeradius配置中指定)。编辑 /etc/ppp/radius/servers ,设定radius 服务器的位置 localhost 123 / 这里的123是我前面设置的nas(localhost)访问radius服务器的密码4)

10、编辑/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/pat5) 此时pppoe服务已经可以通过radius认证了。然后进行freeradius的配置。 首先检查freeradius是否安装: rp

11、m-qfreeradiusfreeradius-mysql 其中freeradius-mysql包使用来让freeradius连接mysql数据库的,本部分还用不到。 首先打开/etc/raddb/clients.conf配置客户端访问控制,文件内容如下: client secret=123 shortname=localhost nastype=othe 表示客户端之允许从的ip登录radius服务,并且需要验证的secret为123,就是在上面的servers文件中需要配置的信息。若要实现可以从别的机器访问,请参考注释获得帮助。 6) 然后配置naslist文件,内容为: #NASName

12、ShortNameType #- #pm1.NYlivingston #pm1.LAlivingston localhostlocalportslave 此文件用来配置记录有哪些指定的nas服务器需要使用radius进行记账。现在指定的是localhost。 7)主控配置文件是radiusd.conf,目前没有需要改的,可通过注释学习其中配置方法。此文件主要是用来指定freeradius服务器默认 的验证和记账方式。我们目前使用本地的文件方式,就是/etc/raddb/users文件,在其中添加我们需要提供给pppoe服务认证的用户信息,内 容如下(用户名前面一定不能有空格): aaaAuth

13、-Type:=Local,Simultaneous-Use:=1,User-Password=aaa Service-Type=Framed-User, Framed-Protocol=PPP, Framed-IP-Address=, Framed-IP-Netmask=55 其中Simultaneous-Use:=1字段用来设置每个用户同时登录的个数。所有字段信息都在freeradius的源代码中有文档给予解释。另外要注意,添加的用户字段应写在文件DEFAULT字段前面添加,否则可能不会生效。 8) 为了让radius能正确地调用mysql,还要指定一下库的位置: echo /usr/lib

14、 /etc/ld.so.confldconfig9) 都配置完毕后,可以通过radiusd-X命令以排错方式启动,此时再启动pppoe-server,用客户端拨号验证一下,检查pppoe服务是否成 功通过freeradius来验证用户。如果成功,这一部分完成。可通过serviceradiusdrestart来正常启动radius服务。radiusd -X radtest aaa aaa localhost 0 123 看到 Access-Accept 之类的字样就表示OK了。 这时可以正式启动radiusd第三部分:配置freeradius从mysql数据库读取用户信息 1) 首先更改/etc

15、/raddb/radiusd.conf,首先将$INCLUDE$confdir/sql.conf字段这行原有的注释去掉,然后编辑/etc/raddb/radiusd.conf 使其支持mysql认证; authorize preprocesschapmschapsuffixsql.accounting .#radutmp (因为我要使用Simultaneous-Use:=1(同一用户一次只能登陆一台机器),用它在radiusd意外结束会有问题,所以禁用)sql.session #radutmp (同上) sql2)需要更改sql.conf中的设置,主要是设置读取的mysql服务器的相关信息,可

16、更改如下一些字段: 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:Co

17、uld not link driver rlm_sql_mysql: file not found) # echo /usr/lib/mysql /etc/ld.so.conf # ldconfig # cd /usr/lib/mysql/ # ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so先启动你的mysqld: servicemysqldstart 然后设置root帐户密码: mysqladminurootppassword12345 创建radius数据库 mysqladminurootp123456createradius 建立my

18、sql的数据库raius的表,我们可以通过软件已经给出的sql脚本导入数据库: mysql-urootp123456radius/usr/share/doc/freeradius-1.1.3/examples/mysql.sql 这样,所有radius需要的数据库和表都已经建立好了。 此时可以添加测是帐号来测试是否正常工作。具体方法就不在这说了。我们待会要使用freeradius源代码自带的dialup_admin来进行数据库的管理工作,那是一个基于web的管理界面,使用php编写,要比直接用sql语句方便的多。 这里要注意的是,如何在数据库里添加限制没用户同时登录个数的限制,比如,我先用sq

19、l语句添加一个测试用户,然后来限制他的登录个数,语句是: mysql-urootp123456radius insert into radgroupreply (groupname,attribute,op,value) values (user,Auth-Type,:=,Local);insert into radgroupreply (groupname,attribute,op,value) values (user,Service-Type,=,Framed-User);insert into radgroupreply (groupname,attribute,op,value) v

20、alues (user,Framed-Protocol,=,ppp);insert into radgroupcheck (groupname, attribute, op, value) values (user, Auth-Type, :=, Local);insert into radgroupcheck (groupname, attribute, op, value) values (user, Simultaneous-Use, :=, 1);然后加入用户信息:insert into radcheck (username,attribute,op,value) values (bb

21、b,User-Password,=,bbb);然后把用户加到组里:insert into usergroup(username,groupname) values(bbb,user);这样就给我们的数据库中添加了一个帐户测试帐户bbb,并让bbb帐户属于user组。 然后我们可以通过设置user组的检查属性来设置此组帐户的登录数限制,以后只要用户加入这个组,登录数都不能超过1次: 好了,限制完成。我们现在可以使用bbb帐户登录,并测试是否是通过mysql数据库验证的。并且可以检查是不是只能登录一个。 第四部分:使用dialup_admin来管理radius服务器 服务器搭建成功后如果需要web

22、管理,freeradius自带了一个web管理程序dialup_admin。 首先测试Apache与PHP安装的正确性。Apache的WEB目录在/var/www/html下首先测试Apache,在浏览器输入Http:/下看到Apache界面表示正常。 编辑一个PHP测试文件,内容为,保存为phpinfo.php。在浏览器输入Http:/phpinfo.php看到php相关信息页面,表示php运作正常。 直接将freeradius源代码中的dialup_admin/文件夹全部拷贝到Apache网页目录下/etc/local下。 修改dialup_admin/conf/下的admin.conf文

23、件中的如下参数: sql_type:mysql sql_server:localhost/sql地址 sql_port:3306/默认端口 sql_username:root sql_password:123456/密码 sql_database:radius/数据库名 general_base_dir:/var/www/html/dialup_admin/dialup_admin主目录general_radiusd_base_dir: /usr/sbin/radiusdgeneral_domain:/这个可改也可不改,没什么影响,改了还看点而已 general_radius_server_a

24、uth_proto:chap/将pap改成chap general_encryption_method:clear/将crypt改成clear 说明一下,general_encryption_method:clear是必须得改的,否则用web管理界面添加用户后会出现密码 被加密后无法识别导致认证失败,clear方式是以明文存储密码,freeradius默认是用明文存储密码,两者要对应,所以这里要用clear方式。 修改dialup_admin/conf/下的naslist.conf文件如下 nas1_name:nas1.%general_domain nas1_model:Computer/N

25、AS服务器的类型 nas1_ip:/NAS服务器的IP地址 nas1_port_num:15 nas1_community:public 其他的通通删掉或用#号注释掉,这样修改的目的是方便在web管理界面中直观的看到每个NAS服务器连接用户的情况。 导入相关数据库表 cd/var/www/html/dialup_admin/sql mysql-urootp123456radiususerinfo.sql mysql-urootp123456radiustotacct.sql mysql-urootp123456radiusmtotacct.sql mysql-urootp123456radiu

26、sbadusers.sql dialup_admin用的是php3格式的文件,需要web服务器支持这种格式, 修改/etc/httpd/conf/httpd.conf文件,在此文件最后添加 AddTypeapplication/x-httpd-php.php.html.htm.php3 并在默认的主页目录下建立一个指向/usr/local/dialup_admin/htdocs的符号连接htdocs 保存后重启httpd服务 servicehttpdrestart 访问:http:/localhost/htdocs/index.html 能正常打开各页面就ok了。默认是打开的sql调试模式。可以在admin.conf中找到sql_debug.把true改为false即可关闭。第五部分:使用用户认证来管理radius服务器Apache服务器已经内置用户验证机制,大家只要适当的加以设置,便可以控制网站的某些部分要用户验证。大家只要跟着我一步步做下来就应该能轻松实现用户验证。第1步:我们在/var/www/html/dialup_admin/htdocs然后我们编辑httpd.conf添加Alias /radiusadmin /var/www/html/dialup_admin/htdocsOptions Indexes MultiViewsAllowOverrid

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论