资讯详情

资讯详情

麒麟3.3主机审计探针部署配置与告警测试指南

简介面向麒麟系统运维与安全监测人员的《Kylin 3.3 探针软件安装调试手册》聚焦探针从部署到验证的完整操作链路适合需要完成主机监控探针落地、日常维护与故障排查的初中级技术人员参考。资源包仅含1个docx文档大小约1002KB正文约30页以图文结合方式组织安装前提、网络安全监测装置说明、程序安装、图形化界面配置、命令行配置、告警测试、程序卸载及agent升级等内容。读者可据此核对系统版本信息与作业条件按界面和命令两条路径完成配置并通过告警测试确认探针运行状态同时掌握升级组件与卸载前的准备要点。该文档已有1574人学习适合作为麒麟环境下探针部署与调试的案头速查资料。1. 麒麟服务器上的“黑匣子”Kylin 3.3 探针到底补的是哪一段服务器装完业务系统验收前一天被人追着问了一句昨天谁用 root 在 /etc 下动过文件——交换机镜像只看得见流量看不见 TTY 里的命令回显堡垒机只覆盖远程登录本地串口接的那台笔记本、插进去又拔出来的 U 盘压根没留痕。麒麟探针补的就是这一段它跑在主机侧把登录成功失败、操作回显、USB 与光驱插拔、关键目录变更、用户权限调整、危险命令、非法外联与非法端口、网口 up/down、设备上下线这些事件采上来按检测周期上报给网络安全监测装置。这份手册共 30 页、版本 A、编号 00FW.1282从作业前提、agent 升级、程序安装一路写到图形化配置、命令行配置、告警测试和卸载六段流程一条不落。它适合要在麒麟 OS 上落地主机审计的集成与运维人员如果你要的是流量侧的入侵检测这份材料帮不上忙。2. 作业前提与 agent 升级三道校验缺一道后面全是白干正式的安装动作只有十几分钟真正花时间的是前面那些核对。手册把“作业前提条件”单独列成一章并配了一张表这不是凑页数——探针要采集审计事件前提是内核审计子系统能用、时间能对上、上报通道通得过去这三样任意一项不成立后面装得再顺也只是个占进程的摆设。2.1 作业前提表逐项核对手册里的前提表核心是这么几行操作系统版本与 CPU 架构、内核 audit 支持、磁盘剩余空间、依赖组件、时间同步、到网监装置的网络可达性、root 权限。我一般按下面这组命令一次性核完把输出贴到交付记录里后面出问题好回溯。# 1) 系统与内核信息确认在手册支持列表内 cat /etc/kylin-release uname -r uname -m # 2) 审计子系统是否可用探针的目录监控、命令审计依赖它 rpm -qa | grep -i audit systemctl is-active auditd auditctl -s # 3) 磁盘余量日志缓冲和升级包都要落盘 df -h / /opt /var # 4) 时间同步状态时间漂移会直接导致上报日志乱序 timedatectl chronyc sources -v 2/dev/null || ntpq -p # 5) 到网监装置的可达性与端口连通 ping -c 3 10.10.20.1 nc -zv 10.10.20.1 6514命令含义不复杂重点在判读auditctl -s输出的enabled是 0 表示审计关闭探针装上去也采集不到目录变更和命令审计事件timedatectl里System clock synchronized: no就意味着后面告警时间会对不上网监装置那边按时间排序会错乱。nc -zv不通的情况我遇到最多往往不是网络不通而是中间设备把 TCP 6514 这类非标端口拦了此时要么改走 514要么让网络侧开口子别指望探针自己重试能穿过去。提示前提核对必须在业务低峰期做因为后面auditctl加规则和重启 auditd 的瞬间正在跑的审计事件会断一下。2.2 agent 升级先组件、后程序顺序反了要重来手册里“agent 升级组件部分”和“agent 升级程序部分”是分开的两张图说明升级包本身拆成了两部分组件包负责依赖库、内核模块、采集插件程序包负责主服务和配置工具。这个顺序不能颠倒先装程序后补组件的话主服务会因为找不到采集插件而反复重启日志里刷一堆模块加载失败。# 上传升级包到临时目录先解开看结构再动手 mkdir -p /tmp/kylin-agent-upgrade cd /tmp/kylin-agent-upgrade tar -xzf kylin-agent-pkg-*.tar.gz ls -l # 第一步装组件包依赖、采集插件、内核模块 cd component ./install_component.sh -y # 第二步装程序包主服务 配置工具 cd ../program ./install_program.sh -y # 第三步核对升级信息版本号要能对上手册里的型号版本表 kmctl version rpm -qa | grep -i kylin-agent systemctl status kylin-agent --no-pager脚本参数里-y是免交互确认批量部署时省事但第一次装我建议不加让脚本把每一步的检测结果打出来能提前看到它是卡在依赖还是卡在内核模块签名。第三步的版本核对别跳过手册里专门有一张“型号和版本”对照表装机时最常见的翻车是拿了 A 型号的包往 B 型号的机器上装装是装上了采集插件和内核版本对不上表现为服务在跑、事件不上报。2.3 产品认证与注册信息回填程序装完后服务处于未认证状态采集功能是关着的。“产品认证”这一步在图形化界面和命令行里各有一处入口作用是把探针和主机绑定起来生成与机器码关联的认证信息。认证前建议先确认网卡没有临时增删——机器码通常参与绑定换网卡或者改主机名之后认证会失效得重新做一遍。# 认证前先固化主机身份信息避免认证后又被改动 hostnamectl set-hostname audit-node-01 kmctl license show # 查看当前认证状态 kmctl license apply -f /tmp/license.dat kmctl license show # 应为 authorized systemctl restart kylin-agent journalctl -u kylin-agent -n 50 --no-pagerlicense apply的-f指定认证文件路径图形化界面里对应的是“产品认证”那个输入框。回读license show必须看到 authorized如果显示 unauthorized 而日志里又没报错八成是主机名或网卡在认证之后被改过。认证完重启服务再看日志正常应该能看到采集插件逐个加载成功的记录这一步没过就别急着进配置环节。3. 图形化配置七项参数填错一个就收不到告警手册的“图形化界面配置”占了将近十页配了十二张界面图看着像流水账其实每一项都对应一类告警能不能出来。麒麟内网监控配置工具把参数分成了七组主机通讯地址、网络白名单、关键目录文件、审计规则、服务端口、服务名称黑名单、关键系统命令名单外加一个检测周期。这七项之间存在依赖关系顺序填反了会出现“改了没生效”的错觉。3.1 主机通讯地址与网络白名单主机通讯地址决定探针把事件往哪儿送一般填三项本机采集地址、网监装置地址、上报端口。这里最常见的误区是把“本机地址”填成 127.0.0.1本地看着一切正常实际上报报文全走了环回网监装置一条都收不到。参数项含义典型取值常见错误主机通讯地址探针自身用于上报的地址业务网卡实地址填 127.0.0.1 或未配置的网卡地址装置地址网络安全监测装置 IP上级给定的固定地址填成管理口地址导致跨网段不可达上报端口事件上报端口6514TCP/ 514UDP端口与装置侧接收配置不一致网络白名单允许外联的 IP 段与端口业务网段 必要端口只填 IP 不填端口或反之检测周期采集与上报间隔30120 秒设成 1 秒导致刷屏设成 3600 慢到测不出白名单是非法外联告警的判定基线不在白名单里的目的地址一被访问就产生告警。填得太宽比如整个 0.0.0.0/0等于关掉了这类告警填得太窄又会把正常的软件源更新、时钟同步全打成非法外联交付后天天被业务方找。我的习惯是先抓一天的现网连接把真实在用的目的地址和端口列出来再收敛成白名单。# 采集现网真实外联情况作为白名单基线观察期建议不少于 24 小时 ss -tnp state established | awk {print $5} | sort | uniq -c | sort -rn | head -50 ss -lntup | awk {print $5} | sort -u前一条看的是“谁在往外连”后一条看的是“本机开了哪些监听端口”后者是服务端口白名单的依据。这两份输出别只看一遍就丢交付时附在文档里半年后有人问“为什么这个地址在白名单里”你有据可查。3.2 关键目录文件、审计规则与服务端口关键目录文件是目录变更告警的监控范围手册界面里是一个可增删的路径列表。这里的原则是“只监控该监控的”/etc、/bin、/sbin、/usr/bin、/usr/sbin、/boot 这些该盯/var、/tmp、/proc、/run 千万不要加——日志、缓存、临时文件每秒都在变加进去之后告警量能直接把网监装置的展示页面刷瘫。审计规则那一栏对应的是 audit 子系统的 watch 规则本质是给内核下监控点。图形界面里一条规则大致是“路径 权限位 关键字”三要素权限位常见wa写和属性变更关键字用来在日志里做归类检索。# 图形界面里添加的规则落到系统上等价于下面这种写法 auditctl -w /etc/passwd -p wa -k kylin_etc_passwd auditctl -w /etc/sudoers -p wa -k kylin_etc_sudoers auditctl -w /etc/ssh/sshd_config -p wa -k kylin_sshd_conf # 查已生效规则确认界面上的配置真的下到内核了 auditctl -l | grep kylin_ # 持久化否则重启即失效这是最容易被忽略的一步 cat /etc/audit/rules.d/kylin.rules EOF -w /etc/passwd -p wa -k kylin_etc_passwd -w /etc/sudoers -p wa -k kylin_etc_sudoers -w /etc/ssh/sshd_config -p wa -k kylin_sshd_conf EOF augenrules --load这里必须说清楚图形界面上点“保存”只代表配置写进了探针自己的配置文件不一定同步到内核的 audit 规则表。auditctl -l里看不到kylin_开头的规则就说明没下发成功此时无论怎么改被监控文件都不会有告警。持久化那一步更是血泪经验——不写 rules.d 的话重启一次审计规则全丢探针照跑告警照没有。服务端口那一栏填的是允许对外提供服务的端口清单配合服务名称黑名单一起用。黑名单里通常放 telnet、rsh 这类明文远程服务一旦发现监听就告警。端口白名单和网络白名单是两回事前者管“本机能不能开这个端口”后者管“本机能不能连那个地址”交付时被问到别答混了。3.3 关键系统命令名单与检测周期关键系统命令名单是命令审计里最灵活也最容易配歪的一项。名单里的命令一被执行就产生告警典型该进名单的是rm -rf、mkfs、dd、shutdown、reboot、passwd、userdel这一类破坏性或权限相关的操作。配歪的两种情况很常见一是把ls、cat、grep这种高频命令也加进去一天几万条告警真正的危险操作淹没在里面二是只写命令名不写参数特征结果rm连删除临时文件都告警。检测周期是全局节拍决定采集轮询和上报的频率。周期设太短比如 1 秒主机 CPU 和上报带宽都会被吃掉网监装置侧还会因为重复上报而做去重设太长比如一小时做告警测试时你会以为功能坏了其实只是还没到上报时刻。我一般按 3060 秒起步测试阶段临时调到 10 秒加快验证交付前再改回来这个改动记得写进变更记录。注意七项参数改完必须点一次“下发”或“应用”只点“保存”只是落盘。手册里“配置完成”那一步的界面会显示当前生效值拿它和你的输入逐项比对一遍比事后猜要省事得多。4. 命令行配置没有图形界面时的等价路径生产环境里的麒麟服务器多数是最小化安装没有桌面图形化配置工具根本起不来。手册把命令行配置单列一章而且每一项都配了命令表用意就在这儿——同一套参数两种入口效果等价。这一章我按“改哪里、怎么改、怎么确认改对了”三段来讲重点是最后一段因为命令行改配置最大的风险是改完不知道生没生效。4.1 配置文件在哪、动手前先备份探针的配置一般落在安装目录下的 conf 子目录里主配置文件是一个 ini 风格的文件服务启动时读取运行期由配置工具改写。所以直接编辑文件和用工具改是两条路混着来会打架工具改的时候会把内存里的完整配置整体回写你手工加的那几行可能被覆盖掉。# 定位安装目录与配置文件 ls -l /opt/ | grep -i kylin find /opt -maxdepth 3 -name *.conf -path *agent* # 改之前先备份带时间戳方便回滚 CONF/opt/kylin-agent/conf/agent.conf cp -a $CONF ${CONF}.bak.$(date %Y%m%d%H%M) ls -l /opt/kylin-agent/conf/配置文件里通常分成 server、whitelist、watch、audit、cmd 几个段。手工编辑时最容易出问题的是分隔符和空格白名单是逗号分隔还是分号分隔、路径末尾带不带斜杠这些细节在图形界面里由控件兜住了在命令行里全靠自己。改完先做语法自检再看服务能不能正常解析。; /opt/kylin-agent/conf/agent.conf 片段示例 [server] monitor_ip 10.10.20.15 ; 本机上报地址别填 127.0.0.1 device_ip 10.10.20.1 ; 网监装置地址 device_port 6514 ; 与装置侧接收端口一致 proto tcp [whitelist] net 10.10.0.0/16,192.168.10.0/24 port 22,443,3306 [watch] dir /etc,/bin,/sbin,/usr/bin,/usr/sbin,/boot cycle 60 ; 检测周期单位秒 [cmd] danger rm -rf,mkfs,dd,shutdown,reboot,userdel4.2 通讯地址、白名单、目录的命令行下发比起手工编辑 ini我更推荐用配置工具自带的子命令逐项下发原因是工具会做取值校验填错格式当场报错而不是等到服务重启才在日志里冒出来。# 通讯地址三件套 kmctl set server.monitor_ip 10.10.20.15 kmctl set server.device_ip 10.10.20.1 kmctl set server.device_port 6514 # 网络白名单先清空再逐条加避免历史残留 kmctl clear whitelist.net kmctl add whitelist.net 10.10.0.0/16 kmctl add whitelist.net 192.168.10.0/24 kmctl add whitelist.port 22 kmctl add whitelist.port 443 # 监控目录与检测周期 kmctl clear watch.dir for d in /etc /bin /sbin /usr/bin /usr/sbin /boot; do kmctl add watch.dir $d done kmctl set watch.cycle 60 # 关键命令名单 kmctl clear cmd.danger kmctl add cmd.danger rm -rf kmctl add cmd.danger mkfsclear再add的写法看着笨但比“追加”安全重复执行不会造成同一路径被加进两次配置里出现重复项时部分版本会在下发阶段报冲突排起来很烦。命令名的引号也别省rm -rf中间有空格不加引号会被当成两个参数结果名单里只有rm告警量立刻失控。4.3 审计规则批量导入与生效回读审计规则条数多的时候逐条敲不现实标准做法是写进 rules.d 下的独立文件再整体加载这条路径和图形化界面最终落到的位置是同一个。批量导入后必须做两件事一是augenrules --load让规则进内核二是auditctl -l把内核里的规则读回来比对。# 批量化把关键路径写成规则文件 tee /etc/audit/rules.d/kylin.rules /dev/null EOF -w /etc/passwd -p wa -k kylin_etc_passwd -w /etc/group -p wa -k kylin_etc_group -w /etc/sudoers -p wa -k kylin_etc_sudoers -w /etc/ssh/sshd_config -p wa -k kylin_sshd_conf EOF augenrules --load # 加载到内核 auditctl -l | grep -c kylin_ # 应等于写入的规则条数 systemctl restart kylin-agent # 让探针重新读取配置 kmctl show all # 回读生效值逐项和预期比对 journalctl -u kylin-agent -n 80 --no-pager | grep -iE error|warn|failauditctl -l | grep -c得到的数量和文件里的行数对不上说明有规则加载失败通常是路径不存在或权限位写错。kmctl show all的输出是唯一可信的“当前生效值”别拿配置文件内容当结论——配置文件里写着的值服务没读到就等于没配。日志里过滤 error/warn如果出现“device unreachable”先回去查 4.2 里的地址和端口别在配置项上反复折腾。5. 告警不触发时的五条排查记录顺带把十二类用例跑一遍告警测试是这份手册里最有价值的一章也是最容易被跳过的一章。装完、配完、服务在跑很多人就直接交付了等真出事才发现一条告警都上不来。手册列了十几类测试用例从 SSH 登录成功、退出登录、登录失败到操作回显、USB 日志、串口占用释放、光驱加载卸载、非法外联、非法端口、网口 up/down、关键目录变更、用户权限变更、危险命令、设备上线离线、基线核查覆盖面基本就是主机审计的全集。5.1 十二类用例的造数与观察点造数是门手艺不能造得太“干净”真实攻击和误操作往往发生在有并发负载的时候。我一般按下面这张表逐条跑每跑一条记两件事——本地日志有没有、网监装置有没有两边都对上才算通过。用例造数方法本地观察点判定标准登录成功正常 ssh 登录探针日志 /var/log/secure有主机、账号、源 IP、时间退出登录执行 exit同上与登录记录成对出现登录失败故意输错密码/var/log/secure失败次数与尝试次数一致操作回显登录后执行若干命令探针操作审计日志命令原文完整不被截断USB插入 U 盘dmesg 探针日志有设备标识与插拔时间串口插入 USB 转串口并占用/dev/ttyUSB* 探针日志占用与释放各一条光驱加载/卸载介质探针日志加载卸载成对非法外联访问白名单外地址探针告警日志目的地址、端口正确非法端口起一个非白名单监听ss 探针日志端口号一致网口 up/downip link set切换探针日志网口名与状态正确关键目录变更在 /etc 下新建文件audit 日志 探针日志路径、操作类型正确危险命令执行名单内命令探针告警日志命令与执行账号正确其中“操作回显”是最容易被忽略的一项。回显采集依赖 TTY 记录如果用户的 shell 是经过包装的、或者会话来自某些非常规终端回显可能采不到。测的时候不要只用一种登录方式远程 ssh、本地控制台、跳板机转发各试一次能提前暴露大半问题。5.2 五条踩坑记录现象、原因、解决下面这五条是我在实际交付里反复撞上的每条都按“看到什么—为什么—怎么办”写遇到同类现象可以直接对号入座。第一条服务在跑网监装置一条都收不到。现象是systemctl status kylin-agent绿的本地日志也有采集记录装置侧查询为空。原因通常有三个层次通讯地址填了 127.0.0.1 或填了一块没配 IP 的网卡上报端口和装置侧接收端口不一致中间防火墙或安全组只放通了 ICMP没放通业务端口。解决顺序是先ss -tnp看探针有没有真的建连再tcpdump -i any port 6514 -nn抓一次上报最后回到装置侧看接收日志。抓包这一步别省它能把“我以为发出去了”变成“确实发出去了”。第二条图形界面改完重启后配置回到改之前。现象是界面上明明改过检测周期和白名单重启服务后又变回老值。原因是图形工具改的是运行态需要额外点“下发/应用”才会落盘如果此前有人手工编辑过配置文件工具回写时还可能把手工内容覆盖掉。解决办法是统一入口要么全走工具要么全走文件改完都执行一次kmctl show all回读。我现在的习惯是改完立刻回读并截图存档省得事后扯皮。第三条SSH 登录告警死活不触发。现象是登录动作确实发生了但探针日志里什么都没有。原因多半在日志源采集器读的是 /var/log/secure而这台机器的 sshd 日志被 rsyslog 规则改道去了别处或者系统已切到 journald 而采集配置没跟着改另一种是 auditd 被停过登录事件的审计钩子没挂上。解决办法是先journalctl -u sshd -n 20确认日志到底落在哪再回到采集配置里把源路径改对最后重启探针复测。第四条USB 告警测试通过串口告警却一条没有。现象是 U 盘插拔有记录同一台机器上插 USB 转串口设备却静默。原因是串口设备被某个进程长期占用占用事件只在首次打开时产生一次后续反复插拔不会重复触发也可能是内核模块没加载设备节点压根没出现。解决办法是先lsusb和dmesg | tail -30确认设备识别再fuser -v /dev/ttyUSB0看占用者把占用进程退出后重新插拔复测。手册里专门列了“串口占用释放”这条用例就是因为这个不对称现象太常见。第五条关键目录变更告警刷屏一天几万条。现象是告警列表里全是目录变更真正的危险操作被埋了。原因是监控目录里混进了 /var、/tmp、/run 这类高频变动路径或者检测周期被调到几秒一次。解决办法是收窄目录范围到配置和可执行文件所在路径把日志、缓存、临时目录全部排除同时把周期改回 3060 秒。收窄之后如果还有零星刷屏用ausearch -k kylin_etc_passwd -ts today定位是哪个进程在写再决定是加白名单还是修业务。提示五条里有四条最终都落到“回读生效值”上。配置类问题不要靠猜kmctl show all加上auditctl -l两条命令能解决八成的“改了没生效”。6. 卸载与复装把交付做成能复核的闭环卸载这一步手册只给了两页但恰恰是复装翻车的源头。卸载顺序反了会留下内核审计规则和采集插件重装时新旧规则叠加同一个事件报两遍认证信息没清干净重装后license show直接显示未授权你会以为是认证文件坏了。我一般这么走# 先停服务再卸程序最后清组件顺序不能反 systemctl stop kylin-agent /opt/kylin-agent/uninstall/uninstall_program.sh -y cd /tmp/kylin-agent-upgrade/component ./uninstall_component.sh -y # 清理残留审计规则、日志缓冲、认证缓存 rm -f /etc/audit/rules.d/kylin.rules augenrules --load auditctl -l | grep kylin_ || echo rules cleaned rm -rf /opt/kylin-agent /var/log/kylin-agent # 确认进程、端口、开机项都没了 ps -ef | grep -i kylin-agent | grep -v grep systemctl list-unit-files | grep -i kylinauditctl -l | grep kylin_返回空才算规则清干净这条我每次都会跑因为残留规则在复装后会造成“一条事件两条告警”的假象排查起来极其费时。复装验证我只盯三件事kmctl version的版本号与升级包一致、license show为 authorized、跑一条 SSH 登录用例在装置侧能看到完整字段。三件事都过才算这轮交付闭环。最后说个习惯。早些年我图快装完看一眼服务是 active 就撤结果有次交付两周后被退回来——配置全对就是一条告警没上去查到最后是上报端口在中间设备上被拦了。从那以后我每次收尾都强制走一遍抓一次包、回读一次生效值、跑一条最小用例三步不到十分钟但能把“以为装好了”变成“确认装好了”。希望帮到你。本文还有配套的精品资源点击获取
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →