简介:广东省第三届职业技能大赛(世界技能大赛选拔赛)网络安全赛项A模块赛题以PDF形式收录,面向网络安全竞赛选手、指导教师及备赛团队,聚焦企业基础设施安全场景下的竞赛要求与考核重点。文件包仅含1个PDF文档,大小仅1.02MB,排版清晰、目录完整,适合直接打印或电子阅读,方便赛前集中复习。目前已有715人浏览学习,是针对性备赛的实用参考。赛题内容完整覆盖竞赛项目简介、任务描述、评分方案,以及基本配置验证、网络设备加固、公共服务保护、安全审核策略配置、登录及密码策略配置、防火墙策略等核心模块,详细展示了从基础设备安全功能配置到分支机构通信、远程工作人员访问策略的完整任务链条。读者可据此还原真实竞赛环境,逐项梳理操作要求与评分标准,系统提升企业网络安全加固、安全审核及策略配置的实战能力。
1. 世界技能大赛网络安全赛项A模块:它到底在考什么
广东省第三届职业技能大赛(世界技能大赛选拔赛)网络安全赛项A模块,是最贴近一线安全运营的一轮比赛。它不考花哨的利用链,不考临场攻防的爆发力,而是把你按在一台台真实的服务器前面,考察你有没有本事把一台“能用”的机器加固成“合规”的机器,同时还不把业务改挂。准备这个赛项的过程,几乎可以当作一次系统化的网络安全入门实操课:账户、策略、防火墙、补丁、日志,这些基本功在比赛里一个都躲不掉。它适合三类人:想冲世赛选拔的在校生、想把系统加固补齐的一线网络安全工程师,以及冲着网络安全就业来、想用一份可复现技能清单敲门的新人。
2. 先把赛点和训练环境立住:E-C-S拓扑与虚拟训练台
2.1 A模块的E-C-S拓扑:三台机器如何转成一场比赛
世界技能大赛网络安全项目的比赛通常把选手分成两队,各自维护一组隔离的业务网络,A模块则是其中考验基本功的单人操作轮次。它的典型拓扑分三层:E(Edge)边界设备、C(Core)核心交换、S(Server)服务器区。E负责内外网路由和第一层访问控制,C负责内部流量交换与VLAN隔离,S区里跑着域控、文件、数据库、Web这些业务角色。
我用一张表把这三层列成可操作的参考:
| 角色 | 常见设备/系统 | 网段划分(参考) | 要处理的事 |
|---|---|---|---|
| E(Edge) | 三层交换机/路由器 | 外网段与内网段互联 | 接口IP、路由、NAT、ACL |
| C(Core) | 二层/三层交换机 | 内部所有VLAN汇聚 | VLAN、端口安全、链路聚合 |
| S(Server) | Windows/Linux服务器 | 服务器独立网段 | 域控、文件、数据库、Web加固 |
不同赛题会给不同的IP规划,但“三层结构、服务器独立成段”这一点几乎是固定的。理解拓扑的意义在于:你做的每一项加固都要回到“这个节点在拓扑里承担什么访问关系”来判断。比如边界设备的ACL一旦放错,后端服务器做得再严,也可能被对手或裁判模拟的攻击直接打穿。
2.2 四个技能组:加固、合规、运维、取证的考察侧重点
A模块名义上叫网络安全,实际考的是四个技能组的组合:
- 系统加固:Windows和Linux的账户策略、密码策略、审计策略、危险服务、共享与权限、注册表关键项。这部分决定机器的“底子”牢不牢。
- 合规核查:对照安全基线逐项检查,把不符合项修掉并留下证据。常见基线包括等保里与主机相关的条目,以及CIS Benchmarks中Windows Server和主流Linux发行版的相关章节。
- 安全运维:补丁更新、日志留存、备份与恢复、业务可用性保障。裁判会做业务可用性检查,服务挂了这一轮基本白做。
- 日志取证与分析:在系统日志和网络设备日志里找到攻击痕迹,按时间线索还原事件,输出报告。这是模块收尾阶段的得分点。
从备赛顺序看,我建议先把系统加固练成“不加思考的肌肉记忆”,再练合规核查的速度,最后补日志分析。日志分析依赖前面加固留下的干净现场,基础一塌糊涂时,攻击痕迹会被你自己的错误操作淹没。
2.3 用VMware复现最小赛训环境:拓扑、快照与服务角色
训练别用真机,一台笔记本加一套虚拟化就够了。我一般用VMware Workstation搭最小化的E-C-S环境:Edge用一台装了双网卡的Linux虚机代替,Core用GNS3或eNSP模拟交换机,Server区放两台Windows Server和一台Linux。硬件上内存16G起步、CPU至少8核、磁盘留出200G,这是能满足基本训练节奏的配置。
关键步骤是先划分虚拟网络。VMware里建议规划三张VMnet:
| 虚拟网络 | 建议网段 | 作用 |
|---|---|---|
| VMnet1 | 10.10.10.0/24 | 模拟外网互联段 |
| VMnet2 | 192.168.1.0/24 | 内网核心段,Server区接入 |
| VMnet3 | 172.16.1.0/24 | 管理网段,用于远程连接与裁判检查 |
我在每台虚机上把网卡按角色接到对应VMnet,再在系统里全部改成静态IP。这个静态化很重要:比赛现场的网络规划是静态的,不提前练,到了现场改网卡配置会浪费大量时间。
训练时一定要用快照。我习惯在“刚装完系统、还没做任何加固”时打一个干净快照,取名base-clean;每完成一个大项加固后再打一个带编号的快照。一旦下一步操作把服务搞挂了,精确退回到上一个已通过检查的状态,而不是整个环境推倒重来。正式比赛没有快照可打,但训练中养成的“改前备份、改后可回退”习惯,会直接转化为赛场上的操作纪律。
要提高单次训练的信息量,我会在Server区塞入一个域控和一个文件服务器角色。装角色用PowerShell批量完成:
Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools Install-WindowsFeature -Name FS-FileServer Install-WindowsFeature -Name Web-Server -IncludeManagementTools三条命令分别装域控、文件服务器和Web服务器角色,-IncludeManagementTools保证管理工具一起装上,免得后面单独补。装了域控之后,Windows加固才能练到“域策略下发”这个真实场景;装了IIS,Web目录权限和按端口放行的防火墙规则才有练习载体。整套环境搭好后,建议把“从开机到域内机器全部上线”控制在15分钟以内,这是后面限时训练的基础量。
3. Windows域环境加固实操:从加域到基线核查的关键命令
3.1 加域与账户合规:先清理用户,再谈策略
A模块的Windows区几乎每次都会出现域环境。拿到机器的第一步不是改密码策略,而是先看这台机器上有哪些用户、哪些组里有不该在的人。多余用户是安全基线里最常见的扣分项,同时也是很多攻击路径的起点。
在目标机上先枚举本地用户和管理员组成员:
Get-LocalUser | Select-Object Name, Enabled, LastLogon Get-LocalGroupMember Administrators | Select-Object Name第一行列出本地用户及启用状态、上次登录时间,第二行看管理员组成员里是否混入了陌生账户。常见问题包括:遗留的旧管理员账户、服务安装时创建的假账户、权限异常放大的Guest。处理方式按三步走:禁用Guest、删除或禁用无人使用的账户、把管理员组成员收敛为明确的运维账户。
接着改密码策略。域环境建议在域控的Default Domain Policy里统一设置,非域机器直接改本地安全策略。命令方式如下:
net accounts /minpwlen:14 /maxpwage:90 /lockoutthreshold:5 /lockoutduration:30net accounts设置最小密码长度14位、最长使用90天、5次错误锁定、锁定30分钟。注意:如果这台机器已经加域,本地net accounts会被域策略覆盖,必须以域控组策略为准。我习惯在域控上打开组策略管理,找到Default Domain Policy,在“安全设置→账户策略”里配置同样的参数,然后执行gpupdate /force强制刷新。
改完策略必须验证。在干净机器上跑一遍secedit /export /cfg C:\secpol.cfg,再打开导出的配置文件检查密码策略和锁定策略与预期是否一致。只用眼睛看界面显示“已修改”不算数,要以导出结果为证。
3.2 注册表与本地策略:五个必调的加固点
Windows加固里有一批注册表项是高频检查点,我挑五个最常被点名的列出来:
# 1. 禁用 LM Hash 存储,避免域内凭据被降级抓取 reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v NoLMHash /t REG_DWORD /d 1 /f # 2. 关闭自动登录,防止明文凭据残留在注册表 reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_DWORD /d 0 /f # 3. 启用UAC,避免进程默认以高权限运行 reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA /t REG_DWORD /d 1 /f # 4. 禁止缓存域凭据明文,防止被转储 reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v DisableDomainCreds /t REG_DWORD /d 1 /f # 5. 审计策略:登录、账户管理、对象访问的成功与失败都记录 auditpol /set /subcategory:"Logon/Logoff","Account Logon","Account Management" /success:enable /failure:enable第一、二条是凭据保护,防止哈希和明文凭据落盘;第三条UAC是访问控制基础;第四条禁掉域凭据缓存,降低被转储面;第五条打开关键审计子类,给后续日志分析留证据。五条执行完后,重启前先跑一次auditpol /get /subcategory:"Logon/Logoff"确认生效,系统审计策略只有重启后才完全生效,别改完就忘了验证。
要注意:auditpol的子类别名在中英文系统里有差异,英文系统直接按上面写法,中文系统需要换成“登录/注销”“账户登录”“账户管理”,否则命令报“未找到子类别”。我训练时会把两条命令都准备好,现场看到报错立刻切换。
3.3 防火墙与服务:在“能用”与“安全”之间找平衡
Windows服务加固有一道经典陷阱:为了安全把所有服务全停了,结果业务检查时文件共享不通、远程管理连不上。比赛环境里业务可用性本身是得分项,所以服务加固要按“最小但够用”来操作。我一般三步走:先枚举服务状态,再梳理业务所需端口,最后用防火墙把暴露面收敛到业务端口。
Get-Service | Where-Object {$_.Status -eq 'Running'} | Select-Object Name, DisplayName Set-Service -Name Spooler -StartupType Disabled -Status Stopped netsh advfirewall set allprofiles state on netsh advfirewall firewall add rule name="Allow_SMB" dir=in action=allow protocol=TCP localport=445 netsh advfirewall firewall add rule name="Allow_WinRM" dir=in action=allow protocol=TCP localport=5985第一行枚举所有正在运行的服务,先看清楚再动手;打印服务Spooler在无打印需求的角色里禁用,是基线里的常见要求;后面三条打开防火墙并显式放行SMB与WinRM。这里有个高频翻车点:先打开防火墙、还没来得及加放行规则,远程管理通道就断了。正确顺序是“先加规则,再开防火墙”,或者开完立刻补规则。
常见服务怎么处置,我按下面这张表来对照检查:
| 服务 | 默认用途 | 比赛环境常见处置 |
|---|---|---|
| Spooler | 打印任务队列 | 无打印需求时禁用 |
| Remote Registry | 远程改注册表 | 禁用 |
| Telnet | 远程终端 | 禁用,明文传输 |
| Windows Update | 补丁分发 | 按题目要求开启或手动管理 |
放行端口时,本地端口号要和业务一一对应:445是SMB文件共享,5985是WinRM远程管理,3389是RDP,需要哪个放哪个。我习惯每条规则单独命名,赛后自查时用netsh advfirewall firewall show rule name=all一眼就能挑出自己改过的东西。
3.4 补丁与基线核查:离线环境下怎么证明你“改到位了”
A模块经常是隔离内网,没有互联网。补丁可能是题目目录里的离线包,也可能只要求核查不要求安装。无论哪种,你都得能回答“这台机器缺哪些补丁、我装了什么”。
查询补丁的标准命令:
Get-HotFix | Sort-Object HotFixID wmic qfe list brief /format:table把输出导出为CSV留存,这就是报告里“补丁管理”一节的证据。如果题目给了离线补丁目录,常见做法是先把补丁复制到目标机,按依赖顺序用wusa.exe静默安装:
wusa.exe C:\patches\KB5034441.msu /quiet /norestart/quiet静默安装,/norestart先不重启,等所有补丁统一装完再重启。如果补丁已经装过,wusa会提示已安装,不影响流程。装完后再跑一次Get-HotFix,把前后两份列表放到报告里对比,这才叫闭环。
基线核查报告是A模块必须交的作业。我的习惯是边加固边记录,不最后补记。每改完一项,在笔记里写“检查项—基线要求—当前值—修改后值—验证命令”,最后整理报告时直接复制。没有这一步,加固做得再到位,裁判无法验证,分数会大打折扣。
4. Linux与网络设备加固:SSH、SELinux与端口安全的实操清单
4.1 Linux账户与SSH:检查顺序比单条命令更重要
Linux加固,最怕的不是不会敲命令,而是瞎敲。拿到一台Linux服务器,我按固定顺序走:账户→SSH→服务→防火墙→SELinux。顺序反了,经常是策略改好了、远程连接也断了,自己把自己关在门外。
先看账户状态:
cut -d: -f1 /etc/passwd awk -F: '($2==""){print $1" has empty password"}' /etc/shadow usermod -L guest第一条列出所有用户名,第二条查shadow里密码为空的账户,第三条锁定不需要的账户。注意usermod -L是锁定登录能力,不是删除账号;如果题目里明确说了“清理后门账户”,要用userdel -r user把账户连同家目录一起删掉。
接着改SSH配置,编辑/etc/ssh/sshd_config:
PermitRootLogin no Protocol 2 MaxAuthTries 3 AllowUsers opsadmin secadmin禁止root直接登录、强制SSH协议2、最多尝试3次认证、只允许指定运维账户登录。改完必做两件事:先sshd -t检查语法,再重启服务。sshd -t这一步很多人跳过,结果一个多余空格让服务起不来,远程直接断开。重启命令按系统不同是systemctl restart sshd还是service sshd restart,操作前先确认init系统,别把systemctl敲在SysV老机器上。
为什么要禁root登录?因为root是爆破的第一目标,而合法的运维操作完全可以先登录普通账户再sudo su -。禁掉它,爆破面就少了一半。
4.2 firewalld与SELinux:不要因为“麻烦”就关掉它们
很多新手一到手就systemctl stop firewalld和setenforce 0,理由是“不关服务起不来”。这在比赛里是送分题:安全基线里防火墙和SELinux的启用状态是必查项,关了等于自曝。
正确做法是把业务端口显式放行:
firewall-cmd --permanent --add-port=22/tcp firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-port=3306/tcp --zone=internal firewall-cmd --reload firewall-cmd --list-all--permanent写入持久规则,配合--reload生效;--list-all验证当前规则。把数据库3306放在internal区域而不是默认的public,是我习惯的收敛方式,只有内网段能访问数据库,外网段摸不到。
SELinux的处理不是关闭,而是保持enforcing,通过布尔值和端口标签解决业务问题:
setsebool -P httpd_can_network_connect on semanage port -a -t http_port_t -p tcp 8080第一行允许Apache作为反向代理时发起网络连接,第二行给非标准端口8080打上http_port_t标签,否则SELinux会拦截对这个端口的访问,表现就是“防火墙放行了、进程起来了,但外部访问就是不通”。遇到这种问题,第一眼去看/var/log/audit/audit.log里有没有denied记录:
grep denied /var/log/audit/audit.log | tail -20这种“什么都对但就是不通”的情况最让人头疼,但多半就是SELinux的avc拒绝日志里藏着答案。顺带提醒,semanage命令属于policycoreutils-python-utils包,系统里没有就先装这个包,否则命令不存在。
4.3 交换机端口安全与ACL:网络层的入场券
网络设备在A模块里占的机器不多,但经常决定整个拓扑能否成立。常见设备是Cisco或华为,命令体系不一样,目标一致:接口安全、VLAN收敛、ACL边界控制。我一般先给核心交换机划分VLAN并配好网关,然后处理端口安全和ACL。
Cisco风格示例如下:
interface GigabitEthernet0/1 switchport mode access switchport port-security switchport port-security maximum 1 switchport port-security violation shutdown switchport port-security mac-address sticky access-list 101 permit tcp 192.168.1.0 0.0.0.255 host 192.168.2.10 eq 443 access-list 101 deny ip any any interface Vlan20 ip access-group 101 in端口安全限定了接入端口最多学习1个MAC地址,地址自动sticky记录,违规直接shutdown,能挡住私接设备和MAC泛洪。ACL部分只放行内网段到服务器区特定主机的443端口,其余全拒。注意ACL有顺序性:permit必须写在deny之前,从上到下匹配,顺序错了等于全部拒绝。
华为设备的对应写法是:
interface GigabitEthernet0/0/1 port-security enable port-security max-mac-num 1 port-security protect-action shutdown acl 3001 rule permit tcp source 192.168.1.0 0.0.0.255 destination 192.168.2.10 0 destination-port eq 443 rule deny ip interface Vlanif20 traffic-filter inbound acl 3001两套语法差别不小,我建议训练时两端都练会。现场抽到思科和华为的概率没法预测,只会一套就容易被设备版本打乱节奏。
5. 做题现场避坑:五条血泪经验,条条都翻过车
5.1 开局不打快照,改错直接重装
现象:训练时一上来就照教程狂敲命令,把系统配置改乱了,想恢复只能重装,半小时没了。 原因:没在系统刚装好的状态留下回退点,而加固过程本来就是“改一项、试一项”,必然有改错的时候。 解决:装完系统、配好IP、打完补丁后立刻给每台虚机做一个base-clean快照;每完成一个加固项目再打一个带名字的快照。任何环节失败,退回上一个已知正常状态只要一分钟。正式比赛没有快照,但训练中养成的“先备份再改动”肌肉记忆,会让你在现场下意识先做配置备份。
5.2 加固把业务改挂了:防火墙误封SMB与远程桌面
现象:裁判检查业务时发现文件共享不通、远程管理连不上,业务可用性判分归零,而你明明“加固”得很漂亮。 原因:打开防火墙后默认拒绝所有入站流量,但SMB(445)、WinRM(5985)、RDP(3389)这些端口没有提前放行,或者放行规则加在了关闭防火墙之前。 解决:按“先加规则、后开防火墙”的顺序操作。每次开防火墙前,先列清这台机器需要对外服务的端口清单,逐一放行,最后再打开防火墙。自查命令是netsh advfirewall firewall show rule name=all,一眼看出当前有效规则。
5.3 密码策略改完,自己先被锁在外面
现象:把密码策略改成14位以上、5次错误锁定,结果自己登录时被锁,域内其他运维账户也跟着失效。 原因:两条——改策略时没同步更新现有账户密码,现有密码不满足新策略,策略在下一次登录时强制生效;或者锁定阈值设太低,测试时连输错几次就锁了。 解决:改策略前先确认这台机器所有在用账户的密码都满足新策略,不满足的先批量重置;锁定阈值和锁定时长搭配合理,我常用5次失败锁30分钟,再预留一个本地应急账户用于解锁。现场真被锁了,由域管理员在域控上解除锁定,不要重启硬来。
5.4 安全基线报告写成流水账
现象:报告里每条检查项只写“符合/不符合”,没有修改前后对比,没有命令依据,裁判无法确认你的工作,分数拿不全。 原因:把“做加固”和“写报告”当成两件事,最后半小时突击补写,只能写出结论。 解决:把报告做成“现场记录”而不是“事后回忆”。我自己的表格列四项:检查项、基线要求、现状、修改动作与验证命令,每改完一项立刻写一行,报告里附上命令输出。最后专门留10分钟统一整理格式,而不是写完再补。
5.5 鼠标点图形界面,手速跟不上
现象:时间过半,你还在图形界面里一页页翻“本地安全策略”,别人已经用命令改完两台服务器。 原因:判分踩点非常多,图形界面每项操作花三四倍时间,数量一多差距就拉出来了。 解决:平时训练就强制全程命令行。Windows用PowerShell和netsh,Linux用bash,网络设备直接敲命令行。练到看见检查项,手指能不加思考地敲出对应命令。这种条件反射不是死背命令,而是把命令和场景绑死。
6. 把加固做成可复验的闭环:赛后自查脚本与备赛节奏
前面这些命令,单看每一条都不难,比赛里最容易出问题的不是“不知道命令”,而是“改完不知道查什么”。我的做法是准备一个自查脚本,每轮训练收尾时跑一遍,把所有关键状态一次性导出成报告。
用PowerShell写一个简单的基线核查脚本:
$report = @() $report += Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" | Select-Object @{n='NoLMHash';e={$_.NoLMHash}} $report += Get-Service Spooler | Select-Object Name, Status, StartType $report += Get-HotFix | Sort-Object HotFixID | Select-Object HotFixID, InstalledOn $report += Get-NetFirewallRule -Direction Inbound -Action Allow | Select-Object DisplayName, Enabled $report | Export-Csv -Path C:\audit_result.csv -NoTypeInformation第一行读LSA注册表看哈希存储策略,第二行看打印服务是否已禁用,第三行导出补丁清单,第四行列出入站放行的防火墙规则。这四类数据基本覆盖A模块主机加固的主要踩分点。Linux端我写一个等价shell脚本,依次输出用户列表、SSH关键配置、SELinux状态和防火墙规则,用grep -E过滤关键项后存文件。
这个脚本不是为了自动化比赛——现场题目千变万化,脚本撑不起来——它的价值是让训练形成稳定的自查节奏:改完一轮,跑一次自查,对照输出找遗漏。比赛最后半小时,我也人工跑一遍自查命令,确认没有“服务没禁用”“防火墙规则放多了”这类低级问题,再交报告。
最后说备赛节奏。我见过太多人把时间花在背题库上,实际题目一变就懵。更可靠的路线是:第一周搭环境、跑通最小加固流程;第二到第四周做分项限时训练,每台机器给自己定25分钟完成账户、策略、防火墙、补丁四组动作;之后每周做一次两小时完整模拟,和队友互换机器互查,互相挑刺。这套打法也是网络安全学习路线里最强调的动手闭环:看一百遍不如亲手加固三台机器。我至今记得第一次模拟赛后交报告的狼狈:加固做了一大堆,报告里却拿不出几条像样的证据。从那以后我给自己定了一条规矩——每次训练结束前,必须能脱口回答“这台机器当前有哪些用户、哪些服务在跑、哪些端口开放、哪些补丁缺失”。能答上这四个问题,你在A模块的发挥就不会差。希望帮到你。
本文还有配套的精品资源,点击获取