开发者社区> 技术小甜> 正文

ossh(portal、freeradius) + nac(freeAC) + AC(汉明6100)联调

简介:
+关注继续查看

 

相关资源:

1OSSH的安装采用了OSSH免费版华为Portal(portal版本是华为portal1.0)系统ISO镜像版,直接下载镜像安装在虚拟机上即可。

下载地址:

链接http://pan.baidu.com/s/1hqh0t2O  密码: uz1s

包含:镜像、安装说明、配置手册

2NACfreeAC的一个软件,在freeAC论坛上下载。我这里准备的是一个centos6.5 64位虚拟机,将下载的软件nac-0.2.0-v1.x86_64.rpm安装在这台虚拟机上。

下载地址: http://pan.baidu.com/s/1gd5kMt1 密码: rzdp

实验拓扑图:


wKioL1VilYqDH0IpAACyw0Z-j2U981.jpg

ossh地址:  192.168.100.100  portal + freeradius2.2.0

用户名:root

密码: m0n0Radius

portal访问地址:

http://192.168.100.100:8088/

NAC:  192.168.100.101

用户名:root

密码: 123456

 

  • AC配置

AC使用的汉明的6100,对这款产品的相关配置,可以联系厂家技术支持要一个配置文档,我是参考一个《Howay系列无线控制器用户手册(WEB)--配套B20X版本》的文档进行的配置。配置的主要过程:

1、             AC+AP+客户端调通,能够使无线客户端能够连接到无线网络并且通过DHCP获取到IP。按照下面的规划进行接口配置、DHCP配置、WLAN配置(无线服务配置、AP配置)。

AC地址:

管理地址:192.168.1.1

eth1地址: 192.168.1.33  (vlan1,管理客户端)

eth2地址: 10.0.0.221 vlan90,连接AP,开启DHCPAP自动获取10.0.0.222

eth3地址: 192.168.100.1  vlan100,连接ossh

