linux杀毒软件

2023-05-16

0x00前言

      linux或者Unix系统经常被用作服务器,并且安全性往往比windows高,但是在linux查杀病毒往往得依靠管理员执行find, grep等命令查看文件以确认文件是否为病毒,但由于本身linux服务器的病毒就较少,精通linux安全的系统管理员更是可遇不可求。

      但是,随着linux服务器在市场上的占用率的飙升,linux系统病毒事件逐步出现在公众视野,linux杀毒的需求也逐步被提出来。所以在这里我们选择几款专业的杀毒软件对linux服务器进行杀毒。

0x01 ClamAV 杀毒

1.1 clamAV介绍

        ClamAV 杀毒是Linux平台最受欢迎的杀毒软件,ClamAV属于免费开源产品,支持多种平台,如:Linux/Unix、MAC OS X、Windows、OpenVMS。ClamAV是基于病毒扫描的命令行工具,但同时也有支持图形界面的ClamTK工具。ClamAV主要用于邮件服务器扫描邮件。它有多种接口从邮件服务器扫描邮件,支持文件格式有如:ZIP、RAR、TAR、GZIP、BZIP2、HTML、DOC、PDF,、SIS CHM、RTF等等。ClamAV有自动的数据库更新器,还可以从共享库中运行。命令行的界面让ClamAV运行流畅。

1.2 安装使用

主页:http://www.clamav.net/

帮助文档:http://www.clamav.net/documents/installing-clamav

本次实践环境是:centos 7.3, 并执行以下命令:

yum install -y epel-release     # 更新epel仓库源,

yum install -y clamav    # yum 安装clamav

【特别注意】部分同学担心杀毒软件影响服务器性能、增加故障、误杀文件等情况,所以我们可以只是利用其扫描功能,实时更新病毒库,按需可以进行扫描即可。不开启病毒服务(clamd)当作病毒扫描工具来使用。

1.3 使用实践

使用实践:https://github.com/Cisco-Talos/clamav-faq/blob/master/manual/UserManual/Usage.md

帮助文档:https://github.com/Cisco-Talos/clamav-faq

我们可以执行以下命令去扫描服务器或者服务器的某个目录(web目录)

clamscan --help

mkdir /tmp/infected

clamscan -r -i -l /tmp/clamscan.log --copy=/tmp/infected /

# 我们扫描整个服务器下面的所有文件和文件夹,并且仅展示受感染的文件,同时把日志记录到某个文件夹和把受感染的文件移动到某个目录下面

本次扫描,状态良好

# 我们扫描指定目录下的所有文件和文件夹,并且仅展示受感染的文件,同时把日志记录到某个文件夹和把受感染的文件移动到某个目录下面

clamscan -r -i -l /tmp/clamscan2.log --copy=/tmp/infected /tmp

本次扫描133个文件,累计100个病毒,检测出76个病毒

1.4 更新维护

更新帮助文档:http://www.clamav.net/documents/upgrading-clamav

本次实践环境是:centos 7.3, 并执行以下命令:

yum list clamav # 获取新版本

yum update clamav # 获取新版本

Freshclam # 更新clamav签名库

0x02 McAfee杀毒

2.1 安装介绍

  1. 分别在CentOS6.8 和7.3上安装McAfee, 安装的过程比较复杂,主要是安装agent,下载代理的方式为:
  2. 将安装包传到linux服务器上, 进行解压安装

成功安装McAfee的客户端,并且客户端运行正常。

检查客户端的详细信息,主要包括客户端agent的版本、通讯端口、日志路径、安装路径、管理服务器的地址等基本信息。

2.2 使用体验

1. 手动检测病毒:

此处只能显示病毒查杀的任务情况,并不会显示具体的杀毒信息,该处操作命令较复杂,需要多个命令才能共同完成一个扫描任务。故不建议手动查杀病毒,选择控制台下发病毒查杀策略较方便。

2. 自动检测病毒

本次扫描133个文件,累计100个病毒,检测出52个病毒,查杀82个感染文件

3 性能消耗:

若不执行任务,内存消耗也在100M左右,CPU消耗在2%左右

若执行扫描任务,内存消耗高达1G, CPU消耗在2%左右

2.3 卸载软件

1. 卸载客户端agent:

直接顺序执行命令:

rpm –e MFEcma

rpm –e MFErt

2. 卸载组件

cd /opt/isec/ens/threatprevention/bin

运行./uninstall-isectp.sh

0x03 sophos 杀毒

3.1 安装介绍

首次安装使用CentOS6.8进行安装,然后再在7.3使用安装包进行安装,因为需要在其他安装的基础上进行打包安装包,当打包好tar或者rpm包后,即可在7.3使用安装包进行安装,需要从服务器从下载一系列文件,整个过程比较久 本次主要讲述使用体验,不详细介绍安装过程。

安装成功后,即可看到成功的输出信息。

3.2 使用体验

1. 手动检测病毒:

我们可以选择在本地服务器进行手动病毒查杀,注意本次测试为了方便,提前准备好相关的病毒包,以便检查sophos的病毒查杀能力。如下图所示:

本次扫描87个文件,累计100个病毒,检测出74个病毒,查杀69个感染文件

2. 自动检测病毒

对于配置策略后,若使用桌面版本的linux会弹框提示病毒防护;若使用命令行模式,会直接在管理后台提示病毒告警。在这两种情况下,sophos均不会自动把病毒删除,仅是检查和阻断病毒执行。

对于发现的病毒,我们需要进行人工确认和删除,防止误删服务器的文件

3 性能消耗:

对于内存消耗: 基本在200M以上,经常维持在500M左右.

对于CPU消耗: 动态变化,在0%-20%之间,不执行扫描病毒的话,消耗较小; 若执行扫描病毒,消耗较高. 无论是在界面状态还是命令行模式,消耗的性能指标都是相同的。

3.3 卸载软件

直接执行命令:/opt/sophos-av/uninstall.sh

0x04 总结

  1. 从开源软件和收费软件的效果来看,两者不相上下,如无高强度要求,采用开源软件进行一次性扫描,并且开源软件的部署(如无法上外网,可以通过代理临时连接)进行,尤其在服务器应急响应当中,优势明显。
  2. 商业软件的的扫描效果也不错,可以集中管理,定期出安全报告等,也是很迎合企业信息安全管理需求。
  3. 鉴于webshell这类病毒的特殊性,建议采取更专业的检查方式,具体情况下回分解。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux杀毒软件 的相关文章

  • 如何在perl中使用O_ASYNC和fcntl?

    我想使用 O ASYNC 选项 当管道可以读取时 SIGIO 的处理程序将运行 但以下代码不起作用 任何人都可以帮助我吗 bin env perl use Fcntl SIG IO sub print catch SIGIO n my fl
  • 完整的 C++ i18n gettext()“hello world”示例

    我正在寻找完整的 i18ngettext 你好世界的例子 我已经开始了一个基于的脚本使用 GNU gettext 的本机语言支持教程 https web archive org web 20130330233819 http oriya s
  • 如何将 elf 解释器(ld-linux.so.2/ld-2.17.so)构建为静态库?

    如果我的问题不准确 我深表歉意 因为我没有太多 Linux 相关经验 我目前正在构建一个 Linux 从头开始 主要遵循 linuxfromscratch org 版本的指南 7 3 我遇到了以下问题 当我构建可执行文件时 获取一个称为 E
  • pthread_self() 返回的线程 ID 与调用 gettid(2) 返回的内核线程 ID 不同

    这句话来自于pthread self 的手册页 http linux die net man 3 pthread self 那么 我应该根据什么来决定是否应该使用pthread self or gettid确定哪个线程正在运行该函数 两者都
  • Grep 递归和计数

    需要在具有大量子目录的目录中搜索文件内的字符串 我在用着 grep c r string here 我怎样才能找到总数量 如何仅输出至少具有一个实例的文件 使用 Bash 的进程替换 这给出了我认为是您想要的输出 如果不是 请澄清问题 gr
  • php_network_getaddresses: getaddrinfo 失败: 名称或服务未知 (0) 连接失败..!

    我正在使用 php 邮件程序功能 但出现以下错误 如何修复它 2016 01 22 06 15 48 SMTP 错误 无法连接到服务器 php network getaddresses getaddrinfo失败 名称或服务未知 0 连接失
  • 在嵌入式系统上将内核控制台发送到哪里?

    我正在开发一个嵌入式系统 该系统当前通过串行端口 1 上的控制台输出启动 Linux 使用启动加载程序中的控制台启动参数 然而 最终我们将使用这个串行端口 内核控制台输出的最佳解决方案是什么 dev null 能否以某种方式将其放在 pty
  • 在用户程序中使用 或在驱动程序模块代码中使用 ...这有关系吗?

    我正在开发一个设备驱动程序模块和关联的用户库来处理ioctl 来电 该库获取相关信息并将其放入一个结构中 该结构被传递到驱动程序模块中并在那里解压 然后进行处理 我省略了很多步骤 但这就是总体思路 一些数据通过结构体传递ioctl is u
  • 亚马逊 Linux - 安装 openjdk-debuginfo?

    我试图使用jstack在 ec2 实例上amazon linux 所以我安装了openjdk devel包裹 sudo yum install java 1 7 0 openjdk devel x86 64 但是 jstack 引发了异常j
  • 如何指定配置脚本的包含目录

    我的工作场所有一个 Linux 系统 其中包含相当旧的软件包 并且没有 root 访问权限 我正在从源代码编译我需要的包 prefix somewhere in homedir 我的问题是我只是不知道如何说服配置在特定目录中查找头文件 源码
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 如何在 bash_profile 文件中添加导出语句?

    我正在尝试了解是否必须添加导出语句来在 bash profile 文件中设置变量 我该怎么做呢 例如 如果我必须添加 export AX name 那么我应该将其简单地写在文件末尾还是我还需要编写其他内容 简单写一下export AS na
  • 为什么使用signalfd无法捕获SIGSEGV?

    我的系统是ubuntu 12 04 我将示例修改为man 2 signalfd 并添加sigaddset mask SIGSEGV 在示例中 但我无法得到输出SIGSEGV被生成 这是一个错误吗glibc 源代码片段如下 sigemptys
  • 如何在 Linux 中向热敏打印机发送 ESC/POS 命令

    我正在尝试在热敏打印机上发送 ESC POS 命令 但每当我发送它们时 热敏打印机都会将它们打印为文本 而不是作为命令执行它们 我在 prn 文件中编写这些命令 每当我执行 lp 命令来打印文件时 这些 prn 文件也会被打印 但作为文本
  • Linux 中的 Windows NAmed Pipes 替代品

    我们正在将现有的 Windows 代码移植到 Linux 我们使用 ACE 作为抽象层 我们使用 Windows 命名管道与多个客户端进行通信并执行重叠操作 linux 下这个相当于什么 我检查了linux命名管道 FIFO 但它们似乎只支
  • Linux 上的“软/硬 nofile”是什么意思

    当我尝试在RedHat EL5上安装软件时 我得到了错误 软 硬nofile的期望值是4096 而默认值是1024 我设法增加了这个数字 但我不知道参数是什么 他们指的是软链接和硬链接吗 我改变的方法是 a 修改 etc security
  • SIGHUP 用于重新加载配置

    根据signal 7 SIGHUP用于检测控制终端的挂起或控制进程的死亡 然而 我遇到过很多 OSS 守护进程 服务 其中SIGHUP用于启动配置的重新加载 这里有一些例子 hostapd sshd snort etc 这是实现重新加载的标
  • 删除 Python 中某些操作的 root 权限

    在我的 Python 脚本中 我执行了一些需要 root 权限的操作 我还创建并写入文件 我不想由 root 独占所有 而是由运行我的脚本的用户独占所有 通常 我使用以下命令运行脚本sudo 有办法做到上述吗 您可以使用以下方式在 uid
  • sudo pip install python-Levenshtein 失败,错误代码 1

    我正在尝试在 Linux 上安装 python Levenshtein 库 但每当我尝试通过以下方式安装它时 sudo pip install python Levenshtein 我收到此错误 命令 usr bin python c 导入
  • 在Linux中创建可执行文件

    我计划做的一件事是编写 非常简单的 Perl 脚本 并且我希望能够在不从终端显式调用 Perl 的情况下运行它们 我明白 要做到这一点 我需要授予他们执行权限 使用 chmod 执行此操作非常简单 但它似乎也是一个稍微费力的额外步骤 我想要

