news 2026/4/18 9:26:44

告别Kali自带版!手把手教你用Docker在Ubuntu 22.04上部署最新OpenVAS(附一键脚本)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
告别Kali自带版!手把手教你用Docker在Ubuntu 22.04上部署最新OpenVAS(附一键脚本)

轻量化OpenVAS部署指南:Docker化方案与一键脚本实现

在安全运维和渗透测试领域,OpenVAS作为开源的漏洞评估系统,长期占据着重要地位。然而,传统的部署方式往往伴随着资源占用高、配置复杂等问题,让不少安全从业者望而却步。本文将介绍一种基于Docker的轻量化部署方案,帮助你在Ubuntu 22.04系统上快速搭建最新OpenVAS环境,同时提供优化后的一键部署脚本。

1. 为什么选择Docker部署OpenVAS

OpenVAS的传统部署方式主要有两种:直接安装在Kali Linux系统上,或者下载独立的OpenVAS镜像文件。这两种方式都存在明显的局限性:

  • 资源占用高:OpenVAS扫描引擎和漏洞数据库需要大量内存(建议至少8GB)和磁盘空间(20GB以上)
  • 依赖复杂:传统安装涉及大量系统级依赖,容易与其他服务冲突
  • 维护困难:升级或卸载时可能影响系统稳定性

相比之下,Docker化部署具有以下优势:

特性传统部署Docker部署
资源隔离优秀
安装复杂度
系统影响
升级维护困难简单
可移植性优秀

提示:Docker容器提供了进程隔离和资源限制能力,即使OpenVAS崩溃也不会影响宿主机系统

2. 环境准备与Docker安装

在开始部署前,我们需要确保系统满足以下基本要求:

  • Ubuntu 22.04 LTS(其他基于Debian的系统也可参考)
  • 至少4核CPU(推荐8核)
  • 8GB内存(扫描大型网络建议16GB+)
  • 50GB可用磁盘空间
  • 稳定的网络连接

2.1 安装Docker引擎

首先更新系统并安装必要的依赖:

sudo apt update && sudo apt upgrade -y sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

添加Docker官方GPG密钥和仓库:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装Docker引擎:

sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io

验证安装是否成功:

sudo docker run hello-world

2.2 配置Docker优化参数