sta虚拟服务地址: 200.200.200.1  (vlan200,提供给最终用户STA,开启DHCP

(注:上面的配置是我实验环境的配置,大家可以根据自己的环境做不同的规划配置。)

 

注意接口配置的时候STA虚拟服务端口需要勾选“标签”方式(tag),端口选择需要选取与AP相同的物理端口,否则客户端不能DHCP分配到地址。无线服务配置里面的默认VLAN要填写STA所在的VLAN。如下图:

wKioL1Vilc6iMeNKAAG6YL5ffnk835.jpg

安全配置里的portal认证和radius认证可以先关闭,先调通客户端能正常接入WLAN并且能正常获取DHCP地址。

 

2、             认证配置。portalradius认证。配置portal服务器地址和需要认证的网段,radius服务器地址、端口等。 首先是NAS配置(NAS:网络接入服务器,RADIUS服务器的客户端,配置成AC接入RADIUS网络的物理端口eth3地址192.168.100.1),如下图:

wKiom1VilL2Rmtu5AAFva2h-MwQ255.jpg



下图是portal配置:

wKioL1VilpqjFgaKAALcszUJLvo177.jpg



下图是portal配置里面的“本地服务器”配置:

注意,这里的“本地服务器”指的就是NAC

wKiom1VilXuCGgZcAAG-fFHfbYw797.jpg

 

接下来是radius“认证”和“计费”配置:

wKiom1VilfqhnERuAAJp_ozqJc0896.jpgwKiom1Vilg6R8Zd4AAMHgHqVZhc072.jpg


最后是“域配置”:

wKioL1Vil6yiGp03AAJe_a7CoKE460.jpg

 

         到这里,AC就配置好了。做一个简单总结:

首先将基本的AC+AP+STA调测好,使WIFI客户端STA可以接入WLAN并且能够自动获取DHCP地址,如果有上网条件,还可以将上网的网口配置进去,同时对ACDNS和网关做一些简单调整,可以实现STA的上网,我们这个实验环境没有做这部分内容。

然后是在AC上配置portal服务器和radius服务器的相关信息,对于这部分内容,脑子里始终记住“服务端-客户端”网络模型就可以了,即:AC作为NAS,作为客户端去连RADIUS服务器;AC作为客户端,portal服务器作为服务端;AC作为客户端,NAC作为服务端。

 

二、portal配置(ossh

 

编辑配置文件:vi

/usr/local/portalServer/webapps/portalServer/WEB-INF/classes/configs.prod.properties

acHost=192.168.100.101  // NAC地址

acPort=2000             // NAC开放的端口

serverPort=0

sharedSecret=123456789    //共享密钥

#chap 0 pap 1

authType=0

timeoutSec=3

sleepSec=0

 

修改后保存,注意:每次修改配置文件后,需重启portalServer 服务后方能生效

 

日志:

/usr/local/portalServer/logs/localhost_access_log.2015-05-12.txt

 

启动 portalServer 服务,执行:

/usr/local/portalServer/bin/startup.sh

关闭 portalServer 服务,执行:

/usr/local/portalServer/bin/shutdown.sh

 

三、freeradius配置:

日志:

/usr/local/var/log/radius/radius.log

 

启动/停止/重启 radius

/etc/init.d/rc.radiusd start/stop/restart

 

radius相关配置:

/usr/local/etc/raddb/radiusd.conf

 

[root@ossh raddb]# more clients.conf

client localhost {

         ipaddr= 127.0.0.1

         secret                = testing123

         require_message_authenticator= no

         nastype     = other      #localhost isn't usually a NAS...

}

client 200.200.200.0/24 {

      secret          = 123456789

      shortname       = ap2000

}

client 192.168.100.0/24 {

      secret          = 123456789

      shortname       = ac6100

      nastype     = other 

}

 

 

[root@ossh raddb]# more users

steve        Cleartext-Password:= "testing"

         Service-Type= Framed-User,

         Framed-Protocol= PPP,

         Framed-IP-Address= 172.16.3.33,

         Framed-IP-Netmask= 255.255.255.0,

         Framed-Routing= Broadcast-Listen,

         Framed-Filter-Id= "std.ppp",

         Framed-MTU= 1500,

         Framed-Compression= Van-Jacobsen-TCP-IP

DEFAULT  Framed-Protocol== PPP

         Framed-Protocol= PPP,

         Framed-Compression= Van-Jacobson-TCP-IP

DEFAULT  Hint== "CSLIP"

         Framed-Protocol= SLIP,

         Framed-Compression= Van-Jacobson-TCP-IP

DEFAULT  Hint== "SLIP"

         Framed-Protocol= SLIP

        

        

[root@ossh raddb]# more proxy.conf

proxy server {

         default_fallback= no

}

home_server localhost {

         type= auth

         ipaddr= 127.0.0.1

         port= 1812

         secret= testing123

         require_message_authenticator= yes

         response_window= 20

         zombie_period= 40

         revive_interval= 120

         status_check= status-server

         check_interval= 30

         num_answers_to_alive= 3

         max_outstanding= 65536

         coa{

                   #Initial retransmit interval: 1..5

                   irt= 2

                   #Maximum Retransmit Timeout: 1..30 (0 == no maximum)

                   mrt= 16

                   #Maximum Retransmit Count: 1..20 (0 == retransmit forever)

                   mrc= 5

                   #Maximum Retransmit Duration: 5..60

                   mrd= 30

         }

}

home_server_pool my_auth_failover {

         type= fail-over

         home_server= localhost

}

realm example.com {

         auth_pool= my_auth_failover

}

realm LOCAL {

}

realm ossh {

       auth_pool = my_auth_failover

}

 

 

四、NAC配置:

 

配置文件:

[root@localhost bin]# more/usr/local/etc/nac-0.2.0/config/nac.conf

# NAC工作的网络接口

NetIF = eth0

 

#  使用外部Portal或者内部Portal,0表示内部Portal,1表示外部Portal

UsePortal = 1

 

# Portal协议, UsePortal = 1 时有效. 1表示华为协议,2表示CMCC协议,版本只支持华为v1

PortalProtocol = 1

 

# Portal服务器共享密钥

PortalShareSecretKey = 123456789

 

# Portal服务器IP地址,UsePortal = 1时有效

PortalAddress = 192.168.100.100

 

# Portal服务器的URL,UsePortal = 1时有效

PortalURL = http://192.168.100.100:8088/

 

# Portal认证方式,0表示CHAP,1表示PAP。当 UsePortal = 1 时有效

PortalMthod = 0

 

#  使用外部Radius或者内部Radius,0表示内部Radius, 1表示外部Radius

UseRadius = 1

 

# Radius服务器IP地址, UseRadius = 1 时有效

RadiusAddress = 192.168.100.100

 

# Radius共享密钥

#RadiusShareSecretKey = testing123

RadiusShareSecretKey = 123456789

 

# Portal服务器WEB资源路径, UsePortal = 0 时有效

PortalResource =/usr/local/etc/nac-0.2.0/www

 

# Portal服务器运行配置文件路径, UsePortal = 0 时有效

PortalConfig =/usr/local/etc/nac-0.2.0/config/route.txt

 

# Portal服务器工作端口,默认端口为10000. UsePortal = 0 时有效

PortalPort = 10000

 

#  认证用户在线时长限制,单位秒,0时无限制,默认值为1200s

SessionTime = 1200

 

#  认证用在线时长检测间隔,单位秒.SessionTime等于0,该值无效,默认值为5s

CheckInterval = 5

 

#  用户账号保存文件路径. usePortal = 0 时有效

NACUsers =/usr/local/etc/nac-0.2.0/config/users.txt

 

#  免认证用户IP,多个以逗号隔开

FreeUsersList = {

}

 

# URL白名单,多个以逗号隔开

WhiteURLList = {

}

 

#  外网IP白名单,多个以逗号隔开

WhiteInternetIPList = {

192.168.131.2

}

 

 

启动、关闭、重启NAC服务:

service nac restart

 

四、配置mysql,使freeradius支持mysql数据库。

 

1、数据库安装、配置

yum install -y mysql*

 

[root@ossh lib]# mysqladmin -u rootpassword 'mysql'

[root@ossh lib]# mysqladmin -u root -h osshpassword 'mysql'

 

create database radius;

 

创建名为radius的数据库

exit退出数据库。

再进入/usr/local/etc/raddb/sql/mysql下导入和建立表结构

 

mysql -u root -pmysql < admin.sql

mysql -u root -pmysql radius </usr/local/etc/raddb/sql/mysql/schema.sql

 

mysql -u root -pmysql radius </usr/local/etc/raddb/sql/mysql/nas.sql

 

2、修改配置文件

修改  /usr/local/etc/raddb/site_enabled/default  文件:

注释太多,将注释和空行屏蔽:

cp default default.bak && grep -v^# default.bak|grep -v ^.#|grep -v ^$>default

authorize{} accounting {}中的sql前面的#去掉,并把authorize{} 中的files前加#;文件如下:

[root@ossh sites-enabled]# more default

authorize {

         preprocess

         chap

         mschap

         digest

         suffix

         eap{

                   ok= return

         }

         #files

       sql

         expiration

         logintime

         pap

}

authenticate {

         Auth-TypePAP {

                   pap

         }

         Auth-TypeCHAP {

                   chap

         }

         Auth-TypeMS-CHAP {

                   mschap

         }

         digest

         unix

         eap

}

preacct {

         preprocess

         acct_unique

         suffix

         files

}

accounting {

         detail

         exec

         attr_filter.accounting_response

       sql

}

session {

         radutmp

}

post-auth {

         exec

         Post-Auth-TypeREJECT {

                   #log failed authentications in SQL, too.

                   attr_filter.access_reject

         }

}

pre-proxy {

}

post-proxy {

         eap

}

 

主配置文件修改modules {}取消这一行的注释:  $INCLUDE sql.conf,配置文件如下:

[root@ossh init.d]# more/usr/local/etc/raddb/radiusd.conf

prefix = /usr/local

exec_prefix = ${prefix}

sysconfdir = ${prefix}/etc

localstatedir = ${prefix}/var

sbindir = ${exec_prefix}/sbin

logdir = ${localstatedir}/log/radius

raddbdir = ${sysconfdir}/raddb

radacctdir = ${logdir}/radacct

name = radiusd

confdir = ${raddbdir}

run_dir = ${localstatedir}/run/${name}

db_dir = ${raddbdir}

libdir = ${exec_prefix}/lib

pidfile = ${run_dir}/${name}.pid

max_request_time = 30

cleanup_delay = 5

max_requests = 1024

listen {

         type= auth

         ipaddr= *

         port= 0

}

listen {

         ipaddr= *

         port= 0

         type= acct

}

hostname_lookups = no

allow_core_dumps = no

regular_expressions        = yes

extended_expressions    = yes

log {

         destination= files

         file= ${logdir}/radius.log

         syslog_facility= daemon

         stripped_names= no

         auth= no

         auth_badpass= no

         auth_goodpass= no

}

checkrad = ${sbindir}/checkrad

security {

         max_attributes= 200

         reject_delay= 1

         status_server= yes

}

proxy_requests  = yes

$INCLUDE proxy.conf

$INCLUDE clients.conf

thread pool {

         start_servers= 5

         max_servers= 32

         min_spare_servers= 3

         max_spare_servers= 10

         max_requests_per_server= 0

}

modules {

         $INCLUDE${confdir}/modules/

         $INCLUDEeap.conf

       $INCLUDE sql.conf

}

instantiate {

         exec

         expr

         expiration

         logintime

}

$INCLUDE policy.conf

$INCLUDE sites-enabled/

[root@ossh init.d]#

 

3)在数据库中加入测试帐号

mysql> use radius;

 

建立组信息:(这些命令不用做任何修改,直接ctrl+cctrl+v就好了)

 

mysql> insert into radgroupreply (groupname,attribute,op,value)values ('user','Auth-Type',':=','Local');

 

mysql> insert into radgroupreply(groupname,attribute,op,value) values('user','Service-Type',':=','Framed-User');

 

mysql> insert into radgroupreply(groupname,attribute,op,value) values('user','Framed-IP-Address',':=','255.255.255.255');

 

mysql> insert into radgroupreply(groupname,attribute,op,value) values('user','Framed-IP-Netmask',':=','255.255.255.0');

 

 

建立用户信息:

 

mysql> insert into radcheck(username,attribute,op,value) values ('test','User-Password',':=','test');

insert into radcheck(username,attribute,op,value) values ('steve','User-Password',':=','testing');

将用户加入组中:

 

mysql> insert into radusergroup(username,groupname) values ('test','user');

 insert into radusergroup (username,groupname)values ('steve','user');

 

mysql>exit;

退出数据库

 

以上命令已添加了一个user组和一个用户,用户名密码都是“test”,以及一个“steve”用户,密码是“testing

 

若希望一个账号只允许一个用户登陆,需添加下行,不添加则一个账号可以多个用户同时登陆:

mysql> INSERT INTO radgroupcheck(groupname,attribute,op,VALUE) VALUES ('user','Simultaneous-Use',':=','1');

 

五、无线认证上网测试

         使用有无线网卡的笔记本电脑接入到wlan,打开浏览器,随便输入一个IP地址,比如11.1.1.1 ,浏览器会弹出portal,如下图所示:

wKiom1VkLnrA6aRQAADyk-TZgLU613.jpg

 

输入用户名“steve密码:“testing”,点击登录按钮,成功登录,如下图:

         wKioL1VkMDGz_bIcAADP8_DIQLM455.jpg



注意,由于本实验环境没有连接外网,因此,测试时需要直接输入IP地址,而不能输入域名。有条件的话,可以在AC上配置连接外网的网线,并配置好DHCP子网的网关、DNS等配置,即可实现最终的认证上网功能。

         调测过程可能出错的地方主要在freeradius上,在调测的时候可以先关闭freeradius/etc/init.d/rc.radiusd stop),然后使用 radiusd –X 命令启用调测模式,这样,可以实时看到调试的消息,方便问题定位。


