服务器的安全从收敛暴露面开始:不需要的端口全部关闭、默认的账号全部改名、空密码的账号全部禁用——安全基线把服务器的初始状态从「能用」提升到「难攻」。基线的执行是一次性的加固加持续的巡检。
---端口基线:白名单外的端口全部关闭
local PORT_WHITELIST = {
[22] = 'SSH(仅跳板机来源)',
[80] = 'HTTP',
[443] = 'HTTPS',
[7000] = '游戏网关',
}
setontimerex(147, 300)
function Baseline.portCheck()
local open = Baseline.listeningPorts()
for _, port in ipairs(open) do
if not PORT_WHITELIST[port] then
Ops.alert('基线违规:未登记端口 ' .. port ..
' 在监听')
end
end
end
端口的基线是白名单制:名单外的监听端口全部视为违规——游戏网关、Web 的 80 与 443、跳板机来源的 SSH 是仅有的合法暴露,其余一律关闭。SSH 的加固三件套:禁用密码登录只留密钥、禁用 root 直接登录、来源限制到跳板机的 IP——远程管理的入口收紧到一条受控的通道。基线的巡检自动化:每 5 分钟扫描监听的端口与白名单比对,违规即告警——基线的执行靠巡检持续盯住而不是一次性的加固。
---账号的基线:命名与权限的规范
function Baseline.accountCheck()
local issues = {}
-- 空密码的账号检查
for _, acc in ipairs(Baseline.accounts()) do
if acc.noPassword then
issues[#issues + 1] = '空密码账号: ' .. acc.name
end
-- 业务账号禁止登录 shell
if acc.isService and acc.hasShell then
issues[#issues + 1] = '服务账号可登录: ' .. acc.name
end
end
return issues
end
账号的基线两条:空密码的账号禁用、服务的运行账号禁止交互登录——业务跑在无 shell 的账号下,即使业务被攻破也拿不到登录的入口。账号的命名带用途的前缀:svc_ 前缀的服务账号、adm_ 前缀的管理账号,账号的用途从名字可读。基线的执行有例外申请的流程:确需开端口或开登录的,例外登记有效期与责任人,临时的例外到期自动回收。
基线的巡检项清单与等保的要求对照,缺项的补齐进整改的清单;基线的违规告警响应时效:P2 级的响应在 4 小时内处理。
端口的白名单曾经漏了新组件的端口,组件上线即告警,组件上线与基线登记的流程绑定。账号的禁用曾经影响业务的运行账号,禁用的名单与业务的依赖核对后执行。巡检的告警曾经被静默,违规的处理进值班的整改流程,告警的响应有时效的要求。
基线的清单对照等保与行业的要求年度更新,基线的标准随威胁的演进提升。加固的操作脚本化:一次编写、多台服务器批量执行,手工的加固必然有遗漏。基线的违规与事故的定级联动:基线的违规视同隐患事故,响应的流程同样严格。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 悬赏捕杀把玩家之间的恩怨变成可托付的系统行为:仇家难以亲自复仇时,花费金条发布悬赏,全服玩家接单击杀目标…
实战应用:用在哪里 策划改表是日常动作,漏填字段、引用了不存在的编号、数值越界这三类问题占了配表故障的绝大多数。等玩家报错再…
实战应用:用在哪里 行会擂台给中小行会提供了固定的对抗出口:挑战方击败守擂方后接管擂台,连胜次数决定每日结算奖励档位。接口层…
实战应用:用在哪里 世界首领战里玩家最关心的是伤害前十名:榜单要求随时插入、随时能按序取出,每来一条伤害记录都重新排序一次太…
实战应用:用在哪里 百人同屏的攻城战里,把每条移动、施法消息广播给全地图是最常见的性能失误。九宫格视野的做法是把地图切成等大…
实战应用:用在哪里 留言板、行会招募语、邮件标题这类字段会被玩家自由填写,并写入角色变量或转发给持久层。拼接式的写法一旦遇到…