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

相关资源:

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

下载地址:

链接: 百度网盘 请输入提取码  密码: uz1s

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

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

下载地址: 百度网盘 请输入提取码 密码: rzdp

实验拓扑图:

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,开启DHCP,AP自动获取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。如下图:

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

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

下图是portal配置:

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

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

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

最后是“域配置”:

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

首先将基本的AC+AP+STA调测好,使WIFI客户端STA可以接入WLAN并且能够自动获取DHCP地址,如果有上网条件,还可以将上网的网口配置进去,同时对AC的DNS和网关做一些简单调整,可以实现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+c→ctrl+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,如下图所示:

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

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

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

六、总结

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

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

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

转载于:https://blog.51cto.com/yuweibing/1654885

相关资源:ossh(portal、freeradius)+nac(freeAC)+AC(汉明6100)联调-附件...

OSSH免费版华为Portal相关推荐

  1. 华为AC6605与OSSH免费版华为Portal系统的对

    OSSH免费版华为Portal系统支持华为Portal协议,能够跟市面上支持华为协议的设备进行对接,方便的实现Web Portal认证.下面我们介绍华为主流6605系列AC同OSSH免费版华为Port ...

  2. portal认证 php,如何用PHP制作OSSH 免费版华为Portal系统认证前端页面

    发表于:2014/4/8 10:28:59 #1楼 如何用PHP制作OSSH 免费版华为Portal系统认证前端页面 OSSH免费版华为Portal系统可以满足丰富的认证页面设计需求,目前默认的认证页 ...

  3. OSSH免费版华为Portal系统ISO镜像版发布

    三个月前我们发布了OSSH免费版华为Portal系统,期间得到了很多爱好者和群友的咨询,也收到了很多用户的咨询和反馈,在此感谢大家! 为了提高OSSH免费版Portal系统的易用性,我们推出了该系统的 ...

  4. portal认证 php,如何用PHP制作OSSH 免费版华为Portal系统认证前端页面.doc

    如何用PHP制作OSSH 免费版华为Portal系统认证前端页面 如何用PHP制作OSSH 免费版华为Portal系统认证前端页面 OSSH免费版华为Portal系统可以满足丰富的认证页面设计需求,目 ...

  5. OSSH免费版华为Portal对接华为9303交换机示例说明

    近期收到一个用户的投稿,是关于OSSH免费版Portal系统对接华为93系列交换机的案子,现将详细情况进行说明,希望能够帮助到各位. 测试设备: 华为9303为测试交换机,华为2700为汇聚交换机,O ...

  6. 华为AC6605对接OpenPortal网络准入认证计费系统实现Mac快速认证+Portal认证

    华为AC6605对接OpenPortal网络准入认证计费系统实现Mac快速认证+Portal认证 介绍: OpenPortal网络准入认证计费系统,支持与华为所有支持Portal认证的AC控制器如AC ...

  7. 华为 H3C 配置 Portal认证 mac-trigger快速认证 Mac无感知认证 Radius认证计费 对接 外部Portal认证计费系统 案例

    华为 H3C 配置 Portal认证 mac-trigger快速认证 Mac无感知认证 Radius认证计费 对接 外部Portal认证计费系统 案例 介绍: OpenPortal网络准入认证计费系统 ...

  8. 华为外部Portal认证 Radius认证计费 实现基于Mac快速认证的Mac无感知认证和结合CAS单点登录统一认证平台和AD域LDAP对接配置

    华为外部Portal认证 Radius认证计费 实现基于Mac快速认证的Mac无感知认证 结合CAS单点登录统一认证平台 AD域LDAP对接配置 实现用户名密码实名认证 访客短信认证 二维码扫码 钉钉 ...

  9. 华为 配置 MAC认证优先 Portal认证 Mac无感知快速认证 Radius认证计费 对接 外部 Portal认证计费系统 案例

    华为 配置 MAC认证优先 Portal认证 Mac无感知快速认证 Radius认证计费 对接 外部 Portal认证计费系统 案例 介绍: OpenPortal网络准入认证计费系统,支持用户名密码认 ...

最新文章

  1. 抽样方法,采样方法 shuffle
  2. 减少HQL 的MAP数
  3. windows查看端口占用的进程和杀死进程
  4. 数据库,唯一索引,重复数据处理
  5. CSS的六种垂直居中
  6. React 和 Vue的特点
  7. 读取遥感图像中遇到的问题集锦
  8. dom文档对象模型图
  9. R语言空间插值的几种方法及案例应用
  10. 一次性下载CVPR2016的所有文章
  11. python找出数组中第2大的数字
  12. 康佳电视应用助手服务器连接超时,TV盒子助手如何连接智能电视远程推送软件?解决方法如下...
  13. Oracle分析函数汇总(超全)
  14. 处理 Win 10 开机后输入法不加载问题
  15. Win10 LTSB/LTSC安装微软商店/Microsoft store
  16. 《Machine Learning in Action》—— 浅谈线性回归的那些事
  17. VBS word/excel 转 PDF
  18. Boston Dynamics实验:机器狗对垒真小狗
  19. 揭示未来方向:2018中国TMT行业“领秀榜”盛典直击
  20. Go Module使用 六大场景讲解示例

热门文章

  1. vhdl加法器和减法器_半减法器和全减法器的设计
  2. (转)如何动手打造属于自己的智能家居
  3. python生成快递取件码没了怎么办_货到速递易,但没有收到取件码,怎么办
  4. 怎样在PLSQL Developer14(64bit)当中找到汉化版本?
  5. 【vue2】中 谷歌 Chrome 实现自定义页眉页脚打印
  6. 一份写给极客的智能家居指南
  7. python SSLError HTTPSConnectionPool bad handshake
  8. (Linux)进程间通信
  9. CentOS 5/6/7使用摘记
  10. CentOS7 挂载NTFS分区