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

在Anolis8.6上源码编译安装部署OpenVAS(GVM)未完待续

首先给出Greenbone Community的官方文档,官方文档对Ubuntu的支持最好,我们参考这个文档在Anolis8.6上安装部署22.4.0版本的OpenVAS(现在改名叫GVM了)。这个玩意儿使用或者打比赛都很有用。

0x01、最低硬件要求

2Core+4G+20G

0x02、创建账号和组

创建用户和组

useradd -r -M -U -G wheel -s /usr/sbin/nologin gvm

0x03、编译安装一般工具

yum groupinstall 'Development Tools'yum install \
cmake \
gcc \
gcc-c++ \
doxygen \
xmltoman

0x04、导入Greenbone签名秘钥

导入Greenbone签名秘钥。

curl -f -L https://www.greenbone.net/GBCommunitySigningKey.asc \
-o /tmp/GBCommunitySigningKey.ascgpg --import /tmp/GBCommunitySigningKey.asc

并标记完全信任。 

echo "8AE4BE429B60A59B311C2E739823FAA60ED1E580:6:" | gpg --import-ownertrust

0x05、构建安装各组件

0x0501、gvm-libs

gvm-libs是一个库,提供XML处理和网络交互等基础功能。这个库被openvas-scanner、gvmd、gsad和pg-gvm使用。

从yum源安装必要依赖项。

yum install \
glib2-devel \
gnutls-devel \
gpgme-devel \
libcurl-devel \
libgcrypt-devel \
libnet-devel \
libpcap-devel \
libssh-devel \
libuuid-devel \
libxml2-devel \
uuid-devel

Anolis8.6的源上没有cjson-devel、hiredis-devel、paho-mqtt3c,所以要用其他方式安装这几个必要依赖项。

在https://github.com/redis/hiredis/releases/tag/v1.3.0下载hiredis-1.3.0.tar.gz。编译安装hiredis-devel。

tar xvzf hiredis-1.3.0.tar.gz
cd hiredis-1.3.0/
cmake .
make
make install

在https://github.com/DaveGamble/cJSON/releases/tag/v1.7.18下载cJSON-1.7.18.tar.gz。编译安装cjson-devel。

tar xvzf cJSON-1.7.18.tar.gz 
cd cJSON-1.7.18/
cmake .
make
make install

编译安装cjson-devel和hiredis-devel产生的.pc文件会放在/usr/local/lib/pkgconfig和/usr/local/lib64/pkgconfig目录里。修改配置文件~/.bashr,加入环境变量PKG_CONFIG_PATH。

vim ~/.bashrcexport PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATHsource ~/.bashrc

在https://github.com/eclipse-paho/paho.mqtt.c/releases/tag/v1.3.9 下载编译好的必要依赖项。解压缩后把bin、lib、文件copy到/usr/local的相对应目录里即可。

