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

从零开始:在CentOS 7上使用Docker快速搭建OpenVAS漏洞扫描环境(附详细配置步骤)

从零构建企业级漏洞扫描平台CentOS 7DockerOpenVAS全实战指南在网络安全日益重要的今天漏洞扫描已成为企业IT基础设施的标配防护手段。OpenVAS作为开源的漏洞评估系统凭借其全面的漏洞检测能力和持续更新的漏洞数据库成为众多安全团队的首选工具。本文将带您从零开始在CentOS 7系统上通过Docker快速部署OpenVAS现称GVM打造一个专业级的漏洞扫描环境。1. 环境准备与基础配置1.1 系统要求检查在开始部署前我们需要确保CentOS 7系统满足以下最低要求硬件配置CPU至少4核x86_64架构内存8GB RAM推荐16GB存储100GB可用空间SSD强烈推荐网络稳定互联网连接软件环境CentOS 7.9内核版本3.10.0-1160.el7.x86_64或更高已配置sudo权限的非root用户防火墙规则允许443、9390、9392端口访问提示使用free -h和df -h命令可快速检查内存和磁盘空间情况。若资源不足OpenVAS容器可能启动失败或运行异常缓慢。1.2 Docker环境部署对于尚未安装Docker的环境执行以下步骤# 安装必要工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 添加Docker官方仓库 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安装Docker引擎 sudo yum install -y docker-ce docker-ce-cli containerd.io # 启动并设置开机自启 sudo systemctl enable --now docker # 验证安装 sudo docker --version为方便管理建议安装Docker Composesudo curl -L https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod x /usr/local/bin/docker-compose sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose docker-compose --version2. OpenVAS容器化部署2.1 选择适合的Docker镜像目前社区维护的OpenVAS/GVM镜像主要有以下几个选择镜像名称维护状态更新频率特点immauss/openvas活跃每周包含完整组件自动更新mikesplain/openvas维护中不定期轻量版基础功能securecompliance/gvm企业级每月商业支持稳定性高我们推荐使用immauss/openvas镜像因其更新及时且社区支持活跃。2.2 编写docker-compose.yml创建部署目录并编写配置文件mkdir ~/openvas cd ~/openvas cat docker-compose.yml EOF version: 3.8 services: openvas: image: docker.io/immauss/openvas container_name: openvas restart: unless-stopped ports: - 443:443 # Web UI HTTPS访问 - 9390:9390 # GSAD管理接口 - 9392:9392 # 扫描服务端口 environment: - OV_UPDATEyes # 启用自动更新 - PASSWORDYourStrongPassword123 # 设置admin密码 volumes: - gvm_data:/data cap_add: - NET_ADMIN mem_limit: 8g cpus: 4 volumes: gvm_data: EOF关键配置说明mem_limit和cpus限制容器资源使用OV_UPDATEyes启用漏洞数据库自动更新数据卷gvm_data持久化存储扫描配置和结果2.3 启动容器与服务初始化执行部署命令sudo docker-compose up -d首次启动将经历以下阶段下载镜像约2-4GB视网络情况初始化PostgreSQL数据库下载最新漏洞数据NVT、SCAP、CERT等启动各服务组件gvmd、gsad、openvas-scanner等整个过程可能需要30分钟到数小时取决于硬件性能和网络带宽。可通过以下命令查看进度sudo docker logs -f openvas当看到It seems like your OpenVAS-9 installation is OK时表示服务已就绪。3. 系统配置与优化3.1 初始登录与安全设置访问Web界面https://服务器IP:9392使用默认凭证登录用户名admin密码docker-compose.yml中设置的PASSWORD值首次登录后应立即修改admin密码System → Users创建新用户并分配适当角色配置HTTPS证书可使用Lets Encrypt3.2 漏洞数据库更新策略OpenVAS依赖定期更新的漏洞数据库。虽然设置了自动更新但仍需注意更新频率# 手动触发完整更新 sudo docker exec openvas greenbone-feed-sync --type all # 仅更新NVT网络漏洞测试 sudo docker exec openvas greenbone-feed-sync --type nvt定时任务 添加cronjob实现每日自动更新(crontab -l 2/dev/null; echo 0 3 * * * /usr/bin/docker exec openvas greenbone-feed-sync --type nvt) | crontab -3.3 性能调优建议针对不同规模环境的配置调整场景容器内存CPU核心并发扫描数数据库优化测试环境4GB22默认配置中小型企业8GB45shared_buffers1GB大型网络16GB810独立数据库服务器调整PostgreSQL参数需进入容器sudo docker exec -it openvas bash vi /data/postgresql/gvmd-postgresql.conf # 修改关键参数后重启服务 supervisorctl restart postgresql4. 实战扫描与报告分析4.1 创建第一个扫描任务目标配置导航到Configuration → Targets新建目标输入IP范围或域名如192.168.1.1-254选择端口列表推荐All IANA assigned TCP扫描配置进入Configuration → Scan Configs选择Full and fast策略平衡速度与覆盖面可自定义排除特定脆弱性检测任务创建进入Scans → Tasks新建任务关联目标和扫描配置设置调度计划立即或定期4.2 扫描结果解读典型漏洞报告包含以下关键信息CVSS评分3.5分以下为低风险7.0分以上需立即处理解决方案提供修复建议和补丁链接误报处理可标记误报并添加注释导出报告示例支持多种格式# 从容器内导出最新报告 sudo docker exec openvas gvmd --get-reports --format PDF4.3 持续监控与集成将OpenVAS集成到DevOps流程API自动化import requests auth (admin, password) response requests.get(https://openvas-server:9392/api/tasks, authauth, verifyFalse) print(response.json())与SIEM系统对接配置Syslog转发Administration → Syslog设置邮件告警Configuration → Alerts趋势分析使用GVM内置的报表功能导出数据到Grafana可视化5. 高级维护与故障排除5.1 常见问题解决方案问题现象可能原因解决方法容器启动失败内存不足增加docker-compose.yml中的mem_limitWeb界面无法访问防火墙阻止开放443、9390、9392端口扫描速度慢资源争用限制并发扫描数错峰执行数据库不同步更新中断手动执行greenbone-feed-sync5.2 备份与恢复策略定期备份关键数据# 备份数据库 sudo docker exec openvas pg_dump -U gvmd gvmd gvmd_backup.sql # 备份配置和结果 tar czvf openvas_backup.tar.gz ~/openvas/gvm_data恢复步骤# 停止服务 sudo docker-compose down # 恢复数据卷 tar xzvf openvas_backup.tar.gz -C ~/openvas/ # 导入数据库 sudo docker-compose up -d sudo docker exec -i openvas psql -U gvmd gvmd gvmd_backup.sql5.3 版本升级与迁移升级OpenVAS容器cd ~/openvas sudo docker-compose pull sudo docker-compose down sudo docker-compose up -d迁移到新服务器在新主机安装相同版本Docker复制docker-compose.yml和数据备份执行恢复流程6. 安全最佳实践6.1 访问控制强化角色权限管理管理员完全控制审计员只读访问扫描操作员有限任务创建权限双因素认证 通过TOTP应用如Google Authenticator增强登录安全6.2 网络防护措施IP访问限制# 在docker-compose.yml中添加 environment: - ALLOWED_HOSTS192.168.1.0/24,10.0.0.5TLS加密 使用自签名或CA证书替换默认证书sudo docker cp server.crt openvas:/usr/local/share/gvm/gsad/web/ssl/ sudo docker-compose restart6.3 日志审计配置启用详细日志记录sudo docker exec openvas bash -c echo log_level128 /etc/openvas/openvas_log.conf sudo docker-compose restart关键日志文件位置/data/var/log/gvm/gsad.log- Web访问日志/data/var/log/gvm/gvmd.log- 管理服务日志/data/var/log/gvm/openvas.log- 扫描引擎日志7. 扩展应用场景7.1 多租户架构实现通过GVM的角色和权限系统可以构建多租户扫描平台为每个部门创建独立用户设置目标权限边界配置自定义扫描策略7.2 与CI/CD管道集成在Jenkins或GitLab CI中添加扫描步骤pipeline { stages { stage(Vulnerability Scan) { steps { sh curl -k -X POST https://openvas-server:9392/api/tasks \ -u api-user:password \ -d targetstaging-serverscan_configFull and fast } } } }7.3 自定义扫描策略开发通过编写NVT脚本扩展检测能力if(description) { script_oid 1.3.6.1.4.1.25623.1.0.999999; script_name My Custom Check; script_version $Revision: 1.0 $; script_category ACT_GATHER_INFO; script_family My Checks; script_copyright © 2023 My Org; exit(0); } port get_port_state(22); if(!port) exit(99); if(ssh_negotiate(port:22)) { report SSH service is vulnerable to XYZ attack; security_message(port:22, data:report); exit(0); }将脚本放入容器内的/data/var/lib/openvas/plugins目录并重新加载sudo docker exec openvas greenbone-nvt-sync

