Linux 下杀毒软件 clamav 0.104.2 离线安装及测试(CentOS7)

2023-10-27

Linux 下杀毒软件 clamav 0.104.2 离线安装及测试(CentOS7)

1.下载安装

clamav 官网下载 clamav-0.104.2.linux.x86_64.rpm

# 有网络可用如下命令下载
wget https://www.clamav.net/downloads/production/clamav-0.104.2.linux.x86_64.rpm

在这里插入图片描述

将该文件上传至服务器,安装命令如下:

rpm -ivh --prefix=/usr/local/clamav clamav-0.104.2.linux.x86_64.rpm

2. 配置

  1. 添加用户组和组成员

    groupadd clamav
    useradd -g clamav clamav
    
  2. 创建日志目录、病毒库目录和套接字目录

    mkdir -p /usr/local/clamav/logs
    mkdir -p /usr/local/clamav/update
    mkdir -p /usr/local/clamav/socket
    
  3. 创建日志文件

    touch /usr/local/clamav/logs/clamd.log
    touch /usr/local/clamav/logs/freshclam.log
    
  4. 文件授权

     chown clamav:clamav /usr/local/clamav/logs/clamd.log
     chown clamav:clamav /usr/local/clamav/logs/freshclam.log
     chown clamav:clamav /usr/local/clamav/logs
     chown clamav:clamav /usr/local/clamav/update
     chown clamav:clamav /usr/local/clamav/socket
    
  5. 修改配置文件

    cp  /usr/local/clamav/etc/clamd.conf.sample /usr/local/clamav/etc/clamd.conf
    cp /usr/local/clamav/etc/freshclam.conf.sample /usr/local/clamav/etc/freshclam.conf
    

    文件1:clamd.conf

    vim /usr/local/clamav/etc/clamd.conf
    
    #Example  //注释掉这一行
    #添加以下内容
    LogFile /usr/local/clamav/logs/clamd.log
    PidFile /usr/local/clamav/update/clamd.pid
    DatabaseDirectory /usr/local/clamav/update
    LocalSocket /usr/local/clamav/socket/clamd.socket
    

    文件2:freshclam.conf

    vim /usr/local/clamav/etc/freshclam.conf
    
    #Example  //注释掉这一行
    #添加以下内容
    DatabaseDirectory /usr/local/clamav/update
    UpdateLogFile /usr/local/clamav/logs/freshclam.log
    PidFile /usr/local/clamav/update/freshclam.pid
    

    将这两个文件复制一下:

    cp /usr/local/clamav/etc/*.conf /usr/local/etc/
    

3. 运行

  1. 配置库文件路径

    vim /etc/ld.so.conf
    

    追加一行:

    /usr/local/clamav/lib64
    

    更新生效:

    ldconfig
    

    如果最后运行时仍然报错:

    clamscan: error while loading shared libraries: libclamav.so.9: cannot open shared object file: No such file or directory
    

    则说明配置没有生效。

  2. 下载病毒库文件并上传到目录 /usr/local/clamav/update

    main.cvd
    daily.cvd
    bytecode.cvd

    注:也可以在有网络的机器上运行如下命令更新病毒库:

    /usr/local/clamav/bin/freshclam
    
  3. 创建命令软件链接

    ln -s /usr/local/clamav/bin/clamscan /usr/local/bin/clamscan
    ln -s /usr/local/clamav/bin/freshclam /usr/local/bin/freshclam
    
  4. 运行使用

    # clamscan -r 指定目录(不填则默认当前目录)
    clamscan -r
    # 后台运行
    nohup clamscan -r / > clamscanNohup.log 2>&1 &
    

在这里插入图片描述

  1. 卸载程序

    rpm remove clamav
    

4.服务器配置

4.1 设置 daemon 守护进程(推荐)

  1. 开机自动更新病毒库

    # 启动clamav守护进程
    freshclam --daemon
    # 设置freshclam开机自启动
    echo "/usr/local/clamav/bin/freshclam --daemon" >> /etc/rc.d/rc.local
    
  2. 守护模式启动程序

    /usr/local/clamav/sbin/clamd
    
  3. 检查是否开启守护进程

    # 运行如下命令,其中 TPGID 显示为 -1
    ps ajx | more
    

    在这里插入图片描述

    ps ajx | grep freshclam
    ps ajx | grep clamd
    

    在这里插入图片描述

4.2 定时任务

配置在定时任务中:

# 打开定时任务配置文件
crontab -e
# 升级病毒库
1 2  * * *	/usr/local/clamav/bin/freshclam
# 定时查杀指定目录并删除感染的文件
1 3 * * *	clamscan -r / --remove -l /var/log/clamscan.log

crontab 命令说明

# m h dom mon dow command

在 crontab 文件中,通过 m h dom mon dow command 这六个字段来设置定时任务,每一行对应一个定时任务。这六个字段的含义说明如下:

  • m:对应分钟(minute)
    指定要在一小时之中的第几分钟执行该任务。取值范围是 0-59.

  • h:对应小时(hour)
    指定要在一天之中的第几个小时执行该任务。取值范围是 0-23.

  • dom:对应日期(day of month)
    指定要在一月之中的第几天执行该任务。取值范围是 0-31.

  • mon:对应月份(month)
    指定要在一年之中的第几月执行该任务。取值范围是 1-12。
    也可以通过月份英文名称的前三个字母来指定,不区分大小写。例 如,一月的英文单词是 january,那么这里可以用 jan 来指定一月。

  • dow:对应星期几(day of week)
    指定要在一周之中的星期几执行该任务。取值范围是 0-7,0 和 7 都对应星期天。
    也可以通过星期英文名称的前三个字母来指定,不区分大小写。例如,星期一的英文单词是 monday,那么这里可以用 mon 来指定星期一。

  • command:对应具体的操作

    提供具体的命令来指定进行什么操作,可以提供脚本文件的路径来执行该脚本文件。

    这六个字段要求用空格隔开。且每个字段都必须提供值,不能省略某个字段的值。从第五个字段之后的所有内容都属于第六个字段,也就是要执行的操作。

前五个字段可以使用下面的特殊字符来指定一些特殊的时间:

    表示任意一个有效的取值。例如,把日期指定为 *,则表示每一天都进行该任务。
  • -
    表示一个有效的范围值。例如,在小时指定为 8-11,表示在 8点、9点、10点、和 11点都执行该任务。
  • ,
    表示隔开不同的取值列表。例如,把小时指定为 2,3,5,7,表示在 2点、3点、5点、7点都执行该任务。
    注意:在逗号后面不要加空格,空格表示隔开不同的字段。
  • /
    表示一个时间间隔,而不是指定具体的时间。例如,把小时指定为 */2,表示每间隔两小时执行一次该任务。