tar xvzf Eclipse-Paho-MQTT-C-1.3.9-Linux.tar.gz
cd Eclipse-Paho-MQTT-C-1.3.9-Linux/
cp bin/* /usr/local/bin/
cp include/* /usr/local/include/
cp lib/* /usr/local/lib/ -r
cp share/* /usr/local/share/

从yum源安装可选依赖项。

yum install openldap-devel

手动编译安装可选依赖项radcli-devel。 在https://github.com/radcli/radcli/releases/tag/1.4.0下载radcli-1.4.0.tar.gz。编译安装radcli-devel。

tar xvzf radcli-1.4.0.tar.gz
cd radcli-1.4.0/
./autogen.sh
./configure
make
make install

到GitHub上下载gvm-libs-22.4.0.tar.gz和校验文件.asc,并验证。

curl -f -L https://github.com/greenbone/gvm-libs/archive/refs/tags/v22.4.0.tar.gz \
-o gvm-libs-22.4.0.tar.gz
curl -f -L https://github.com/greenbone/gvm-libs/releases/download/v22.4.0/gvm-libs-22.4.0.tar.gz.asc \
-o gvm-libs-22.4.0.tar.gz.asc
gpg --verify gvm-libs-22.4.0.tar.gz.asc gvm-libs-22.4.0.tar.gz

验证通过后,解压缩,并进入源码目录。开始编译安装。

tar xvzf gvm-libs-22.4.0.tar.gz
cd gvm-libs-22.4.0/
cmake .
make
make install

0x0502、gvmd

Greenbone Vulnerability Management Daemon (gvmd) 的GVM的主服务。gvmd处理认证、扫描管理、漏洞信息、报告、警告、调度等等。这个服务使用PostgresSQL数据库作为存储。

从yum源安装必要依赖项,其实前序步骤已经安装了。

yum install \
glib2-devel \
gnutls-devel \
postgresql-server-devel \
libpq-devel \
libical-devel \
libxslt \
rsync \
perl-XML-Twig \
gpgme-devel

 Anolis8.6源上没有提供libbsd-devel,因此要手动编译安装这个必要依赖库。但是编译libbsd就产生新的依赖libmd,所以先编译libmd再编译libbsd。

在https://github.com/guillemj/libmd下载libmd-main.zip。编译安装。

git clone https://github.com/guillemj/libmd.git
cd libmd/
./autogen
./configure
make
make install

在https://libbsd.freedesktop.org/releases/下载libbsd-0.12.2.tar.xz。编译安装。

tar xvJf libbsd-0.12.2.tar.xz
cd libbsd-0.12.2/
./autogen
./configure
make
make install

在https://github.com/greenbone/gvmd/releases/tag/v22.4.0下载gvmd-22.4.0.tar.gz和校验文件.asc,并验证。验证通过后,解压缩,并进入源码目录。开始编译安装。编译发现有些头文件的路径不正确,因此要设置一下。

tar xvzf gvmd-22.4.0.tar.gz
cd gvmd-22.4.0/mkdir -p /usr/include/postgresql
cp /usr/include/libpq-fe.h /usr/include/postgresql/cmake .
make
make install

0x0503、pg-gvm

pg-gvm是PostgreSQL服务的扩展,增加了由gvmd使用的功能。

0x06、Next

http://www.lryc.cn/news/594777.html

相关文章:

  • git bash命令不够完善,想整合msys2该怎么办?
  • Dynamics 365 Contact Center是什么
  • Java 解析前端上传 ZIP 压缩包内 Excel 文件的完整实现方案
  • 前端开发者快速理解Spring Boot项目指南
  • 在 Angular 应用程序中使用 Genkit 的完整指南
  • docker 容器学习
  • Three.js 全景图(Equirectangular Texture)教程:从加载到球面映射
  • AR技术:应急响应的加速利器
  • AR技术:石化行业培训的“游戏规则改变者”
  • Web开发:ABP框架12——中间件Middleware的创建和使用
  • AR巡检和传统巡检的区别
  • CCLink IE转ModbusTCP网关与三菱PLC通讯无纸记录器
  • uni-app开发小程序,根据图片提取主题色值
  • 网络编程基础:从 OSI 模型到 TCP/IP 协议族的全面解析
  • Android 中 SystemServiceManager 和 ServiceManager 的应用场景、区别与联系
  • 漏洞扫描 + 渗透测试:双轮驱动筑牢网络安全防线
  • Ubuntu 22.04 使用 Docker 安装 Redis 5 (安装包形式)
  • 内网与外网是通过什么进行传输的?内外网文件传输的安全方法
  • C#最佳实践:为何应尽量减少静态类的使用
  • 迅为八核高算力RK3576开发板摄像头实时推理测试 RetinaFace人脸检测
  • Curtain e-locker 易锁防泄密:无需网络隔离,实现安全与效率并存
  • 大腾智能国产3D CAD软件正式上架华为云云商店
  • 进程资源分配的安全性判断与安全序列
  • ZooKeeper学习专栏(四):单机模式部署与基础操作详解
  • 【c++】leetcode5 最长回文子串
  • 突破量子仿真瓶颈:微算法科技MLGO量子算法的算术化与核操作迭代模型
  • 飞算科技:以原创技术为翼,赋能产业数字化转型
  • Spring 中的 Bean 作用域(Scope)有哪些?各自适用于什么场景?
  • 江苏思必驰科技25Java实习面经
  • react class和function 如何模拟vue中的 双向绑定 监听 computed的方式