六、总结

    上面是在调测过程中的配置,由于篇幅有限,没有做详细说明,在各自的软件产品文档里面都能找到相应的说明。在这里做一个简单的说明:

         对于首次安装配置portalradius的人来说,不熟悉相关的概念和配置,因此开始会有些迷茫,我的建议是抓住几个要点:第一,每个软件的关键配置文件、日志、程序启动、关闭命令,将这些最基本的东西记录下来,至少这些是傻瓜型的;第二、对关键配置文件中的配置浏览一遍,对于其中有不懂的参数,查找相关资料了解,根据自己的环境做相应的调整;第三、调试过程中碰到问题反复进行修改参数、重启程序都无法解决的时候,也许是因为对某一个概念理解有误或者遗漏,建议去阅读最基础的文档将自己的知识补足,比如RADIUS协议,802.11协议的基础文档。

         在本实验环境中没有配置上网环境,所以radius中的白名单之类的配置是空的。















本文转自yuweibing51CTO博客,原文链接:http://blog.51cto.com/yuweibing/1654885 ,如需转载请自行联系原作者




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
12439 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
9028 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
11747 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
17017 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
19664 0
使用NAT网关轻松为单台云服务器设置多个公网IP
在应用中,有时会遇到用户询问如何使单台云服务器具备多个公网IP的问题。 具体如何操作呢,有了NAT网关这个也不是难题。
34549 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
21512 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
24769 0
+关注
10145
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载