简介:大势至网络准入控制系统 v8.0 面向企业网管、IT运维及中小局域网管理员,聚焦外来设备接入管控与内网终端行为约束,可用于隔离外部电脑、限制私改IP/MAC、防御ARP攻击及检测混杂模式网卡等日常安全场景。压缩包共9个文件,以3个exe、3个doc为主,另含htm、txt和pdf,合计约13.06MB;可执行程序承载准入控制与抓包组件,文档材料则覆盖使用说明、常见问题与功能详解。已有730人学习,说明该工具在局域网准入与统计监测需求中具备一定参考价值。包内材料可帮助读者了解部署前准备、试用功能边界、常见故障排查及远程协助流程,并借助说明文档与PDF快速梳理功能模块和适用条件,适合作为局域网安全管控方案的入门参考与选型对照。
1. 先想清楚装在哪:一次周二早上的排查
某公司的办公区,原本固定两百多台机器,某个周二早上网关日志里突然多出十几台陌生 MAC,有人把私人笔记本直接插进了会议室网口,还接了个随身路由器。运维查这件事查了两天,最后是靠交换机端口表和现场走一圈对上的。这类事出一次就够了,后来他们决定上一套准入控制,用的就是大势至网络准入控制系统 v8.0。这套东西定位很清楚:网络软件里的统计监测那一类,核心是把局域网里"谁在线、谁合规、谁该被拦"管起来。
但拿到手的第一步就有人栽跟头。多数人的第一反应是在自己办公电脑上解压这个 rar,双击 setup.exe 试装,装完发现管理页面打不开,或者第二天地址变了连不上。这套系统本质是个服务端,得先想清楚它守在哪台机器上,再谈装。适合谁:手里管着一两百台以内终端、没有专业 NAC 设备、又必须把外来设备挡在外面的中小规模网络。装不好会怎样?不是报错,是"看着装上了",策略其实一条没生效——这才是最坑的地方。
2. 环境盘点:v8.0 到底挑什么系统、缺哪些依赖
动手之前先把这张环境清单过一遍。我见过太多人跳过这一步,装到一半卡在数据库连接上,然后开始怀疑压缩包下坏了。实际上九成的安装失败都不是包的问题,是环境没铺平。
2.1 服务端、控制台、客户端的系统组合
这套系统是三层结构:服务端跑准入引擎和数据库,管理控制台是浏览器访问的 Web 界面,客户端 Agent 装在受控终端上。三者对系统的要求不一样,混着装最容易出问题的是把服务端塞进一台已经干着别的活的机器。
| 角色 | 推荐系统 | 说明 |
|---|---|---|
| 服务端 | Windows Server 2012 R2 / 2016 / 2019 标准版,64 位 | 装在物理机或长期开机的虚拟机上,不要装在会关机的工作站上 |
| 管理控制台 | 任意装有 Chrome / Edge 的机器 | 本质是浏览器访问,不需要单独装客户端程序 |
| 受控终端 | Windows 7 SP1 及以上 / Windows 10 / Windows 11 | 32 位和 64 位都要装对应版本 |
| 数据库 | SQL Server 2008 R2 及以上,或安装包内附带的轻量库 | 终端超过 200 台建议上独立 SQL Server 实例 |
两个硬性建议:别装 Windows 家庭版,家庭版缺组件也缺策略管理能力,装完大概率是半残状态;别装在域控制器上,准入服务要监听端口、要发 ARP 探测,跟域控的职责撞在一起,出问题很难分清是谁的锅。服务器本身用固定 IP,这一点在第 2.3 节会给出具体命令。地址一变,客户端全部失联,这是最典型的"装好了但用不了"。
在小规模场景里捆绑的轻量库够用,但它不适合做长期数据留存。如果打算把"统计监测"这块用起来——比如按月看外来设备拦截次数、终端在线率曲线——那还是老老实实单独装一个 SQL Server 实例,把库放出去。
2.2 依赖组件和必须放通的端口
安装向导会检查一部分依赖,但它检查不全。下面这几样我一般在装之前手工补齐:
- .NET Framework 4.5 或更高版本。Server 2012 R2 自带的版本偏低,需要单独装。
- Visual C++ 运行库(2013 和 2015-2019 两套都装上,别问为什么,装上省事)。
- 如果服务端用 IIS 承载管理页面,确认 IIS 的静态内容、ASP.NET、WebSocket 这几个功能已启用。
- 安装期间临时关闭杀毒软件的实时防护,装完再开。这条不是玄学,Agent 的驱动注册经常被杀软拦下来,而且是静默拦截,日志里什么都不留。
端口这块最容易漏。准入系统要发现设备,靠的不只是自己的协议,还要借助系统级的探测手段,所以下面这些端口在服务端和终端之间必须是通的:
| 端口 | 协议 | 用途 |
|---|---|---|
| 8080 / 8443 | TCP | 管理控制台 Web 访问,以安装向导里实际配置的为准 |
| 9000 | TCP | 客户端 Agent 与服务端的心跳、策略下发通道 |
| 1433 | TCP | 连接外部 SQL Server 实例 |
| 135 / 445 | TCP | 采集终端主机名、共享信息时使用 |
| 161 | UDP | 通过 SNMP 读取交换机、打印机等设备信息 |
| ICMP | — | 存活探测 |
很多人装完发现"设备扫到了,但主机名全是空的、厂商型号也不显示",八成就是 135、161 这几个没放通。放通方式不用整套关防火墙,按端口开规则就行。
2.3 装前基线:五条命令把地基砸实
服务器到手,别急着解压。先把网卡、防火墙、电源策略这些基础项固定下来,这几步做完再装,后面能省掉一大半莫名其妙的故障。
# 1. 管理网卡固定 IP,避免 DHCP 续租导致准入服务失联 New-NetIPAddress -InterfaceAlias "Ethernet0" -IPAddress 10.20.30.10 -PrefixLength 24 -DefaultGateway 10.20.30.1 Set-DnsClientServerAddress -InterfaceAlias "Ethernet0" -ServerAddresses 10.20.30.2,10.20.30.3-InterfaceAlias要换成服务器上实际的网卡名,用Get-NetAdapter可以列出来。-PrefixLength 24对应 255.255.255.0 的掩码。如果服务器有多块网卡,务必确认绑定的这块是接内网的那块,绑错网卡的后果是服务起来了但谁也连不上。
# 2. 只放行准入系统需要的端口,不要图省事直接关防火墙 New-NetFirewallRule -DisplayName "NAC-Web" -Direction Inbound -Protocol TCP -LocalPort 8080,8443 -Action Allow New-NetFirewallRule -DisplayName "NAC-Agent" -Direction Inbound -Protocol TCP -LocalPort 9000 -Action Allow New-NetFirewallRule -DisplayName "NAC-SNMP" -Direction Inbound -Protocol UDP -LocalPort 161 -Action Allow New-NetFirewallRule -DisplayName "NAC-Discovery" -Direction Inbound -Protocol TCP -LocalPort 135,445 -Action Allow规则名可以随便起,但建议带上NAC-前缀,将来卸载或者排查冲突的时候好找。端口号必须跟安装向导里实际填的一致,如果安装时把 Web 端口改成了 8000,这里也要跟着改,否则就是自己给自己挖坑。
# 3. 关掉休眠和快速启动,服务器不需要这两样 powercfg /hibernate off # 4. 确认系统时间同步正常,准入日志的时间戳错乱会导致后续审计对不上 w32tm /resync # 5. 打开长路径支持,部分日志目录层级较深 Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1powercfg /hibernate off会同时关掉快速启动,对服务器来说是好事——快速启动本质是混合休眠,会让网卡驱动状态残留,偶尔导致服务启动时绑不上端口。时间同步那条经常被忽略,但准入系统的拦截记录一旦时间戳飘了,事后追查就是一笔糊涂账。
最后一条:安装路径统一用英文、不带空格,比如D:\NacServer。这条不是洁癖,是血泪经验,第 5 章会专门讲这个坑。
3. 解压与安装:从 rar 包到管理页面能打开
环境铺平了,开始动真格。这一章的顺序不能颠倒,先验包、再解压、再装库、最后装主程序。
3.1 解压前先校验,别信"能打开就是好的"
rar 包有个特点:下载或拷贝过程中断,解压到 90% 才报错,前面看着一切正常。所以第一步不是解压,是测试。
# 先做完整性测试,不产生任何文件,几十秒的事 "C:\Program Files\WinRAR\UnRAR.exe" t "D:\pkg\nac_v8.0.rar" # 测试通过后解压到英文短路径,保留目录结构 mkdir D:\nac_setup "C:\Program Files\WinRAR\UnRAR.exe" x "D:\pkg\nac_v8.0.rar" "D:\nac_setup\"t参数是 test,只读校验;x是带完整路径解压。如果把 rar 直接解压到桌面或者带中文的目录下,后面安装程序调用内部组件时路径解析容易出问题,尤其是服务端注册 Windows 服务那一步,路径里的空格会被当成参数分隔符。我在一台机器上见过解压到"新建文件夹 (2)"里的,装完服务起不来,查了一个多小时才发现。
解压完成后先别急着点 setup,把目录过一遍。正常应该能看到安装主程序、数据库脚本目录、文档目录、客户端安装包目录、以及一个许可文件或授权说明。如果客户端目录是空的,说明包不完整,直接重下,别硬装。
3.2 数据库先建好,再装服务端
顺序很关键:先有库,再装程序。反过来装也能装,但初始化那一步容易失败,失败之后残留的注册表项很难清干净。
如果用独立的 SQL Server,我一般单独建库、单独建账号,绝不用 sa。sa 的权限太大,这套系统只需要它自己那个库的权限。
-- 建库时指定中文排序规则,否则设备名、部门名里的中文会乱码 CREATE DATABASE NacDB COLLATE Chinese_PRC_CI_AS; GO -- 单独建登录名,只给这一个库的权限 CREATE LOGIN nac_user WITH PASSWORD = 'Nac@Init#2024', CHECK_POLICY = ON; GO USE NacDB; GO CREATE USER nac_user FOR LOGIN nac_user; GO ALTER ROLE db_owner ADD MEMBER nac_user; GOCOLLATE Chinese_PRC_CI_AS里 CI 表示不区分大小写,AS 表示区分重音。这套排序规则下,中文字段能正常存取,不会出现"某某部门"变成问号的情况。CHECK_POLICY = ON让密码符合系统的复杂度要求,有些环境的安全基线会检查这一项,提前打开省得后面被扫出问题。
建完之后一定要测一次连通性,别等到安装向导里才试:
# 用新账号连一次,确认 TCP 1433 通、账号密码对 sqlcmd -S 10.20.30.20,1433 -U nac_user -P "Nac@Init#2024" -d NacDB -Q "SELECT DB_NAME() AS CurrentDB, SUSER_NAME() AS LoginName"能返回库名和登录名就说明这条链路没问题。返回"登录失败"多半是账号没建对或者 SQL Server 只允许 Windows 身份验证,后者要去实例属性里改成混合模式,改完需要重启 SQL 服务。
数据库就绪后,运行安装主程序。这里说句实在话:v8.0 这个安装包我没在文档里找到可靠的静默安装参数,第一次装老老实实走图形向导,别去网上抄别的 InstallShield 包的/s /v"/qn",参数对不上会装出个半成品。向导里几个关键填空:安装路径选D:\NacServer,数据库类型选外部 SQL Server,地址填10.20.30.20,1433,账号密码填上面建的那套,Web 管理端口默认 8080 一般不用改。装完向导会提示初始化数据库表结构,这一步如果卡住,回头看第 5 章第一条。
3.3 首次登录:改密码、导许可、看服务状态
安装完成后服务一般会自动起来,但别急着信。先用命令确认服务真的在跑,再用浏览器访问。
# 确认准入相关的服务处于 Running 状态 Get-Service | Where-Object { $_.Name -like "*Nac*" -or $_.DisplayName -like "*准入*" } | Format-Table Name, Status, StartType # 确认 8080 端口确实被监听 netstat -ano | findstr ":8080"StartType那一列如果是 Manual,改成 Automatic,不然服务器重启后服务不会自己起来,第二天早上你会发现所有客户端都掉线了。改法:Set-Service -Name 服务名 -StartupType Automatic。
浏览器访问http://10.20.30.10:8080,默认管理员账号一般是 admin,首次登录强制改密码。改完之后第一件事是导入许可文件——没许可的状态下系统通常只能管理很少的终端,看着能用,实际一接终端就卡住。许可文件的位置和导入入口在控制台的系统设置里,导入后页面上会显示授权终端数量,跟实际采购的对一下,对不上就联系供方,别自己改。
登录后先看三处:系统信息里的版本号和授权状态、网络配置里的服务端地址、日志里的启动记录。这三处任何一处不对,先解决再往下走,别急着配策略。
4. 准入策略配置:从"只看不管"到真正拦住
这是最容易被做错的一章。策略配得越狠越显得专业,这个想法很危险。上线节奏错了,一次误拦就能让整个办公区打爆你的电话。
4.1 先把网段圈对,再谈扫描
准入系统的能力边界,取决于它能看到多大的网段。配置扫描范围的时候,把公司实际在用的网段全加进去,同时排除掉不该纳入的设备地址段。
扫描范围的配置项通常包括:网段(CIDR 或起止地址)、扫描周期、排除地址列表。排除列表里至少放这几样:网关、服务端自己、核心交换机管理地址、打印机等固定设备。为什么排除打印机?因为很多网络打印机不支持标准的资产采集,扫进来会被判成"未知设备",然后一直报警,天天看报警会让人麻木,麻木之后真正的异常就看不见了。
配置之前,我习惯先自己扫一遍,心里有个底数。这样后面系统扫出来少了几台,能立刻判断是扫描配置的问题还是网络本身的问题。
# Windows PowerShell 5.1 版本,逐台探测,适合两百台以内的网段 $alive = @() 1..254 | ForEach-Object { $ip = "10.20.30.$_" if (Test-Connection -ComputerName $ip -Count 1 -Quiet -TimeoutSeconds 1) { $alive += $ip } } "存活主机数: $($alive.Count)" $alive | Out-File D:\nac_setup\alive_before.txt -Encoding utf8-Count 1只发一个包,-TimeoutSeconds 1把超时压到 1 秒,否则扫完一个 C 段要十几分钟。PowerShell 7 有并行的-Parallel参数可以快很多,但服务端系统上装的往往是 5.1,用上面这个顺序扫的版本更保险。扫出来的结果存成文件,跟系统扫描结果做对比,差得太多就说明服务端的网络位置不对——比如服务器接在了核心交换机的镜像口上,只收不发,当然扫不到。
4.2 阻断方式的选择:旁路还是客户端
这套系统提供几种管控思路,实际用下来无非两类:靠网络侧拦(网关联动、ARP 方式),还是靠终端侧拦(装 Agent 强制)。两者不是二选一,多数环境是混着用。
网络侧阻断的好处是终端不用装东西,代价是对网络设备的依赖高,交换机或网关不支持联动就发挥不出来;终端侧阻断的好处是策略执行得彻底,代价是要在每台机器上装 Agent,工作量摆在那。
我一般这么排:办公区固定工位的 PC,走终端侧,装 Agent,一劳永逸;会议室、访客区这种流动性大的地方,走网络侧,不装东西,插上就被识别、被限制。这个组合覆盖了绝大多数场景,也避开了"全公司两千台机器都要装 Agent"这种不现实的活。
模式切换的顺序,这里必须强调:新上线先跑"仅记录"模式,至少一周。这一周里系统会把人判定成各种状态,你把误判的一条条加进白名单。等误判清零了,再切"提示"模式,最后才切"阻断"。跳过观察期直接阻断,第一个被拦的往往是某台跑着特殊业务的老机器,然后就是连环电话。这个坑我踩过,不丢人,但没必要踩第二次。
4.3 客户端下发:域环境用组策略,工作组用脚本
Agent 的安装包在解压目录的客户端子目录里。手工双击装十台还行,装一百台就得靠下发了。
域环境用组策略下发 MSI,这是最省事的路子。工作组环境或者没有域控的,用登录脚本:
:: 登录脚本里静默安装 Agent,服务器地址通过参数传入 msiexec /i "\\10.20.30.10\deploy\NacAgent.msi" /qn SERVER=10.20.30.10 PORT=9000 /l*v "C:\Windows\Temp\nac_agent_install.log"/qn表示完全无界面,SERVER和PORT是 MSI 里定义的属性,具体属性名要以实际包为准——拿 Orca 或者msiexec /?看一眼就能确认。/l*v输出详细安装日志,这是排查静默安装失败唯一可靠的黑匣子,千万不要省。装不上又没有日志,等于闭着眼修车。
装完 Agent 的终端,在控制台的终端列表里应该几分钟内就出现,状态从"未注册"变成"已注册"。如果一批机器装了都没上报,先挑一台看C:\Windows\Temp\nac_agent_install.log里的返回码,1603 是权限或已存在旧版本,1618 是有另一个安装正在进行,3010 是装完需要重启。这三个码覆盖了我遇到的大半情况。
还有一点:Agent 装完不要立刻重启终端。先让它跑起来,确认能心跳,再重启验证开机自启。顺序反了的话,重启后起不来你分不清是 Agent 的问题还是系统的问题。
5. 避坑与排查:五条实打实的翻车记录
5.1 装到最后一步回滚,进度条走完就退出
现象:安装向导跑到"正在注册服务"或者"正在初始化数据库"时进度条回滚,弹出通用的失败提示,日志里只有一行"Installation failed"。
原因:这类回滚九成是路径问题或者权限问题。路径带中文、带空格、带括号,安装程序调用内部组件时参数被截断。另一个常见原因是目标盘不是 NTFS,或者当前账户对目标目录没有完全控制权限。
解决:换到D:\NacServer这种纯英文短路径重装。重装前先控制面板卸载干净,再手工检查C:\Program Files (x86)和注册表HKLM\SOFTWARE下有没有残留目录,有就删掉。用管理员身份运行 setup.exe,右键"以管理员身份运行",不要指望 UAC 弹窗点一下就行。
5.2 服务是 Running,管理页面却打不开
现象:Get-Service看到服务在跑,浏览器访问 8080 一直转圈或者直接 404。
原因:端口被别的程序占了,或者 IIS 里的站点绑定错了地址。还有一种情况是服务监听在127.0.0.1而不是0.0.0.0,本机访问正常、别的机器访问不了。
解决:先netstat -ano | findstr ":8080"看是谁占着,拿到 PID 用tasklist /fi "pid eq 进程号"反查进程名。如果是被别的程序占了,改准入系统的 Web 端口,或者停掉那个程序。如果监听地址是 127.0.0.1,去配置文件里把绑定地址改成0.0.0.0,改完重启服务。
5.3 设备能扫到 IP,但主机名、厂商全是空
现象:终端列表里一堆 IP 和 MAC,主机名栏是空的,设备类型显示"未知"。
原因:采集主机名依赖 135、445 端口和 WMI 权限,采集厂商型号依赖 161 的 SNMP。这些端口在终端防火墙或者交换机 ACL 上被拦了。跨网段扫描时,如果中间的三层设备没开 ARP 代理,MAC 也拿不到。
解决:在终端侧放行 135、445,服务端账户要有目标机器的管理权限(域环境用域账号,工作组环境要在每台机器上建同名同密码的本地管理员)。跨网段的话,每个网段部署一台探针,或者让网络同事在核心设备上配置代理。这一步不做,系统的"统计监测"就只能看到在线数,看不到是谁,价值大打折扣。
5.4 外来设备绑定了还是能上网
现象:确认某台外来笔记本已经被识别、也做了绑定策略,但它照样能访问内网资源。
原因:策略模式还停留在"仅记录",或者这台机器所在的网段没纳入扫描范围——常见于无线网段,有线管住了,Wi-Fi 那条路还敞着。还有一种是这台机器的 IP 被手工改成了已注册设备的地址,形成地址冲突。
解决:先看策略模式,确认已切到阻断;再核对扫描范围是否覆盖无线网段,没覆盖就加进去。地址冲突的情况,在系统里开启 IP-MAC 一致性检查,一旦发现同一个 IP 对应两个 MAC,直接断掉后接入的那个。
5.5 策略上线当天,几台老机器彻底断网
现象:切换到阻断模式后,几台跑老业务系统的机器完全连不上任何东西,拔掉网线重插也没用。
原因:策略太严,把这些机器访问管理服务器本身的流量也拦了,Agent 连不上服务端,被判定成"不合规设备"持续阻断,形成死循环。另一种是这些机器上装了别的安全软件,跟 Agent 的驱动抢同一层钩子。
解决:在策略里加一条最高优先级的例外规则,允许所有终端访问服务端地址的 8080 和 9000 端口,这条规则永远不能删——这是自救通道,相当于后悔药,删了就只能去现场拔网线。驱动冲突的情况,把另一款安全软件的驱动加载顺序调到 Agent 之后,或者干脆在策略里把这批机器划进兼容白名单,单独放行。
6. 装完怎么验证:三台终端跑一遍才算数
装完不验证,等于没装。我一般的做法是找三台终端,跑一个固定剧本,覆盖"合规""不合规""例外"三种状态。这三台机器不用真机也行,虚拟机足够,重点是流程走完整。
| 验证项 | 测试机 A(已注册合规) | 测试机 B(外来未注册) | 测试机 C(白名单例外) |
|---|---|---|---|
| 终端列表是否出现 | 5 分钟内出现,状态已注册 | 扫描周期内出现,状态未注册 | 出现,标记为例外 |
| 内网资源访问 | 正常 | 被阻断或提示 | 正常 |
| 外网访问 | 正常 | 按策略限制 | 正常 |
| 服务端日志 | 有心跳记录 | 有拦截记录 | 有放行记录 |
| 拔插网线后 | 自动恢复 | 仍被拦 | 自动恢复 |
具体操作顺序:先把 A、B、C 三台机器的 IP 固定成10.20.30.101、102、103,然后分别在系统里查它们的最终状态。
-- 一次查出三台验证机的绑定状态和最后心跳时间,确认闭环 SELECT HostName, IP, MAC, BindState, LastHeartbeat FROM Nac_Device WHERE IP IN ('10.20.30.101', '10.20.30.102', '10.20.30.103') ORDER BY IP;BindState是绑定状态,LastHeartbeat是最后一次心跳时间。如果 B 机的BindState显示"未绑定"但内网还能通,说明策略没生效,回头查第 5.4 条。如果 C 机压根没出现在这张表里,说明白名单配对了但扫描范围没覆盖到它,两头都要对上。
再补一个心跳的实时检查,比翻数据库直观:
# 在服务端看最近 10 分钟内有心跳的终端数量,数字对不上就是有终端掉线 $since = (Get-Date).AddMinutes(-10) (Get-ChildItem "D:\NacServer\logs\heartbeat" -Filter "*.log" | Where-Object { $_.LastWriteTime -gt $since }).Count日志目录名以实际安装后生成的为准,D:\NacServer是前面约定的安装路径。这个数字应该接近当前在线的合规终端总数,差得多就说明 Agent 大面积掉线,去看服务端的 Agent 通信日志,通常是端口或者服务端地址配错了。
最后一个容易被忽略的验证点:把服务端自己重启一次。重启完等三分钟,看客户端是不是自动重连、策略是不是自动恢复。这一步能验出服务有没有设成自动启动、数据库连接串是不是写死在内存里。我见过装完一切正常、结果服务器例行维护重启一次,全公司断网半小时的案例。
从那以后我每次装完这套东西,都强制自己走一遍"三台终端剧本 + 一次服务端重启",不管多赶时间。装的时候多花二十分钟,比上线后被电话追着跑强太多。希望帮到你。
本文还有配套的精品资源,点击获取