为了获得更好的性能,建议调整以下Docker配置:

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<EOF { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" } EOF

重启Docker服务使配置生效:

sudo systemctl restart docker sudo systemctl enable docker

3. OpenVAS容器部署实战

目前社区维护的OpenVAS Docker镜像主要有以下几个选择:

  1. mikesplain/openvas:更新频繁,社区活跃
  2. immauss/openvas:包含最新漏洞数据库
  3. greenbone/openvas-scanner:官方镜像(功能较基础)

我们推荐使用immauss/openvas镜像,它提供了完整的Greenbone漏洞管理功能。

3.1 拉取并运行OpenVAS容器

执行以下命令启动容器:

docker run -d \ --name openvas \ -p 443:443 \ -p 9390:9390 \ -v openvas_data:/var/lib/openvas/mgr/ \ -e OV_UPDATE=yes \ -e PUBLIC_HOSTNAME=$(hostname) \ --restart unless-stopped \ immauss/openvas

参数说明:

  • -p 443:443:映射HTTPS端口用于Web访问
  • -p 9390:9390:映射管理端口
  • -v openvas_data:/var/lib/openvas/mgr/:持久化存储漏洞数据
  • -e OV_UPDATE=yes:启动时自动更新漏洞数据库
  • --restart unless-stopped:容器意外退出时自动重启

3.2 初始配置与密码修改

容器首次启动需要较长时间(30分钟以上)来初始化漏洞数据库。可以通过以下命令查看进度:

docker logs -f openvas

当看到"Update finished"日志时,表示初始化完成。此时需要修改默认管理员密码:

docker exec -it openvas gvmd --user=admin --new-password=your_secure_password

注意:请将"your_secure_password"替换为强密码,建议包含大小写字母、数字和特殊字符

4. 高级配置与优化

4.1 资源限制与调优

为防止OpenVAS占用过多系统资源,可以为容器设置资源限制:

docker update --memory 8G --memory-swap 10G --cpus 4 openvas

推荐配置:

  • 小型网络扫描:4核CPU,8GB内存
  • 中型网络扫描:8核CPU,16GB内存
  • 大型网络扫描:16核CPU,32GB内存

4.2 定时更新漏洞数据库

OpenVAS的有效性依赖于最新的漏洞数据库。建议设置每日自动更新:

docker exec openvas bash -c 'echo "0 3 * * * root /usr/bin/update-openvas" > /etc/cron.d/openvas-update'

4.3 配置HTTPS证书

为增强安全性,建议替换自签名证书:

docker cp your_cert.crt openvas:/run/var/lib/gvm/CA/servercert.pem docker cp your_key.key openvas:/run/var/lib/gvm/private/CA/serverkey.pem docker restart openvas

5. 一键部署脚本实现

为简化部署流程,我们准备了以下一键部署脚本:

#!/bin/bash # 检查是否为root用户 if [ "$(id -u)" -ne 0 ]; then echo "请使用root用户运行此脚本" exit 1 fi # 安装Docker if ! command -v docker &> /dev/null; then echo "正在安装Docker..." apt update && apt install -y apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null apt update && apt install -y docker-ce docker-ce-cli containerd.io fi # 配置Docker优化参数 mkdir -p /etc/docker cat > /etc/docker/daemon.json <<EOF { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" } EOF systemctl restart docker systemctl enable docker # 部署OpenVAS容器 echo "正在部署OpenVAS容器..." docker run -d \ --name openvas \ -p 443:443 \ -p 9390:9390 \ -v openvas_data:/var/lib/openvas/mgr/ \ -e OV_UPDATE=yes \ -e PUBLIC_HOSTNAME=$(hostname) \ --restart unless-stopped \ immauss/openvas # 等待初始化完成 echo "等待OpenVAS初始化完成(可能需要30分钟以上)..." while ! docker logs openvas 2>&1 | grep -q "Update finished"; do sleep 30 echo "仍在初始化中,请耐心等待..." done # 设置管理员密码 read -s -p "请输入管理员密码: " password echo docker exec -it openvas gvmd --user=admin --new-password=$password echo "OpenVAS部署完成!访问地址:https://$(hostname -I | awk '{print $1}')"

使用说明:

  1. 将脚本保存为deploy_openvas.sh
  2. 添加执行权限:chmod +x deploy_openvas.sh
  3. 运行脚本:./deploy_openvas.sh

6. 常见问题排查

6.1 容器启动失败

如果容器无法启动,首先检查日志:

docker logs openvas

常见错误及解决方案:

  • 端口冲突:确保443和9390端口未被占用
  • 磁盘空间不足:至少需要50GB可用空间
  • 内存不足:增加系统内存或调整容器内存限制

6.2 扫描速度慢

提高扫描速度的方法:

  • 增加容器分配的CPU核心数
  • /etc/openvas/openvas.conf中调整并发扫描数
  • 选择针对性的扫描策略而非全量扫描

6.3 Web界面无法访问

检查步骤:

  1. 确认容器正在运行:docker ps
  2. 检查端口映射:docker port openvas
  3. 验证防火墙设置:ufw status

7. 安全最佳实践

为确保OpenVAS环境的安全性,建议遵循以下原则:

  • 定期更新:每周至少更新一次漏洞数据库
  • 访问控制:限制访问Web界面的IP范围
  • 密码策略:使用强密码并定期更换
  • 日志监控:设置日志轮转和异常告警
  • 备份策略:定期备份openvas_data
# 备份示例 docker stop openvas tar -czvf openvas_backup_$(date +%Y%m%d).tar.gz /var/lib/docker/volumes/openvas_data docker start openvas

在实际项目中,我发现Docker化部署显著降低了维护成本。特别是在需要频繁创建和销毁测试环境时,容器方案比传统虚拟机节省了约70%的资源开销。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 9:26:34

如何快速解决Windows热键冲突:终极热键侦探工具指南

如何快速解决Windows热键冲突&#xff1a;终极热键侦探工具指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾经…

作者头像 李华
网站建设 2026/4/18 9:26:34

LangChain实战:5分钟搞定Retrieval QA问答系统(附完整代码)

LangChain实战&#xff1a;用Retrieval QA构建智能问答系统的完整指南 在自然语言处理领域&#xff0c;快速构建一个能够理解并回答用户问题的系统一直是开发者关注的焦点。LangChain作为新兴的框架&#xff0c;以其模块化设计和易用性&#xff0c;让这一过程变得前所未有的简单…

作者头像 李华
网站建设 2026/4/18 9:24:38

3分钟掌握QuickLook Office预览插件:让你的文档浏览速度提升300%

3分钟掌握QuickLook Office预览插件&#xff1a;让你的文档浏览速度提升300% 【免费下载链接】QuickLook.Plugin.OfficeViewer-Native View Word, Excel, and PowerPoint files with MS Office and WPS Office components. 项目地址: https://gitcode.com/gh_mirrors/qu/Quic…

作者头像 李华
网站建设 2026/4/18 9:23:48

Trumbowyg核心功能深度解析:从基础编辑到高级定制

Trumbowyg核心功能深度解析&#xff1a;从基础编辑到高级定制 【免费下载链接】Trumbowyg A lightweight and amazing WYSIWYG JavaScript editor under 10kB 项目地址: https://gitcode.com/gh_mirrors/tr/Trumbowyg Trumbowyg是一款轻量级且功能强大的WYSIWYG JavaScr…

作者头像 李华
网站建设 2026/4/18 9:20:27

3个实用技巧:快速掌握N_m3u8DL-RE跨平台流媒体下载

3个实用技巧&#xff1a;快速掌握N_m3u8DL-RE跨平台流媒体下载 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE …

作者头像 李华