Linux常见巡检工具

内容分享1个月前发布 E天E饼
0 0 0

巡检结论很清楚:系统存在未升级的软件包、开放着若干监听端口、发现带有SUID权限的可疑文件,且SSH允许root直接登录的配置没有被禁用。基于这些问题,立即采取了补丁升级、关闭不必要端口、收紧SSH配置和清理异常权限文件等补救动作。

Linux常见巡检工具

紧接着把系统打补丁。执行了更新命令,把可用的安全补丁都安装上去(在Debian/Ubuntu系用 sudo apt update && sudo apt upgrade,Red Hat系则是相应的包管理器),确认内核和关键服务版本不再是已知高危版本。升级时注意分阶段做:先备份重大配置文件,再做小批量更新,避免一次性更新导致服务中断。更新完成后重启必要服务,必要时重启主机,监控重启过程中的日志输出,确保服务正常恢复。

在补救之前,先有一轮较完整的扫描和排查。用专业工具跑了漏洞扫描和系统审计,主要用了 lynis(sudo lynis audit system)做系统审计,用自动化脚本 LinuxCheck 批量检查(git clone
https://github.com/al0ne/LinuxCheck.git,chmod u+x LinuxCheck.sh,./LinuxCheck.sh),这些工具能把发现的问题生成报告,便于后续整理。扫描出来的问题按照严重性排序,先处理可以远程利用的、影响面大的那类。

网络相关的检查信息被优先核对。查看当前监听和连接情况用 netstat -tulnp(也可用 netstat -an 查看更全面的连接状态),确认哪些服务在对外监听。用 ifconfig 或 ip addr 看网卡和IP分配情况,route -n 检查路由表,ping 测试外网连通性。发现有些端口并非业务需要,但被某些旧服务占用,于是先把这些服务停掉(systemctl stop <服务名>),再从启动项里移除(systemctl disable <服务名>),避免重启后自动开启。对的确 需要对外提供的服务,限制访问范围并加上防火墙规则。

防火墙和访问控制也做了复核。查看现有规则用 iptables -L,评估哪些规则松散,哪些端口对外暴露不该暴露。对于SSH,检查了 /etc/ssh/sshd_config,特别是 grep PermitRootLogin /etc/ssh/sshd_config,看是否允许root远程登录。发现允许的情况下,改为禁止或至少限制成 forbid-password、并配置公钥登录,重启sshd并再用 ssh -v 模拟登录确认配置生效。

进程与服务层面的排查依然重大。用 ps -ef 列出所有进程,结合 top/htop 实时观察CPU和内存使用,定位占资源的进程。用 systemctl status <服务名> 和 systemctl list-units –type=service –state=running 检查运行中的服务,确认这些服务都是预期中的。如果发现异常进程,先用 lsof、strace 等工具再深查其打开的文件和系统调用,必要时杀进程并查清启动来源,防止被植入定时任务或启动脚本。

系统信息和资源状况的基线数据也记录了。查看内核和系统版本用 uname -a,查看发行版信息用 cat /etc/*release*,这两项信息决定了后续补丁和扫描策略。查看内存用 free -m,磁盘用 df -h,CPU 信息用 lscpu,加载模块用 lsmod。通过 uptime 获知系统运行时长和负载,结合 top 得出的负载数据判断是否有短时峰值或长期趋高的趋势,确定是否需要扩容或优化服务。

在文件和权限方面进行了细致查验。用 find / -perm -4000 -type f 2>/dev/null 找出所有带SUID位的文件,逐个核对这些文件是否为系统合法程序,是否存在异常的可执行文件。发现可疑项就移动到隔离目录,或者直接修改权限,必要时比对文件哈希确认是否被篡改。系统日志通过 dmesg、journalctl、tail -n 50 /var/log/syslog 等命令逐条查看,定位近期内核警告、服务崩溃或登录异常条目,记录时间戳和触发条件,便于还原事件链。

针对网络层面,还特意用了 netstat -an 来确认外部连接状态,观察有哪些远程IP与本机建立了连接。把这些IP和端口和已知恶意IP库做比对,一旦匹配就立刻阻断并追踪相关进程。对一些长期保持连接但不属于业务的IP,暂时封禁并继续观察是否再次出现。

漏洞扫描发现的问题中有一部分属于配置类风险,处理方式是修改配置并记录变更。例如调整 SSH 配置、关闭不必要的服务开机自启、加固防火墙规则、删除或修复弱口令账户等。对那种需要立刻修复的本地提权风险(如SUID可执行文件)先隔离再评估风险,确认没有业务依赖后再彻底清理。

整个巡检流程里还注意了数据的保存和可追溯性。所有命令运行的输出都导出成日志,扫描工具的报告保存成Markdown或HTML格式,便于交付和复核。自动化脚本如 LinuxCheck 可以生成标准报告,方便多人协作时追踪已修复项与待处理项。记录里包含了检查时间、执行人、命令行、输出片段和后续处理意见,保证后续审计能还原当时情况。

回溯到最开始的动因:这次巡检是例行加风险评估触发的。收到报警后先在单台机上做了全量检查,再把脚本分发到其他节点做批量扫描。理由很简单:单台发现问题,极可能在全网复制,尤其是配置类问题。巡检计划里规定了检查清单,覆盖系统信息、资源使用、网络连接、进程服务、文件权限、日志审计和漏洞扫描工具的执行。

细节上,执行命令时注意了权限和环境一致性。许多命令需要root权限,执行前用 sudo 或切换到root,防止由于权限不足产生误判。运行 find 或 scan 时加了错误重定向 2>/dev/null,避免无关误报干扰输出。对需要联网下载的扫描工具,先校验仓库地址与脚本内容,防止从不可信来源拉取恶意脚本。

最后把临时的修复动作做了回归验证。重跑了一遍关键命令:再次用 uname -a、cat /etc/*release*、free -m、df -h、netstat -tulnp、ps -ef、find / -perm -4000 -type f 等,确认问题项减少或已被清理。对于无法在短期内完全解决的风险,列进了后续的计划和变更单,安排在变更窗口里做彻底处理,避免线上影响。

过程说完了,下面就是现场的一点个人感触:这些命令和工具看似枯燥,但的确 能把问题一条条翻出来。巡检别偷懒,及时记录和复查,比临时抱佛脚更靠谱。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...