相关文章:

从零开始:在CentOS 7上使用Docker快速搭建OpenVAS漏洞扫描环境(附详细配置步骤)

从零构建企业级漏洞扫描平台:CentOS 7DockerOpenVAS全实战指南 在网络安全日益重要的今天,漏洞扫描已成为企业IT基础设施的标配防护手段。OpenVAS作为开源的漏洞评估系统,凭借其全面的漏洞检测能力和持续更新的漏洞数据库,成为众多…...

DDD难落地?就让AI干吧! - cleanddd-skills介绍蘸

AI训练存储选型的演进路线 第一阶段:单机直连时代 早期的深度学习数据集较小,模型训练通常在单台服务器或单张GPU卡上完成。此时直接将数据存储在训练机器的本地NVMe SSD/HDD上。 其优势在于IO延迟最低,吞吐量极高,也就是“数据离…...

IDA Pro 9.3 更新- 强大的反汇编程序、反编译器和多功能调试器工具

简介 IDA Pro 9.3 (macOS, Linux, Windows) - 强大的反汇编程序、反编译器和多功能调试器 A powerful disassembler, decompiler and a versatile debugger. In one tool.IDA Pro 一个强大的反汇编程序、反编译器和多功能调试器。集成在一个工具中。 请访问原文链接&#x…...

