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

相关资源:

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

下载地址:

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

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

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

下载地址: http://pan.baidu.com/s/1gd5kMt1 密码: 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

[[email protected] 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

}

[[email protected] 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

[[email protected] 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配置:

配置文件:

[[email protected] 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*

[[email protected] lib]# mysqladmin -u rootpassword ‘mysql‘

[[email protected] 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前加#;文件如下:

[[email protected] 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,配置文件如下:

[[email protected] 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/

[[email protected] 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”

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

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

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

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

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

时间: 2024-08-30 12:17:12

ossh(portal、freeradius) + nac(freeAC) + AC(汉明6100)联调的相关文章

LeetCode:Number of 1 Bits - 整数的汉明重量

1.题目名称 Number of 1 Bits(整数的汉明重量) 2.题目地址 https://leetcode.com/problems/number-of-1-bits/ 3.题目内容 英文:Write a function that takes an unsigned integer and returns the number of '1' bits it has. 中文:写一个函数,输入一个无符号整数,返回其中值为1的比特位的个数(这个值也被称为数字汉明重量) 例如,32位整型数字11

汉明嵌入

汉明嵌入简介:http://blog.csdn.net/definewl/article/details/41217441 汉明嵌入:http://blog.csdn.net/yylgg0922/article/details/47284879 汉明距离:http://blog.sina.com.cn/s/blog_663457ed01017bry.html

汉明距

1 //汉明距离——用位运算 2 #include<iostream> 3 using namespace std; 4 5 int hammingDistance(int x, int y) { 6 //将x与y进行异或运算,在进行循环与操作,不为0,则result++; 7 int result=0; 8 int a; 9 a= x ^ y;//异或运算 10 for(int i=0;i<32;i++){ 11 if((a & 1 )!=0){ 12 result++; 13

汉明重量

https://baike.baidu.com/item/%E6%B1%89%E6%98%8E%E9%87%8D%E9%87%8F/7110799?fr=aladdin 汉明重量是一串符号中非零符号的个数.因此它等同于同样长度的全零符号串的汉明距离.在最为常见的数据位符号串中,它是1的个数. 原文地址:https://www.cnblogs.com/mjn1/p/11637882.html

汉明校验码

首先放个图,为汉明码中信息位N与校验位K的位数关系:2^(K-1)>=N+K+1 码距:一个编码系统中任意两个合法编码(码字)之间不同的二进数位(bit)数叫这两个码字的码距,而整个编码系统中任意两个码字的的最小距离就是该编码系统的码距.以汉明校验码中的偶校验为例,若汉明码最高位号为m,最低位号为1,即有Hm.Hm-1.Hm-2···H2.H1. 一.编码规则为:⑴每个校验位Pi在汉明码中被分到位号2^(i-1)的位置上,其余各位为信息位. ⑵汉明码的每一位Hi有多个校验位校验,其关系式是被校验

汉明科技-汉明探针设备

AP(无线访问接入点(WirelessAccessPoint)) AP就是传统有线网络中的HUB,也是组建小型无线局域网时最常用的设备.AP相当于一个连接有线网和无线网的桥梁,其主要作用是将各个无线网络客户端连接到一起,然后将无线网络接入以太网.大多数的无线AP都支持多用户接入.数据加密.多速率发送等功能,一些产品更提供了完善的无线网络管理功能.对于家庭.办公室这样的小范围无线局域网而言,一般只需一台无线AP即可实现所有计算机的无线接入. AP的室内覆盖范围一般是30m-100m,不少厂商的AP

蓝海卓越无线PORTAL运营互联网部署方案

蓝海卓越推出了无线PORTAL.云AC.AP等系列产品,即将增加广告平台.具体可以应用于如下项目或行业: 1.目前热门的互联网广告运营.城域网无线覆盖认证 2.企业多分支认证,在不同地点,不同规模的分支机构 3.连锁行业上网认证 4.金融银行用户上网认证.广告推送 5.医院用户上网认证.广告推送 6.机场.车站.码头等热点区域上网认证.广告推送 7.景区上网认证.广告推送 8.酒店.宾馆上网认证 9.与企业数据库结合认证 10.高校PORTAL认证计费 11.飞机/船舶卫星转WIFI场景的认证计

CMCC portal 协议wireshark 抓包分析

环境介绍: 认证服务器 192.168.13.253 AC 192.168.13.252 抓包过程:1.安装wireshark,宁盾wifi默认安装路径下${DKEY AM }/Utilities目录下有wireshark安装包,直接安装即可,具体安装过程略.2.添加Portal协议分析插件,具体操作过程参见附件  portal协议分析插件.zip (114.59 KB, 下载次数: 894) 3.运行wireshark选取网卡,例我的认证服务器所使用的网卡为本地链接;如图: 4.过滤porta

Atitti knn实现的具体四个距离算法 欧氏距离、余弦距离、汉明距离、曼哈顿距离

Atitti knn实现的具体四个距离算法  欧氏距离.余弦距离.汉明距离.曼哈顿距离 1. Knn算法实质就是相似度的关系1 1.1. 文本相似度计算在信息检索.数据挖掘.机器翻译.文档复制检测等领域有着广泛的应用1 2. 汉明距离1 2.1. 历史及应用1 3. 曼哈顿距离2 3.1. SimHash + 汉明距离3 3.2. .简单共有词4 1. Knn算法实质就是相似度的关系 1.1. 文本相似度计算在信息检索.数据挖掘.机器翻译.文档复制检测等领域有着广泛的应用 数据挖掘的过程中,只用