1 概述
浪潮信息KOS是浪潮信息基于Linux Kernel、OpenAnolis等开源技术自主研发的一款服务器操作系统,支持x86、ARM等主流架构处理器,性能和稳定性居于行业领先地位,具备成熟的 CentOS 迁移和替换能力,可满足云计算、大数据、分布式存储、人工智能、边缘计算等应用场景需求。浪潮信息云峦服务器操作系统KeyarchOS_KOS服务器操作系统-浪潮信息
OpenVAS是一个功能齐全的漏洞扫描程序。它的功能包括未经身份验证和身份验证的测试、各种高级和低级互联网和工业协议、大规模扫描的性能调整以及实现任何类型漏洞测试的强大内部编程语言。OpenVAS scanner从一个有着悠久历史和每日更新的提要中获取检测漏洞的测试。https://openvas.org/
2 安装准备
2.1 操作环境
操作系统版本:KOS 5.8 (4.18.0-372.41.1.kos5.x86_64)
测试架构:x86_64,8核4G虚拟机
2.2 软件版本
OpenVAS 22.7.3
gvm-libs 22.7.0
3 安装运行
3.1 获取OpenVAS及其依赖源码
OpenVAS并没有包含在KOS的软件源中,因此需要手动编译安装。首先安装git用于获取OpenVAS最新的源代码:
dnf install git –y
git clone https://github.com/greenbone/openvas-scanner.git
还需要获取编译OpenVAS依赖的库的源代码:
git clone https://github.com/greenbone/gvm-libs.git
git clone https://github.com/redis/hiredis.git
git clone https://github.com/eclipse/paho.mqtt.c.git
其中OpenVAS依赖gvm-libs,gvm-libs又依赖hiredis和paho.mqtt.c 。
3.2 安装OpenVAS及其依赖库
安装包含在KOS软件源里的OpenVAS依赖的库,其中部分依赖在epel源中提供,首先安装epel源:
dnf install -y epel-release
dnf makecache
执行以下命令安装OpenVAS的依赖库:
dnf install -y cmake json-glib-devel gnutls-devel redis tcl-devel libpcap-devel libnet-devel libuuid-devel libssh-devel libxml2-devel gpgme-devel libassuan-devel libksba-devel gcc-c++ libgcrypt-devel bison-devel libbsd-devel
为后续编译修改环境变量
export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH
建议将环境变量写入bashrc保证环境变量不会丢失
3.3 编译安装hiredis和paho.mqtt.c
编译gvm-libs首先需要编译hiredis和paho.mqtt.c。
进入hiredis文件夹并执行编译:
cd hiredis
cmake .
make
make install
没有报错则完成hiredis的编译安装。
再进入paho.mqtt.c文件夹并执行编译
cd paho.mqtt.c
cmake .
make
make install
没有报错则完成paho.mqtt.c的编译安装。
3.4 编译安装gvm-libs
切换到gvm-libs文件夹 cd gvm-libs 。
执行cmake . ,提示找不到libgcrypt。
-- Checking for module 'libgcrypt'
-- Package 'libgcrypt', required by 'virtual:world', not found
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:556 (message):
A required package was not found
此项目的cmake脚本使用pkg_check_modules检查libgcrypt是否安装,即cmake使用pkg-config来查找软件是否安装,而kos的libgcrypt并没有生成可供pkg-config查找的pc文件。因此需要修改报错util/CMakeLists.txt:
vim util/CMakeLists.txt
将43行pkg_check_modules (GCRYPT REQUIRED libgcrypt) 注释掉,并添加一行find_library(GCRYPT libgcrypt),使用find_library方法查找libgcrypt,如下图所示。
然后执行 cmake . 报错消失,可以开始编译。
开始编译和安装
make
make install
没有报错则gvm-libs的编译安装完成
3.5 编译安装OpenVAS
gvm-libs的编译结束之后开始编译OpenVAS,进入OpenVAS目录:
cd openvas-scanner
执行cmake准备编译:
cmake .
没有报错则开始编译安装
make
make install
没有报错则完成OpenVAS的编译安装。
3.5 运行OpenVAS
执行 openvas --version检查是否完成安装和安装的版本情况。