Linux怎么检查rootkit_Linux如何使用rkhunter安全扫描【方法】

云杰酱_2568

云杰酱_2568

2026-03-22

691人浏览

原创

rkhunter --checkall 默认交互式需按回车,加 --skip-keypress 可全自动;--cronjob 更适合定时任务,自动跳过提示并记录日志;首次运行前须确保系统干净,执行 rkhunter --propupd 建立可信文件快照。

linux怎么检查rootkit_linux如何使用rkhunter安全扫描【方法】

直接运行 rkhunter --checkall 会卡在交互提示上

默认执行 rkhunter --checkall 时,每完成一个检测模块(比如“检查系统命令”“检查隐藏文件”),它都会停住并等你按 Enter 继续——这不是 bug,是设计如此,方便人工介入。但生产环境没人守着敲回车。

  • 加 --skip-keypress 参数才能全自动跑完: rkhunter --checkall --skip-keypress
  • 如果还希望静默输出(比如配合 cron 日志分析),再加 --quiet,但注意:--quiet 会隐藏所有警告([ Warning ])和错误([ Error ]),只留 [ OK ] 和最终摘要,慎用
  • 真正适合定时任务的是 --cronjob:它自动启用 --skip-keypress,同时把日志写进 /var/log/rkhunter.log(或配置的 LOGFILE),还会抑制无关提示

rkhunter --propupd 必须在干净系统上首次运行

这个命令不是“更新数据库”,而是“拍一张当前系统文件属性的快照”——包括文件大小、权限、inode、MD5 值等。后续每次扫描都拿这个快照比对。所以它必须在确认系统未被入侵、关键工具(如 ls、ps、netstat)没被替换的前提下运行。

  • 新装系统或重装后立即执行:rkhunter --propupd
  • 升级核心包(如 glibc、coreutils)后,建议重新运行一次,否则可能误报“/bin/ls 权限异常”或“/usr/bin/md5sum 被修改”
  • 别在可疑系统上补跑:如果已经中招,快照本身就被污染,后续扫描失去意义

扫描结果里大量 [ Warning ] 不等于被黑了

比如 /sbin/ifdown [ Warning ]、/usr/bin/GET [ Warning ] 很常见,原因通常是:这些工具被发行版精简过、符号链接指向了其他实现(如 busybox)、或 SELinux/AppArmor 限制导致 rkhunter 读不到预期元数据。

  • 先看日志路径:grep "Warning\|Error" /var/log/rkhunter.log | head -20
  • 重点盯三类警告:File hash mismatch(文件哈希不一致)、Hidden file(隐藏进程或文件)、Kernel module(可疑内核模块加载)
  • 普通警告可临时忽略,但要在 /etc/rkhunter.conf 里用 ALLOWHIDDENFILE 或 ALLOWPROCLISTEN 显式豁免,并注释原因,避免下次升级后又冒出来

定期扫描不能只靠 cron + --checkall

每天扫一次没问题,但 rkhunter 自身不监控实时行为,也不捕获网络连接突变或进程内存注入。它只做静态快照比对,属于“事后验尸”工具。

  • 务必搭配其他手段:chkrootkit(互补检测逻辑)、lynis audit system(配置基线检查)、ss -tulpn 手动查监听端口
  • 如果发现 /var/lib/rkhunter/db/rkhunter.dat 文件时间比系统安装还早,说明数据库可能被篡改或复用了旧镜像——得删掉重建
  • 别忘了验证 rkhunter 二进制本身:sha256sum /usr/local/bin/rkhunter 对比官网发布页的 checksum,防止工具被劫持
rkhunter 的价值不在“一键定乾坤”,而在提供一份可审计、可回溯的系统状态基线。真正难的不是跑命令,是判断哪条警告该深挖、哪条能放行,以及——什么时候该怀疑连 rkhunter 都可能被绕过了。
PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

929

5

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.25

2580

5

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

2023.06.29

2445

3

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2023.08.14

3741

10

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

2023.08.31

2651

3

MySQL恢复数据库
MySQL恢复数据库

MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.05

887

5

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

2367

5

数据库对象名无效怎么解决
数据库对象名无效怎么解决

数据库对象名无效解决办法:1、检查使用的对象名是否正确,确保没有拼写错误;2、检查数据库中是否已存在具有相同名称的对象,如果是,请更改对象名为一个不同的名称,然后重新创建;3、确保在连接数据库时使用了正确的用户名、密码和数据库名称;4、尝试重启数据库服务,然后再次尝试创建或使用对象;5、尝试更新驱动程序,然后再次尝试创建或使用对象。

2023.10.16

2407

4

vb连接access数据库的方法
vb连接access数据库的方法

vb连接access数据库方法:1、使用ADO连接,首先导入System.Data.OleDb模块,然后定义一个连接字符串,接着创建一个OleDbConnection对象并使用Open() 方法打开连接;2、使用DAO连接,首先导入 Microsoft.Jet.OLEDB模块,然后定义一个连接字符串,接着创建一个JetConnection对象并使用Open()方法打开连接即可。

2023.10.16

2813

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习