ReDroid云手机进阶:x86架构下的ARM应用兼容实战

1. 为什么需要x86架构运行ARM应用? 在搭建ReDroid云手机环境时,很多开发者会遇到一个头疼的问题:为什么我的x86服务器跑不了微信、抖音这些常见APP?这其实涉及到移动生态的一个关键差异——目前90%的安卓应用都是基于ARM架构编译的…...

Golang和Node.js哪个适合后端_Golang Node对比教程【实战】

优先选 Node.js:内部管理后台、小程序轻量 API、MVP 验证期服务;Go 更适合需稳定低延迟、严控内存或深度集成 K8s/Envoy 的场景。选 Node.js 还是 Go?先看你的第一个 API 要干啥如果你的后端服务只是接收 JSON、校验字段、写进 MongoDB、再返…...

终极Windows更新修复方案:Reset Windows Update Tool完整使用指南

终极Windows更新修复方案:Reset Windows Update Tool完整使用指南 【免费下载链接】Reset-Windows-Update-Tool Troubleshooting Tool with Windows Updates (Developed in Dev-C). 项目地址: https://gitcode.com/gh_mirrors/re/Reset-Windows-Update-Tool …...

ARM64 Linux 内核 Hook 实战

背景手头有一台基于 Linux 的精简系统设备(BusyBox),提取并修改 system 分区后,设备出现开机约 5 分钟自动重启的异常。经全面排查与多轮测试,最终确认问题根源是 内核层面的 system 分区完整性校验机制,因…...

安卓TV浏览器大屏适配终极方案:用Firefox+JS代码搞定全屏显示(附兼容性测试)

