温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

RHEL5U4平台怎样实现pppoe+freeradius+mysql认证服务器

发布时间:2021-12-30 15:45:34 来源:亿速云 阅读:163 作者:柒染 栏目:云计算

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 -q rp-pppoe ppp
        如果安装则会有显示软件包的名称,若未安装,找到安装盘上的相关rpm包安装。

配置 /etc/ppp/options   
lock  
crtscts  
nobsdcomp  
nodeflate  
nopcomp  
 然后配置/etc/ppp/pppoe-server-options文件,内容为:  
# PPP options for the PPPoE server  
# LIC: GPL

auth

require-chap

default-mru

default-asyncmap

lcp-echo-interval 60

lcp-echo-failure 5

ms-dns 202.106.0.20

noipdefault

noipx

nodefaultroute

proxyarp

noktune

logfile /var/log/pppd.log  
         
        文件内容不做解释,可以通过man pppd查寻相关帮助。此时pppoe服务器从/etc/ppp/ chap-secrets文件中读取验证的用户名和密码信息,此文件格式为:  
 
        # Secrets for authentication using CHAP  
        # client        server        secret                        IP addresses  
       aaa       *        aaa               *  
 
        想要多添加用户,再加入新行即可。  
        然后可以启动pppoe服务了,命令是:  
        # pppoe-server -I eth2 -L 10.0.0.64 -R 192.168.0.5 -N 10  
  我简单介绍一下这条命令中的各个参数的意思。  
  I:指定响应PPPOE请求的端口,本例中是在eth2口上。  
  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软件来实现,写一个这样的脚本即可:  
  echo "1" >> /proc/sys/net/ipv4/ip_forward  
  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o wan -j SNAT --to 10.0.0.65  
  第一行的作用是启用IP转发,第二行是启动IPTABLES进行NAT转换,下面是对各个参数的解释  
  -t nat表示进行NAT转化  
  -s 192.168.0.0/24表示源地址为192.168.0.0/24这个网段  
  -j SNAT --to 10.0.0.65表示将源地址都转化成10.0.0.65这个外网地址  
  启动NAT以后,这台PPPOE服务器就功能完整了,客户端不仅可以拨通服务器,拨通后还可以上网。  
 
        注:红帽自带的pppoe服务器,在RHEL5至RHEL5U2的版本上与系统的syslog服务有冲突。可现关闭syslog服务,让pppoe服务器正常运行。  
 
 

第二部分:让pppoe服务使用freeradius服务器进行验证  
 
 1)首先更改/etc/ppp/pppoe-server-options,添加一行设置:  
# PPP options for the PPPoE server  
# LIC: GPL

auth

require-chap

default-mru

default-asyncmap

lcp-echo-interval 60

lcp-echo-failure 5

ms-dns 202.106.0.20

noipdefault

noipx

nodefaultroute

proxyarp

noktune

plugin           /usr/lib/pppd/2.4.4/radius.so

radius-config-file /etc/ppp/radiuds/radiusclient.conf

logfile /var/log/pppd.log  
 
        表示让pppoe-server在运行时加入pppd的radius查检,可以让pppoe服务通过freeradius来验证和记账。添加此行之后,可以创建/etc/ppp/radiuds/目录,创建完之后,我们需要使用一下ppp的源代码,因为红帽没有给我们提供相应的配置文件。解压ppp的源代码目录:  
       #wget ftp://ftp.samba.org/pub/ppp/ppp-2.4.4.tar.gz
        #tar xvfz ppp-2.4.4.tar.gz
        #cd ppp-2.4.4
        #cd pppd/plugins/radius/etc/
        #cp * /etc/ppp/radiuds/
 2) 这个目录下有我们需要的所有相关的配置文件,其中最重要的是/etc/ppp/radiuds/radiusclient.conf,我们先打开此文件配置,其内容为(已去掉注释):  
auth_order        radius

login_tries       4

login_timeout     60

nologin /etc/nologin

issue     /etc/ppp/radiuds/issue

authserver        localhost:1812

acctserver        localhost:1813

servers           /etc/ppp/radiuds/servers

dictionary        /etc/ppp/radiuds/dictionary

login_radius      /usr/local/sbin/login.radius

seqfile           /var/run/radius.seq

mapfile          /etc/ppp/radiuds/port-id-map

default_realm

radius_timeout 10

radius_retries 3

login_local       /bin/login
       
 3) 另外,还需更改此目录下的servers文件,此文件用来指定读取的radius服务器的主机名称以及key值(需要在freeradius配置中指定)。

编辑 /etc/ppp/radius/servers ,设定radius 服务器的位置  
localhost 123 // 这里的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.compat  
5) 此时pppoe服务已经可以通过radius认证了。然后进行freeradius的配置。  
        首先检查freeradius是否安装:  
        #rpm -q freeradius freeradius-mysql  
        其中freeradius-mysql包使用来让freeradius连接mysql数据库的,本部分还用不到。  
        首先打开/etc/raddb/clients.conf配置客户端访问控制,文件内容如下:  
        client 127.0.0.1 {
                secret                = 123
                shortname        = localhost
                nastype     = othe
        }

        表示客户端之允许从127.0.0.1的ip登录radius服务,并且需要验证的secret为123,就是在上面的servers文件中需要配置的信息。若要实现可以从别的机器访问,请参考注释获得帮助。  
 
6)  然后配置naslist文件,内容为:  
 
        # NAS Name                Short Name        Type  
        #----------------        ----------        ----  
        #portmaster1.isp.com        pm1.NY                livingston  
        #portmaster2.isp.com        pm1.LA                livingston  
        localhost                local                portslave  
 
        此文件用来配置记录有哪些指定的nas服务器需要使用radius进行记账。现在指定的是localhost。  
 
 7) 主控配置文件是radiusd.conf,目前没有需要改的,可通过注释学习其中配置方法。此文件主要是用来指定freeradius服务器默认的验证和记账方式。我们目前使用本地的文件方式,就是/etc/raddb/users文件,在其中添加我们需要提供给pppoe服务认证的用户信息,内容如下(用户名前面一定不能有空格):  
aaa   Auth-Type := Local, Simultaneous-Use := 1, User-Password == "aaa"  
                     Service-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.conf  
ldconfig

9) 都配置完毕后,可以通过radiusd -X命令以排错方式启动,此时再启动pppoe-server,用客户端拨号验证一下,检查pppoe服务是否成功通过freeradius来验证用户。如果成功,这一部分完成。可通过 service radiusd restart来正常启动radius服务。

radiusd -X
radtest aaa aaa localhost 0 123
看到 Access-Accept 之类的字样就表示OK了。 这时可以正式启动radiusd 

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI