Greenbone OpenVAS Scanner 完整安装与配置指南
前言
OpenVAS(Open Vulnerability Assessment System)是一款功能强大的开源安全扫描工具,现已成为Greenbone Vulnerability Management(GVM)套件的重要组成部分。本文将详细介绍如何从源代码构建和安装OpenVAS扫描器及其相关组件,帮助安全专业人员搭建完整的安全扫描环境。
系统要求
硬件配置
最低配置要求:
- CPU核心:2核
- 内存:4GB
- 硬盘空间:20GB可用空间
推荐配置:
- CPU核心:4核
- 内存:8GB
- 硬盘空间:60GB可用空间
软件要求
本指南主要支持Debian稳定版(bookworm)系统,其他基于Debian的发行版(如Mint、Kali等)可能需要进行少量调整。
准备工作
创建专用用户和组
为安全考虑,建议为扫描服务创建专用用户和组:
sudo useradd -r -M -U -G sudo -s /usr/sbin/nologin gvm
配置当前用户
将当前用户加入gvm组以便运行openvasd:
sudo usermod -aG gvm $USER
su $USER
设置安装路径
定义软件安装的基本路径:
export INSTALL_PREFIX=/usr/local
export PATH=$PATH:$INSTALL_PREFIX/sbin
创建工作目录
创建源代码、构建和安装目录:
export SOURCE_DIR=$HOME/source
export BUILD_DIR=$HOME/build
export INSTALL_DIR=$HOME/install
mkdir -p $SOURCE_DIR $BUILD_DIR $INSTALL_DIR
安装基础依赖
安装编译和构建所需的基础工具:
sudo apt update
sudo apt install -y \
build-essential \
curl \
cmake \
pkg-config \
python3 \
python3-pip \
gnupg
导入Greenbone签名密钥
验证下载文件的完整性:
curl -f -L https://www.greenbone.net/GBCommunitySigningKey.asc -o /tmp/GBCommunitySigningKey.asc
gpg --import /tmp/GBCommunitySigningKey.asc
echo "8AE4BE429B60A59B311C2E739823FAA60ED1E580:6:" | gpg --import-ownertrust
组件安装
1. gvm-libs
gvm-libs是提供基本功能的C语言库,是openvas-scanner的依赖项。
安装依赖:
sudo apt install -y \
libglib2.0-dev \
libgpgme-dev \
libgnutls28-dev \
uuid-dev \
libssh-gcrypt-dev \
libhiredis-dev \
libxml2-dev \
libpcap-dev \
libnet1-dev \
libpaho-mqtt-dev
构建与安装:
cd $SOURCE_DIR
git clone git@github.com:greenbone/gvm-libs.git
mkdir -p $BUILD_DIR/gvm-libs && cd $BUILD_DIR/gvm-libs
cmake $SOURCE_DIR/gvm-libs \
-DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \
-DCMAKE_BUILD_TYPE=Release \
-DSYSCONFDIR=/etc \
-DLOCALSTATEDIR=/var
make -j$(nproc)
make DESTDIR=$INSTALL_DIR/gvm-libs install
sudo cp -rv $INSTALL_DIR/gvm-libs/* /
2. openvas-smb
用于与Windows系统交互的辅助模块。
安装依赖:
sudo apt install -y \
gcc-mingw-w64 \
libgnutls28-dev \
libglib2.0-dev \
libpopt-dev \
libunistring-dev \
heimdal-dev \
perl-base
构建与安装:
cd $SOURCE_DIR
git clone git@github.com:greenbone/openvas-smb.git
mkdir -p $BUILD_DIR/openvas-smb && cd $BUILD_DIR/openvas-smb
cmake $SOURCE_DIR/openvas-smb \
-DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \
-DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
make DESTDIR=$INSTALL_DIR/openvas-smb install
sudo cp -rv $INSTALL_DIR/openvas-smb/* /
3. openvas-scanner
核心扫描引擎,执行安全测试。
安装依赖:
sudo apt install -y \
bison \
libglib2.0-dev \
libgnutls28-dev \
libgcrypt20-dev \
libpcap-dev \
libgpgme-dev \
libksba-dev \
rsync \
nmap \
libjson-glib-dev \
libcurl4-gnutls-dev \
libbsd-dev
构建与安装:
cd $SOURCE_DIR
git clone git@github.com:greenbone/openvas-scanner.git
mkdir -p $BUILD_DIR/openvas-scanner && cd $BUILD_DIR/openvas-scanner
cmake $SOURCE_DIR/openvas-scanner \
-DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX \
-DCMAKE_BUILD_TYPE=Release \
-DINSTALL_OLD_SYNC_SCRIPT=OFF \
-DSYSCONFDIR=/etc \
-DLOCALSTATEDIR=/var \
-DOPENVAS_FEED_LOCK_PATH=/var/lib/openvas/feed-update.lock \
-DOPENVAS_RUN_DIR=/run/ospd
make -j$(nproc)
make DESTDIR=$INSTALL_DIR/openvas-scanner install
sudo cp -rv $INSTALL_DIR/openvas-scanner/* /
4. openvasd
OpenVAS的HTTP API接口。
安装Rust工具链:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
构建与安装:
mkdir -p $BUILD_DIR/openvasd
cd $SOURCE_DIR/openvas-scanner/rust
cargo build -r --target-dir $BUILD_DIR/openvasd
sudo cp -rv $BUILD_DIR/openvasd/release/openvasd $INSTALL_PREFIX/bin/
sudo cp -rv $BUILD_DIR/openvasd/release/scannerctl $INSTALL_PREFIX/bin/
5. ospd-openvas
OSP服务器实现。
安装依赖:
sudo apt install -y \
python3 \
python3-pip \
python3-setuptools \
python3-packaging \
python3-wrapt \
python3-cffi \
python3-psutil \
python3-lxml \
python3-defusedxml \
python3-paramiko \
python3-redis \
python3-gnupg \
python3-paho-mqtt \
python3-poetry
安装:
cd $SOURCE_DIR
git clone git@github.com:greenbone/ospd-openvas.git
cd $SOURCE_DIR/ospd-openvas
mkdir -p $INSTALL_DIR/ospd-openvas
python3 -m pip install --root=$INSTALL_DIR/ospd-openvas --no-warn-script-location .
sudo cp -rv $INSTALL_DIR/ospd-openvas/* /
6. notus-scanner
用于检测有风险产品的扫描器。
安装依赖:
sudo apt install -y \
python3 \
python3-pip \
python3-setuptools \
python3-paho-mqtt \
python3-psutil \
python3-gnupg
安装:
cd $SOURCE_DIR
git clone git@github.com:greenbone/notus-scanner.git
cd $SOURCE_DIR/notus-scanner
mkdir -p $INSTALL_DIR/notus-scanner
python3 -m pip install --root=$INSTALL_DIR/notus-scanner --no-warn-script-location .
sudo cp -rv $INSTALL_DIR/notus-scanner/* /
7. greenbone-feed-sync
用于同步安全数据库的工具。
安装:
mkdir -p $INSTALL_DIR/greenbone-feed-sync
python3 -m pip install --root=$INSTALL_DIR/greenbone-feed-sync --no-warn-script-location greenbone-feed-sync
sudo cp -rv $INSTALL_DIR/greenbone-feed-sync/* /
数据库同步
下载安全数据
sudo /usr/local/bin/greenbone-feed-sync --type nvt
验证数据完整性
curl -f -L https://www.greenbone.net/GBCommunitySigningKey.asc -o /tmp/GBCommunitySigningKey.asc
export GNUPGHOME=/tmp/openvas-gnupg
mkdir -p $GNUPGHOME
gpg --import /tmp/GBCommunitySigningKey.asc
echo "8AE4BE429B60A59B311C2E739823FAA60ED1E580:6:" | gpg --import-ownertrust
export OPENVAS_GNUPG_HOME=/etc/openvas/gnupg
sudo mkdir -p $OPENVAS_GNUPG_HOME
sudo cp -r /tmp/openvas-gnupg/* $OPENVAS_GNUPG_HOME/
sudo chown -R gvm:gvm $OPENVAS_GNUPG_HOME
系统配置
Redis数据库设置
sudo apt install -y redis-server
sudo cp $SOURCE_DIR/openvas-scanner/config/redis-openvas.conf /etc/redis/
sudo chown redis:redis /etc/redis/redis-openvas.conf
echo "db_address = /run/redis-openvas/redis.sock" | sudo tee -a /etc/openvas/openvas.conf
sudo systemctl start redis-server@openvas.service
sudo systemctl enable redis-server@openvas.service
sudo usermod -aG redis gvm
Mosquitto MQTT代理
sudo apt install -y mosquitto
sudo systemctl start mosquitto.service
sudo systemctl enable mosquitto.service
echo -e "mqtt_server_uri = localhost:1883\ntable_driven_lsc = yes" | sudo tee -a /etc/openvas/openvas.conf
权限调整
sudo mkdir -p /var/lib/notus /run/gvmd
sudo chown -R gvm:gvm /var/lib/openvas /var/lib/notus /var/log/gvm /run/gvmd
sudo chmod -R g+srw /var/lib/openvas /var/log/gvm
总结
通过以上步骤,我们完成了Greenbone OpenVAS Scanner的完整安装和配置。这套系统现在可以用于执行全面的安全扫描任务,帮助识别网络中的潜在问题。建议定期运行greenbone-feed-sync以保持安全数据库的最新状态,确保扫描结果的准确性。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