安卓TV浏览器大屏适配终极方案:用FirefoxJS代码搞定全屏显示(附兼容性测试) 在数字标牌、会议室展示等大屏应用场景中,安卓TV浏览器的适配问题一直是开发者的痛点。市面上常见的浏览器要么稳定性堪忧,要么缺乏对大屏显…...

5分钟搞定:用mkcert为Vue/Uniapp项目快速配置本地HTTPS(附常见问题排查)

前端开发者必备:5分钟为Vue/Uniapp项目配置本地HTTPS全指南 现代前端开发中,越来越多的浏览器API要求运行在HTTPS环境下才能正常工作,比如摄像头访问、地理位置获取、Service Worker等。这给本地开发带来了不小的挑战——我们既需要HTTPS环境…...

BepInEx终极指南:5分钟掌握Unity游戏插件框架

BepInEx终极指南:5分钟掌握Unity游戏插件框架 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx 想要为心爱的Unity游戏添加自定义模组却不知从何下手?BepInEx…...

geo优化软件系统好用的服务商

在当今数字化时代,GEO优化软件系统对于企业的重要性日益凸显。它能够帮助企业根据地理位置信息精准地推送广告、优化业务流程,从而提高营销效果和运营效率。那么,市场上有哪些好用的GEO优化软件系统服务商呢?今天我们就来一探究竟…...

JMS, ActiveMQ 学习一则秦

开发个什么Skill呢? 通过 Skill,我们可以将某些能力进行模块化封装,从而实现特定的工作流编排、专家领域知识沉淀以及各类工具的集成。 这里我打算来一次“套娃式”的实践:创建一个用于自动生成 Skill 的 Skill,一是用…...

电力发展趋势

电力设备行业正处于政策强托底、技术大迭代、全球需求共振的高景气周期,核心趋势是绿色化、智能化、高端化、全球化,并由AI算力、新能源并网、十五五电网投资三大引擎驱动,行业从“规模扩张”转向“高质量发展”。 一、核心驱动:三…...

ECAPA-TDNN说话人识别终极指南:从零开始构建高性能语音验证系统

ECAPA-TDNN说话人识别终极指南:从零开始构建高性能语音验证系统 【免费下载链接】ECAPA-TDNN Unofficial reimplementation of ECAPA-TDNN for speaker recognition (EER0.86 for Vox1_O when train only in Vox2) 项目地址: https://gitcode.com/gh_mirrors/ec/E…...

Redis命令处理机制源码探究潘

一、项目背景与核心价值 1. 解决的核心痛点 Navicat的数据库连接密码并非明文存储,而是通过AES算法加密后写入.ncx格式的XML配置文件中。一旦用户忘记密码,常规方式只能重新配置连接,效率极低。本项目只作为学习研究使用,不做其他…...

3个真实场景下用命令行解放百度网盘操作

3个真实场景下用命令行解放百度网盘操作 【免费下载链接】BaiduPCS-Go iikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能 项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go 你是否曾经历过这样的场景:需要批量下载几十个文件&…...

告别网盘限速!八大平台免费直链下载助手完整指南

告别网盘限速!八大平台免费直链下载助手完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 …...

MySQL 单表查询练习题汇总