随机推荐

  • 【STM32Cube HAL】定时器中断(四)

    实验内容 xff1a 使用基本定时器 xff0c 实现LED灯以1S间隔进行亮灭切换 一 原理图 二 CubeMX配置 Step1 打开 STM32CubeMX xff0c 点击 New Project xff0c 选择芯片型号 xff0c
  • 【STM32Cube HAL】输入捕获(六)——PWM测量

    对于PWM的捕获 xff0c 我这里一共使用两种方法实现 xff1a 第一种是PWM输入模式 xff0c 采用一个定时器的两个通道 xff08 通道一和通道二 xff09 xff0c 配置从模式为复位模式 xff0c 没有进行溢出处理 xf
  • 【STM32知识点】关于不同外设中断标志位清除的使用笔记(更新中)

    在使用中断函数的时候 xff0c 我们往往忘记在中断服务函数内清除中断标志位而导致一些未知错误 以下我总结了几个外设关于中断标志位的清除问题 定时器 xff1a 1 在程序有使用到中断的情况下 xff0c 定时器在使能之前需要先清除更新中断
  • 【FreeRTOS 应用开发笔记】软件定时器(九)

    一 软件定时器的基本概念 1 硬件定时器和软件定时器的主要区别 定时器 xff0c 是指从指定的时刻开始 xff0c 经过一个指定时间 xff0c 然后触发一个超时事件 xff0c 用户可以自定义定时器的周期与频率 硬件定时器 xff1a
  • 【STM32知识点】STM32基础知识总结

    目录 认识STM32 GPIO外设 一 GPIO的八种工作模式 二 总结在STM32中选用IO模式 RCC时钟 NVIC是嵌套向量中断控制器 一 优先级定义 二 优先级分组 EXTI外部中断 事件控制器 SysTick系统定时器 通讯的基本
  • 【数据结构】排序

    本文主要选取了桶排序 xff0c 冒泡排序 xff0c 以及快速排序 当然还有其他几种 xff0c 可以根据需要进行学习 一 桶排序 1 什么是桶排序 xff1f 桶排序是计数排序的升级版 它利用了函数的映射关系 xff0c 高效与否的关键
  • 【数据结构】栈,队列,链表

    一 队列 队列 xff0c 顾名思义 xff0c 就像排队一样 xff0c 我们只能在队首删除 xff0c 在队尾增加 队列是一种先进先出 xff08 FIFO xff09 的数据结构 队列的存储方式可以使用线性表进行存储 xff0c 也可
  • 【数据结构】树

    一 树 1 什么是树 xff1f 树状图是一种数据结构 xff0c 它是由n xff08 n gt 61 1 xff09 个有限节点组成一个具有层次关系的集合 把它叫做 树 是因为它看起来像一棵倒挂的树 xff0c 也就是说它是根朝上 xf
  • 【专题2: 嵌入式stm32】 之 【6.中断和异常】

    嵌入式工程师成长之路 系列文章 总目录系列文章总目录希望本是无所谓有 xff0c 无所谓无的 xff0c 这正如脚下的路 xff0c 其实地上本没有路 xff0c 走的人多了 xff0c 也便成了路原创不易 xff0c 文章会持续更新 xf
  • workerman-chat启动失败解决办法

    该教程是在官方文档的基础上再加上本人的踩坑经验进行的优化 在开始搭建环境之前 xff0c 先要确认你要搭建聊天室的站点的PHP版本 xff0c 为什么要确认PHP版本 xff1f 等下会解释 下面以PHP5 6为例 1 环境检测 官网方法
  • oracle 分区和面向对象数据库系统的学习

    在过去的一周里面 xff0c 学习了oracle表分区 xff0c object relational database system简介 1 oracle分区 oracle分区是在oracle 8 0中引入的 xff0c 这个过程是将一个
  • 非线性系统线性化过程

    线性化 在对非线性系统进行建模分析时 xff0c 对模型进行线性化处理可以简化分析过程 例子 xff1a 磁悬浮系统建模 系统非线性模型 xff1a m a 61 m g k f i z 2 m a 61 m g
  • ECMAScript 6学习笔记(六)数组的扩展

    数组的扩展 1 扩展运算符 含义 扩展运算符 xff08 spread xff09 是三个点 xff08 xff09 它好比 rest 参数的逆运算 xff0c 将一个数组转为用逗号分隔的参数序列 该运算符主要用于函数调用 span cla
  • vs2022 x64 C/C++和汇编混编

    vs2022环境x64 C C 43 43 和汇编混编 vs64位程序不支持 asm内嵌汇编 xff0c 需要单独编写汇编源文件示例如下1 新建空的win32项目 xff0c 新建main cpp xff0c 示例代码如下2 新建asm64
  • python学习:解决如何在函数内处理数据而不影响原列表

    python学习 xff1a 解决如何在函数内处理数据而不影响原列表 关于一个如何在函数内修改三阶矩阵 在python里 xff0c 如果想要定义一个函数 xff0c 把列表当c 43 43 里的形参传进去 xff0c 显然是不可能的 在p
  • 有关树莓派驱动1.3寸IPS屏幕的一点经验

    有关树莓派驱动1 3寸IPS屏幕的经验 前言CS引脚按键显示效果 后记 分享最近我用树莓派驱动IPS屏幕及微雪1 3inch LCD HAT的经验 前言 我的树莓派zero w已经吃灰很久了 xff0c 趁着今年电赛留校集训期间玩一玩 注意
  • tensorflow采坑系列-InvalidArgumentError: Shape [-1,784] has negative dimensions

    问题描述 xff1a InvalidArgumentError Traceback most recent call last d span class hljs command Anaconda span 3 span class hlj
  • 在旧版本Ubuntu系统中使用“apt-get update”出现“404 Not Found”错误的解决办法

    每一个Ubuntu发布版本都有它的结束时间 xff0c 通常 xff0c Ubuntu发布版本支持18个月 xff0c 而LTS Long Term Support xff08 长期支持 xff09 版本分别支持3年 服务器版 和5年 桌面
  • 使用 ROS中的插件

    URDF 文件完成后 xff0c 可以在 rviz 中显示机器人的模型 xff0c 如果要在 gazebo 中进行物理环境仿真 xff0c 还需要为 URDF 文件加入一些 gazebo 相关的标签 既然是仿真 xff0c 那么机器人应该像
  • linux杀毒软件

    0x00前言 linux或者Unix系统经常被用作服务器 xff0c 并且安全性往往比windows高 xff0c 但是在linux查杀病毒往往得依靠管理员执行find grep等命令查看文件以确认文件是否为病毒 xff0c 但由于本身li