完全删除已扫描的不需要的程序的说明。
作者:田毅(formyz)。
由多个 Web 项目共享的 NFS 服务器。 这些目录包括 PHP 程序、HTML 页面以及用户上传的文档和附件。 因为有些Web框架很古老,所以有些事情比如没有对上传的文件进行严格的安全检查,即使这个NFS服务器位于受保护的内部网络上,仍然有大量的恶意文件被别有用心的人上传。 程序员被强烈要求做一个程序(discuz)更新,得到的答复是更新太难了,无法以编程方式处理。 从系统的管理层面来看,临时措施就是简单地安装shadu软件,扫描共享目录,删除有害文件(不是根本原因)。
共享存储 NFS 部署在 CentOS 7 上9.在存储空间上,存储空间为44t,使用空间为45T(如下图所示),由于管理相对松懈,有大量垃圾信息没有被清理归档。
根据过往的经验和使用习惯,决定将 NFS 服务托管在 CentOS 7 上9.部署开源、知名的安全软件CL**AM,其官方宣传“Clam**是检测木马、病毒、恶意软件和其他恶意威胁的开源防病毒引擎”——clam**是用于检测木马、DU、恶意软件和其他恶意威胁的开源反虚拟引擎。 不知道官网底部的logo是什么时候被网络设备制造商思科换掉的,但即便如此,CLAM**目前也是开源的,免费的,可以不受限制地使用。 在 CentOS 7 上9、部署安装clam**至少有3种方式:RPM二进制包、二进制源码、包管理工具“yum”,如下图所示。
在 CentOS 7 上9. 部署安装clam**最简单方便的方式是“yum install”,尝试在系统命令行下执行“yum install clam**”执行过程并输出。
遗憾的是,clam** 未包含在存储库中,并且无法在系统上正确安装。 尝试使用命令“yum install epel-release”添加“epel-release”附加组件存储库。 然后继续运行 “yum list clam**”,从输出中可以看到,附加的仓库列表已经包含了包 “clam**”,如下图所示。
执行yum install clam**命令,安装正式安装。 除了主软件clam**之外,还有其他几个依赖一起安装,如下图所示。
与使用源码包安装相比,在安装过程中无需根据错误输出逐个安装所需的依赖,效率大大提高。
首次安装部署的 CLAM ** 的 Bingdu 库已经过时且滞后,需要从系统命令行更新此 Bingdu 数据库,以减少扫描和识别的遗漏。 更新 bingdu 库的命令是 “freshclam”,没有任何参数和选项,执行过程和输出如下图所示。
bingdu 库已经是最新的,强烈建议在“屏幕”上进行扫描,以防止在正式执行扫描之前因 SSH 远程终端断开连接而中断扫描。 如果“screen”命令指示该命令不存在,请使用 yum install screen 进行安装。 正确执行命令“screen”后,系统立即返回shell提示符,并输入以下命令对疑似有问题的共享目录进行完整扫描,并将输出记录到日志文件“var log clamscan”中。log”。
经过漫长的等待,我花了很多天才完成这次扫描。 检查扫描日志文件中是否存在恶意文件,并使用以下命令:
关键字“found”的记录有 500 多条,并且分发路径不规则,因此无法通过删除目录来处理这些离散的恶意文件。 如果按照绝对路径手动逐一删除,效率低下,容易出错; 如果以这种形式分发的恶意文件上千个,基本上不可能手动一一删除。
命令“clamscan”本身带有“--remove”选项,可以直接删除扫描的恶意文件,但如果没有相关人员的确认,这可能会引起争议。 因此,这些有问题的恶意文件需要提交给相关人员进行确认,只有在没有异议的情况下才能移动或删除。
从 clam** 扫描的日志文件开始,使用该工具提取恶意文件的完整路径,并使用以下说明。
与原始日志相比,冒号“:”及其后的所有字段均已删除。 在此命令之后,添加一个管道并传递带有“xargs”的参数,以清理所有被扫描的恶意文件,无论它分布在什么路径上,完整的命令如下。
执行完成后,随机找到几个扫描到的恶意文件的完整路径,该文件应该不存在(如下图所示),说明脚本是正确的,这正是我们期望的结果。