当前位置: 首页 > news >正文

完全无网络环境的 openEuler 系统离线安装 ClamAV 的详细步骤

准备工作(在外网机器操作)

1. 下载 ClamAV RPM 包及依赖
mkdir -p ~/clamav-offline/packages
cd ~/clamav-offline/packages# 使用 yumdownloader 下载所有依赖包(需提前安装 yum-utils)
sudo dnf install yum-utils -y
sudo yumdownloader --resolve clamav clamav-update clamd
# 此命令会下载 ClamAV 主程序、病毒库更新工具和守护进程的所有依赖包
2. 下载病毒库文件(CVD)
mkdir -p ~/clamav-offline/virusdb
cd ~/clamav-offline/virusdb# 手动下载最新病毒库文件(从有网络的设备下载)
wget http://database.clamav.net/main.cvd
wget http://database.clamav.net/daily.cvd
wget http://database.clamav.net/bytecode.cvd
3. 打包所有文件
cd ~/clamav-offline
tar -czvf clamav-offline.tar.gz packages/ virusdb/
# 将打包后的文件通过 U盘/内网传输工具 复制到目标内网机器

内网机器操作

1. 上传并解压离线文件
# 假设文件上传到 /root 目录
tar -xzvf /root/clamav-offline.tar.gz -C /root/
2. 手动安装 RPM 包
cd /root/clamav-offline/packages# 安装所有 RPM 包(需按依赖顺序,若报错则手动调整安装顺序)
sudo rpm -ivh *.rpm --nodeps --force
# --nodeps --force 强制忽略依赖(若已确定依赖完整)
3. 手动部署病毒库
# 创建病毒库目录并复制文件
sudo mkdir -p /var/lib/clamav
sudo cp /root/clamav-offline/virusdb/*.cvd /var/lib/clamav/# 设置权限
sudo chown -R clamav:clamav /var/lib/clamav
4. 关闭自动更新配置
sudo sed -i 's/^#Example/Example/' /etc/freshclam.conf
# 启用示例配置(防止服务尝试联网更新)
sudo sed -i 's/^OnUpdateExecute/#OnUpdateExecute/' /etc/freshclam.conf
# 注释掉自动更新命令
5. 启动 ClamAV 服务
sudo systemctl enable clamd@scan --now
6. 验证安装
clamscan --version
# 输出版本信息即成功
clamscan -r /home
# 测试扫描(无报错即可)

后续病毒库更新(离线更新)

  1. 外网定期下载最新 CVD 文件
    重复 准备工作-步骤2,下载最新 main.cvd, daily.cvd, bytecode.cvd

  2. 内网替换病毒库

    sudo rm -f /var/lib/clamav/*.cvd
    sudo cp /path/to/new-cvd-files/*.cvd /var/lib/clamav/
    sudo chown clamav:clamav /var/lib/clamav/*
    

注意事项

  1. 依赖问题
    若安装 RPM 时提示缺少依赖,需在外网机器使用 yumdownloader 补充下载对应依赖包。

  2. SELinux 限制
    如果系统启用 SELinux,执行以下命令:

    sudo restorecon -Rv /var/lib/clamav
    
  3. 日志排查
    若服务启动失败,检查日志:

    journalctl -u clamd@scan
    

以上步骤确保在 完全无网络 环境下完成安装和病毒库初始化。

相关文章:

  • 计算机网络面经
  • 经典算法 判断一个图是不是树
  • Java——方法
  • RNN - 序列模型
  • 【经验记录贴】使用配置文件提高项目的可维护性
  • Android LiveData学习总结(源码级理解)
  • (小白0基础) 微调deepseek-8b模型参数详解以及全流程——训练篇
  • Spark-sql编程
  • (二)Graspnet在mujoco的仿真复现(操作记录)
  • 天津大学 | 智能制造与数字孪生技术:面向可持续制造方向发展
  • 在Centos7下源码安装部署 MySQL57
  • 【C语言基础】双指针在qsort函数中的应用
  • 浙江大学:DeepSeek如何引领智慧医疗的革新之路?|48页PPT下载方法
  • WordPress - 此站点出现严重错误
  • 《AI大模型应知应会100篇》第19篇:隐私保护与大模型训练
  • 计算机网络 - 四次挥手相关问题
  • 利用IDEA开发Spark-SQL
  • 状态机编程中的事件和状态
  • nginx自编译重现gzip和chunked的现象
  • MATLAB程序实现了一个物流配送优化系统,主要功能是通过遗传算法结合四种不同的配送策略,优化快递订单的配送方案
  • 国家网信办举办在欧中资企业座谈会,就数据跨境流动等进行交流
  • 国铁集团郑州局预计“五一”发送642.5万人
  • 庄语乐︱宋代历史是被“塑造”出来的吗?
  • “人工智能是年轻的事业,也是年轻人的事业”,沪上高校师生畅谈感想
  • 白云山一季度营收净利双降,此前称今年将挖掘盘活自身资源
  • 新经济与法|如何治理网购刷单与控评?数据合规管理是关键