一、练习数据表(my_student_score)表结构说明班级:高三 1-5 班(共 5 个)科目:语文、数学、英语、物理、化学、生物(共 6 个)数据量:300 条(覆盖多班级、多科目…...

mysql下载(mysql安装教程)

MySQL是目前世界上最流行的开源关系型数据库管理系统,由瑞典MySQL AB公司开发,现在属于Oracle旗下。简单来说,它就是一个专门用来存储、管理和查询数据的软件,而且完全免费。 MySQL最大的优势就是它的开源特性和高性能。作为LAMP…...

东莞geo搜索优化平台怎么找?亲测正规平台的实践分享

引言在数字化时代,企业如何有效地利用搜索引擎优化来提升品牌曝光度和业务转化率,成为营销领域的关键课题。特别是对于地域性服务企业,如东莞的装修公司或定制服饰公司,地理定位搜索优化(geo搜索优化)显得尤…...

从数据采集到回放验证:ADTF 适配 ROS 的 ADAS 测试实践佑

一、简化查询 1. 先看一下查询的例子 /// /// 账户获取服务 /// /// /// public class AccountGetService(AccountTable table, IShadowBuilder builder) {private readonly SqlSource _source new(builder.DataSource);private readonly IParamQuery _accountQuery build…...

Gephi实战:如何用外观和布局打造专业级网络可视化图表(附详细参数设置)

Gephi实战:如何用外观和布局打造专业级网络可视化图表(附详细参数设置) 当面对复杂的网络数据时,如何让节点和边的关联关系一目了然?Gephi作为开源的网络分析工具,其强大的可视化功能能帮助我们从杂乱的数据…...

OpenClaw配置备份指南:Qwen3.5-9B模型参数迁移技巧

OpenClaw配置备份指南:Qwen3.5-9B模型参数迁移技巧 1. 为什么需要备份OpenClaw配置 上周我在本地调试一个自动化脚本时,不小心误删了OpenClaw的配置文件。这个错误让我付出了整整两天时间重新配置环境——包括模型参数、技能包和飞书机器人集成。这次惨…...

企业什么时候应采用 GraphRAG,什么时候普通 RAG 已足够?

企业在建设知识问答、智能搜索或 AI 助手时,常见的问题并不只是模型能力不足,而是没有区分不同类型的知识处理需求。并非所有场景都需要 GraphRAG,也并非普通 RAG 可以覆盖全部企业问题。二者适用的前提、处理的对象以及能够解决的问题&#…...

物联网安全实践--基于ESP8266的WiFi干扰器DIY全流程解析

1. ESP8266模块与物联网安全入门 第一次接触ESP8266是在三年前改造智能家居项目时,这块售价不到20元的小板子让我大开眼界。作为物联网开发的"瑞士军刀",ESP8266凭借其WiFi功能和GPIO接口,成为硬件黑客的最爱。不过今天我们要探讨的…...

UE5: 解密Actor Tick的注册时机与执行流程

1. 从“Tick”说起:为什么我们需要关心它? 如果你用过UE5,哪怕只是新建一个空白项目,放一个立方体进去,大概率也见过“Tick”这个词。在蓝图的“事件”图表里,那个每帧自动执行的“Event Tick”节点&#x…...

MySQL主从复制的binlog格式怎么选_ROW与MIXED格式优缺点分析

必须用ROW模式当业务要求主从100%一致时,如金融账务、订单状态、实时风控等场景,因其记录行级变更而非SQL语句,可彻底规避NOW()、UUID()等非确定性函数导致的主从不一致问题。什么时候必须用 ROW 模式如果你的业务要求主从数据 100% 一致&…...

C#联合halcon开发框架源码。 拖拽式编程,无halcon基础也能上手,匹配,测量,条码识...

C#联合halcon开发框架源码。 拖拽式编程,无halcon基础也能上手,匹配,测量,条码识别,ocr,定位引导,对位等,支持plc通讯,集成主流相机sdk,系统集成. 最近在工业视觉项目里折腾Halcon的时候&#x…...

别再死记公式了!手把手带你用Python脚本搞定二级运放GBW与相位裕度设计

用Python脚本解放模拟IC设计:二级运放GBW与相位裕度的自动化探索 在模拟集成电路设计的浩瀚海洋中,二级运算放大器就像是一艘精巧的帆船——结构看似简单,却需要设计师对每个参数都了如指掌才能驾驭得当。传统设计流程中,工程师们…...

将OpenSSH集成到OpenHarmony系统镜像:从编译到system分区的完整配置流程

OpenHarmony系统集成OpenSSH全流程:从编译到安全部署实战 在物联网和嵌入式设备快速发展的今天,远程设备管理已成为开发者不可或缺的能力。作为开源远程管理协议的黄金标准,OpenSSH在OpenHarmony系统中的集成能够为开发者提供安全可靠的远程访…...