5.ClamAV 常用命令

# 更多参数详见
clamscan -h
freshclam -h

clamscan:

通用,不依赖服务,命令参数较多,执行速度稍慢;
用clamscan扫描,不需要开始服务就能使用;
-r 递归扫描子目录
-i 只显示发现的病毒文件
--no-summary 不显示统计信息 

扫描参数:
-r/--recursive[=yes/no]               所有文件
--log=FILE/-l FILE                    增加扫描报告
--move [路径]        		      移动病毒文件至..
--remove [路径]      	              删除病毒文件
--quiet               		      只输出错误消息
--infected/-i         		      只输出感染文件
--suppress-ok-results/-o              跳过扫描OK的文件
--bell                      	      扫描到病毒文件发出警报声音
--unzip(unrar)                        解压压缩文件扫描
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 下杀毒软件 clamav 0.104.2 离线安装及测试(CentOS7) 的相关文章

  • 在 Linux 上访问 main 之外的主要参数

    是否可以访问参数main在外面main 即在共享库构造函数中 在 Linux 上除了通过解析之外 proc self cmdline 您可以通过将构造函数放入 init array部分 功能在 init array 不像 init 使用相同
  • 从 Python 访问 802.11 无线管理帧

    我想从 Linux 上的 Python 嗅探 802 11 管理 探测请求 帧 这可以从 Scapy 中实现 如下所示 coding utf 8 from scapy all import def proc p if p haslayer
  • 如何确定代码是否在信号处理程序上下文中运行?

    我刚刚发现有人正在从信号处理程序调用我编写的绝对不是异步信号安全的函数 所以 现在我很好奇 如何避免这种情况再次发生 我希望能够轻松确定我的代码是否在信号处理程序上下文中运行 语言是 C 但该解决方案不适用于任何语言吗 int myfunc
  • 如何设置Java线程的CPU核心亲和力?

    我搜索了以前关于类似主题的帖子 但找不到合适的答案 因此提出这个问题 非常感谢您帮助回答 我知道在 Linux 中通过任务集命令设置进程与特定 CPU 核心的关联性 但我想设置 Java 线程与特定 cpu 核心的亲和力 以便属于同一进程的
  • 如何在 Linux 中重新添加 unicode 字节顺序标记?

    我有一个相当大的 SQL 文件 它以 FFFE 的字节顺序标记开头 我使用 unicode 感知的 linux 分割工具将此文件分割成 100 000 行块 但是当将这些传递回窗口时 它确实not与第一个部分以外的任何部分一样 只是它具有
  • 将node.js +expressjs应用程序的NODE_ENV设置为ubuntu下的守护进程

    我按照这些说明让守护进程正常工作 http kevin vanzonneveld net techblog article run nodejs as a service on ubuntu karmic http kevin vanzon
  • XAMPP Windows 上的 Php Cron 作业

    嗯 我是这个词的新手CRON 据我所知 这是一个Unix安排特定操作在定义的时间间隔后执行的概念 我需要运行一个php文件 每小时更新一次数据库 但我的困惑在于安排执行 我在用XAMPP用于 Windows 7 上的本地开发测试 我发现了什
  • 在 debian wheezy amd64 上安装 ia32-libs

    我正在使用 Debian 7 喘息 amd64 uname a Linux tzwm debian 3 2 0 4 amd64 1 SMP Debian 3 2 51 1 x86 64 GNU Linux 我想安装ia32 libs在我的
  • 用于读取文件的 Bash 脚本

    不知道为什么最后一行没有从脚本中删除 bin bash FILENAME 1 while read line do cut d f2 echo line done lt FILENAME cat file 1 test 2 test 3 t
  • 裸机交叉编译器输入

    裸机交叉编译器的输入限制是什么 比如它不编译带有指针或 malloc 的程序 或者任何需要比底层硬件更多的东西 以及如何才能找到这些限制 我还想问 我为目标 mips 构建了一个交叉编译器 我需要使用这个交叉编译器创建一个 mips 可执行
  • 为什么docker容器提示“权限被拒绝”?

    我使用以下命令来运行 docker 容器 并从主机映射目录 root database 到容器 tmp install database docker run it name oracle install v root database t
  • 用于时间线数据的类似 gnuplot 的程序

    我正在寻找一个类似 gnuplot用于在时间轴中绘制数据图表的程序 类似 gnuplot 在 Linux 上运行 命令行功能 GUI 对我帮助不大 可编写脚本的语法 输出为 jpg png svg 或 gif 输出应该是这样的 set5 s
  • pthread_self() 返回的线程 ID 与调用 gettid(2) 返回的内核线程 ID 不同

    这句话来自于pthread self 的手册页 http linux die net man 3 pthread self 那么 我应该根据什么来决定是否应该使用pthread self or gettid确定哪个线程正在运行该函数 两者都
  • 如何在linux中使用iptables将http和https流量转发到透明代理[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题似乎不是关于主要由程序员使用的特定编程问题 软件算法或软件工具 help on topic 如果您认为该问题与主题相关另一个 St
  • Grep 递归和计数

    需要在具有大量子目录的目录中搜索文件内的字符串 我在用着 grep c r string here 我怎样才能找到总数量 如何仅输出至少具有一个实例的文件 使用 Bash 的进程替换 这给出了我认为是您想要的输出 如果不是 请澄清问题 gr
  • Apache LOG:子进程 pid xxxx 退出信号分段错误 (11)

    Apache PHP Mysql Linux 注意 子进程 pid 23145 退出信号分段错误 11 tmp 中可能存在 coredump 但 tmp下没有找到任何东西 我怎样才能找到错误 PHP 代码中函数的无限循环导致了此错误
  • 查找并删除超过 x 天的文件或文件夹

    我想删除超过 7 天的文件和文件夹 所以我尝试了 17 07 14 email protected cdn cgi l email protection find tmp mindepth 1 maxdepth 1 ctime 7 exec
  • 由于 abi::cxx11 符号导致的链接问题?

    我们最近收到一份报告 因为GCC 5 1 libstdc 和双 ABI http gcc gnu org onlinedocs libstdc manual using dual abi html 它似乎Clang 不知道 GCC 内联名称
  • 如何指定配置脚本的包含目录

    我的工作场所有一个 Linux 系统 其中包含相当旧的软件包 并且没有 root 访问权限 我正在从源代码编译我需要的包 prefix somewhere in homedir 我的问题是我只是不知道如何说服配置在特定目录中查找头文件 源码
  • 如何使用 VSCode 调试 Linux 核心转储?

    我故意从我使用 VSCode 编写的 C 应用程序生成核心转储 我不知道如何调试核心转储 有没有人愿意分享这方面的经验 更新 我相信我现在已经可以使用了 我为核心文件创建了第二个调试配置 我需要添加指向生成的转储文件的 coreDumpPa

随机推荐