在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使用的功能。