使用GitHub项目一键安装及更新脚本:
Auto install link
(Do NOT run script as root, it will prompt for sudo)
wget https://raw.githubusercontent.com/itiligent/Easy-OpenVAS-Installer/main/openvas-install.sh && chmod +x openvas-install.sh && ./openvas-install.shAuto upgrade link
wget https://raw.githubusercontent.com/itiligent/Easy-OpenVAS-Installer/main/openvas-upgrade.sh && chmod +x openvas-upgrade.sh && ./openvas-upgrade.sh 记录:
#一些前置配置:
sudo usermod -aG sudo yc
export ALL_PROXY="socks5h://192.168.0.35:10808"
export all_proxy="$ALL_PROXY"1. 安装结尾报错:
bash: line 1: /usr/local/bin/greenbone-feed-sync: No such file or directory
Job for openvasd.service failed because the control process exited with error code.
See "systemctl status openvasd.service" and "journalctl -xeu openvasd.service" for details.因为/usr/local/bin/greenbone-feed-sync文件不存在导致服务器无法启动,需要使用pipx安装。
sudo apt update
sudo apt install -y pipx
sudo pipx install --global greenbone-feed-sync
ls -l /usr/local/bin/greenbone-feed-sync
sudo -u gvm /usr/local/bin/greenbone-feed-sync --help成功后再同步并启动服务:
sudo /usr/local/bin/greenbone-feed-sync -vv
sudo systemctl restart openvasd ospd-openvas gvmd gsad
sudo systemctl --no-pager --full status openvasd ospd-openvas gvmd gsad如果 pipx install --global 提示已存在,执行:
sudo pipx uninstall --global greenbone-feed-sync
sudo pipx install --global greenbone-feed-sync2. /usr/local/bin/openvasd不存在
原因:
/usr/local/bin/openvasd
根本不存在。安装脚本创建了 systemd 服务,却没有成功把 Rust 编译出的openvasd二进制复制过去;脚本没有在cargo build或cp` 失败时退出,且随后删除了源码目录。
重新下载并编译 openvasd。下面会自动取当前最新 openvas-scanner release,与该安装脚本的做法一致:
注意:编译期间可能会因为代理问题无法build,启用终端代理,必要时转换socks5为http。
privoxy配置:
forward-socks5 / 192.168.0.35:10808 .
listen-address 0.0.0.0:1080
终端配置:
export http_proxy=http://127.0.0.1:1080
export https_proxy=http://127.0.0.1:1080开始请求GitHub最新release:
VERSION=$(curl -fsSL https://api.github.com/repos/greenbone/openvas-scanner/releases/latest | sed -n 's/.*"tag_name": "v\{0,1\}\([^"]*\)".*/\1/p')
echo "$VERSION"
mkdir -p ~/source ~/build
curl -fL "https://github.com/greenbone/openvas-scanner/archive/refs/tags/v${VERSION}.tar.gz" -o ~/source/openvas-scanner.tar.gz
tar -C ~/source -xzf ~/source/openvas-scanner.tar.gz
source "$HOME/.cargo/env"
cd "$HOME/source/openvas-scanner-${VERSION}/rust/src/openvasd"
cargo build --release
cd "$HOME/source/openvas-scanner-${VERSION}/rust/src/scannerctl"
cargo build --release
sudo install -o root -g root -m 0755 ../../target/release/openvasd /usr/local/bin/openvasd
sudo install -o root -g root -m 0755 ../../target/release/scannerctl /usr/local/bin/scannerctl确认二进制已存在:
ls -l /usr/local/bin/openvasd /usr/local/bin/scannerctl
/usr/local/bin/openvasd --help再启动服务:
sudo systemctl enable openvasd
sudo systemctl reset-failed openvasd
sudo systemctl restart openvasd ospd-openvas gvmd gsad
sudo systemctl --no-pager --full status openvasd ospd-openvas gvmd gsad如果磁盘占用比较高,可先停用:
先停止依赖服务,再停 PostgreSQL:
sudo systemctl stop gsad gvmd ospd-openvas openvasd
sudo systemctl stop postgresql避免 openvasd 持续自动重试占用资源:
sudo systemctl disable --now openvasd3. 编译失败: Rust 的 Kerberos 绑定找不到 OpenVAS C 库的头文件和静态库
openvas-scanner 23.50.24 的 Rust 构建会用 Docker 或 Podman 构建并导出静态 C 库,不能仅靠系统已安装的开发包完成。
make 未完成,因此 build-cache/archives/include 没有生成。
安装 Podman 后重试。注意此步骤会下载构建镜像、占用较多 CPU、磁盘和网络,建议继续保持 PostgreSQL 停止:
sudo apt update
sudo apt install -y podman
podman info
cd ~/source/openvas-scanner-23.50.24/rust
###期间的apt安装时需要取消代理。
make
cargo build --release#`make` 成功时应显示类似:
Using container runtime: podman并生成:
crates/nasl-c-lib/build-cache/archives/include完成后再安装二进制:
sudo install -o root -g root -m 0755 target/release/openvasd /usr/local/bin/openvasd
sudo install -o root -g root -m 0755 target/release/scannerctl /usr/local/bin/scannerctl编译成功。两个 Git 警告是因为源码来自 release tarball,不含 .git 目录,只影响版本元数据,不影响 openvasd 功能。
安装生成的二进制:
cd ~/source/openvas-scanner-23.50.24/rust
sudo install -o root -g root -m 0755 target/release/openvasd /usr/local/bin/openvasd
sudo install -o root -g root -m 0755 target/release/scannerctl /usr/local/bin/scannerctl
/usr/local/bin/openvasd --help然后恢复服务:
sudo systemctl start postgresql
sudo systemctl enable openvasd
sudo systemctl reset-failed openvasd
sudo systemctl restart openvasd ospd-openvas gvmd gsad
sudo systemctl --no-pager --full status openvasd ospd-openvas gvmd gsad四个服务均显示 active (running) 即完成。
没有评论