在Ubuntu 20.04上安裝和設置GVM 11

在本指南中,我們將學習如何安裝和設置 GVM 11 在Ubuntu 20.04上。 Gen骨 V脆弱性 中號年齡(GVM),以前稱為OpenVAS,是一種網絡安全掃描程序,它提供一組網絡漏洞測試(NVT)以檢測系統和應用程序中的安全漏洞。在撰寫本文時, GVM 11是當前的穩定版本

在Ubuntu 20.04上安裝和設置GVM 11

在此演示中,我們將通過源代碼在Ubuntu 20.04上構建GVM 11。

運行系統更新

首先,更新和升級系統軟件包;

apt update
apt upgrade

創建GVM用戶

在此演示中,我們將以非特權系統用戶身份運行GVM。因此,我們將創建 gvm 用戶和組。

useradd -r -d /opt/gvm -c "GVM (OpenVAS) User" -s /bin/bash gvm

根據選項指定創建GVM用戶目錄 -d 在上面的命令中,將用戶和組所有權設置為 gvm

mkdir /opt/gvm
chown gvm:gvm /opt/gvm

安裝所需的構建工具

為了在Ubuntu 20.04上成功構建GVM 11,您需要安裝許多必需的依賴項和構建工具。

apt install gcc g++ make bison flex libksba-dev curl redis libpcap-dev 
cmake git pkg-config libglib2.0-dev libgpgme-dev libgnutls28-dev uuid-dev 
libssh-gcrypt-dev libldap2-dev gnutls-bin libmicrohttpd-dev libhiredis-dev 
zlib1g-dev libxml2-dev libradcli-dev clang-format libldap2-dev doxygen 
gcc-mingw-w64 xml-twig-tools libical-dev perl-base heimdal-dev libpopt-dev 
libsnmp-dev python3-setuptools python3-paramiko python3-lxml python3-defusedxml python3-dev gettext python3-polib xmltoman 
python3-pip texlive-fonts-recommended texlive-latex-extra --no-install-recommends

在Ubuntu 20.04上安裝Yarn

接下來,安裝Yarn JavaScript程序包管理器

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
apt update
apt install yarn -y

在Ubuntu 20.04上安裝PostgreSQL

GVM 11放棄了對sqlite3的支持,目前僅支持PostgreSQL作為後端數據庫。因此,您需要在Ubuntu 20.04上安裝PostgreSQL。

apt install postgresql postgresql-contrib postgresql-server-dev-all

創建PostgreSQL用戶和數據庫

安裝完成後,為OpenVAS Manager創建PostgreSQL用戶和數據庫。請注意,數據庫和用戶應創建為PostgreSQL用戶, Postgres

sudo -Hiu postgres
createuser gvm
createdb -O gvm gvmd

授予PostgreSQL用戶DBA角色

psql gvmd
create role dba with superuser noinherit;
grant dba to gvm;
create extension "uuid-ossp";
q
exit

完成後,重新啟動PostgreSQL。

systemctl restart postgresql

從源代碼構建GVM 11

在Ubuntu 20.04上安裝和設置GVM 11需要多種工具。這些包括;

  • GVM庫
  • OpenVAS
  • OSPd
  • ospd-openvas
  • 綠骨漏洞管理器
  • 綠骨安全助手
  • Python GVM
  • GVM工具
  • OpenVAS SMB

每個組件都有 自述文件 還有一個 安裝.md 該文件說明了如何構建和安裝它。

由於我們以非特權用戶gvm的身份運行GVM,因此我們將在以下位置安裝所有GVM配置文件和庫, /opt/gvm

更新PATH環境變量 /etc/environment,包括GVM二進制路徑,使其看起來像;

vim /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/gvm/bin:/opt/gvm/sbin:/opt/gvm/.local/bin"

將GVM庫路徑添加到 /etc/ld.so.conf.d

echo "/opt/gvm/lib" > /etc/ld.so.conf.d/gvm.conf

構建並安裝GVM 11

切換到GVM用戶gvm並創建一個臨時目錄來存儲GVM源文件。

su - gvm
mkdir /tmp/gvm-source

下載GVM源文件

導航到上面創建的臨時目錄,然後運行後續命令以克隆GVM github分支文件。

cd /tmp/gvm-source
git clone -b gvm-libs-11.0 https://github.com/greenbone/gvm-libs.git
git clone https://github.com/greenbone/openvas-smb.git
git clone -b openvas-7.0 https://github.com/greenbone/openvas.git
git clone -b ospd-2.0 https://github.com/greenbone/ospd.git
git clone -b ospd-openvas-1.0 https://github.com/greenbone/ospd-openvas.git
git clone -b gvmd-9.0 https://github.com/greenbone/gvmd.git
git clone -b gsa-9.0 https://github.com/greenbone/gsa.git

源文件到位後,繼續在Ubuntu 20.04上構建和安裝GVM。

[email protected]:/tmp/gvm-source$ ls
gsa gvmd gvm-libs openvas openvas-smb ospd ospd-openvas

請注意,我們會將所有GVM文件和庫安裝到非標準位置, /opt/gvm。因此,您需要設置 PKG_CONFIG_PATH 在配置之前,將環境變量更改為pkg-configfiles的位置:

export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH

請務必更換路徑, /opt/gvm,因此。

構建並安裝GVM 11庫

轉到GVM庫目錄;

cd gvm-libs

創建一個構建目錄並轉到其中;

mkdir build
cd build

配置構建;

cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gvm

接下來,編譯並安裝GVM庫

make
make install

生成並安裝OpenVAS和OpenVAS SMB

開放式漏洞評估掃描程序(OpenVAS)是功能齊全的掃描引擎,它執行網絡漏洞測試(NVT)的不斷更新和擴展的提要。

OpenVAS SMB提供了一些模塊,供OpenVAS掃描儀通過Windows Management Instrumentation API和Microsoft Windows系統進行交互。 winexe 二進制文件以在該系統上遠程執行進程。

編譯安裝openvas-smb;

cd ../../openvas-smb/
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gvm
make
make install

構建並安裝OpenVAS掃描儀;

cd ../../openvas

繼續構建和安裝openvas。

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gvm
make
make install

如果遇到錯誤, ...error: ‘pcap_lookupdev’ is deprecated: use 'pcap_findalldevs'... 編譯openvas時,編輯 CMakeLists.txt 歸檔並替換如下所示的行,然後重新運行安裝;

vim ../../openvas/CMakeLists.txt
...
#set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${COVERAGE_FLAGS}")
set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Werror -Wno-error=deprecated-declarations")
...

配置OpenVAS

主機掃描信息臨時存儲在Redis服務器上。 Redis服務器的默認配置為 /etc/redis/redis.conf

切換回特權用戶並繼續。

首先,運行下面的命令為已安裝的共享庫創建緩存;

ldconfig

接下來,複製OpenVAS掃描儀Redis配置文件, redis-openvas.conf,到相同的Redis配置目錄;

cp /tmp/gvm-source/openvas/config/redis-openvas.conf /etc/redis/

更新配置的所有權。

chown redis:redis /etc/redis/redis-openvas.conf

更新路徑到Redis unix套接字 /opt/gvm/etc/openvas/openvas.conf 使用 db_address 參數如下;

echo "db_address = /run/redis-openvas/redis.sock" > /opt/gvm/etc/openvas/openvas.conf

注意,Unix套接字路徑是在 /etc/redis/redis-openvas.conf 文件。

chown gvm:gvm /opt/gvm/etc/openvas/openvas.conf

將gvm用戶添加到redis組;

usermod -aG redis gvm

您還可以通過以下調整來優化Redis服務器本身,從而提高性能:

增加somaxconn的值,以避免客戶端連接速度慢的問題。

echo "net.core.somaxconn = 1024" >> /etc/sysctl.conf

Redis後台保存在內存不足的情況下可能會失敗。為避免這種情況,請啟用內存過量使用(男子5 proc)

echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf

重新加載上面創建的sysctl變量。

sysctl -p

為了避免Redis造成延遲和內存使用問題,請禁用Linux內核對透明大頁面(THP)的支持。為了輕鬆解決此問題,請為此創建一個systemd服務單元。

vim /etc/systemd/system/disable_thp.service
[Unit]
Description=Disable Kernel Support for Transparent Huge Pages (THP)

[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"

[Install]
WantedBy=multi-user.target

重新加載系統配置;

systemctl daemon-reload

啟動並啟用此服務以在系統啟動時運行。

systemctl enable --now disable_thp

重新啟動OpenVAS Redis服務器

systemctl start [email protected]

許多網絡漏洞測試(NVT)需要root特權才能執行某些操作。以來 openvasospd-openvas 通過sudo將以下行添加到sudoers文件中,以確保 gvm 本演示中使用的用戶可以使用無密碼sudo以提升的權限運行openvas。

echo "gvm ALL = NOPASSWD: /opt/gvm/sbin/openvas" > /etc/sudoers.d/gvm

另外,更新 secure_path 包括GVM /sbin 路徑 /opt/gvm/sbin

visudo
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/opt/gvm/sbin"

另外,啟用 gvm 用戶來運行GSA Web應用程序守護程序, gsad,使用無密碼的sudo。

echo "gvm ALL = NOPASSWD: /opt/gvm/sbin/gsad" >> /etc/sudoers.d/gvm

更新OpenVAS NVT

使用以下命令更新Greenbone Security Feed /社區Feed中的OpenVAS網絡漏洞測試Feed。 greenbone-nvt-sync 命令。

greenbone-nvt-sync 命令 禁止 以特權用戶root身份執行,因此切換回我們上面創建的GVM用戶並更新NVT。

su - gvm

接下來,以openvas用戶身份更新NVT。

greenbone-nvt-sync

更新完成後,您需要使用來自VT文件的相同VT信息更新Redis服務器。

sudo openvas --update-vt-info

生成並安裝Greenbone漏洞管理器

export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
cd /tmp/gvm-source/gvmd
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gvm
make
make install

生成並安裝Greenbone Security Assistant

cd ../../gsa
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gvm
make
make install

從Feed服務器更新GVM CERT和SCAP數據;

greenbone-scapdata-sync
greenbone-certdata-sync

考慮將cron作業設置為以您喜歡的頻率運行nvts,cert和scap數據更新腳本,以從Feed服務器提取更新。

接下來,運行以下命令以生成證書gvmd。服務器證書用於身份驗證,而客戶端證書主要用於授權。更多關於 man gvm-manage-certs

gvm-manage-certs -a

生成並安裝OSPd和OSPd-OpenVAS

開放掃描儀協議(OSP)為不同的安全掃描儀創建統一的界面,並在中央Greenbone Vulnerability Manager服務下始終提供其控制流和掃描結果。

export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir -p /opt/gvm/lib/python3.8/site-packages/
export PYTHONPATH=/opt/gvm/lib/python3.8/site-packages
cd /tmp/gvm-source/ospd
python3 setup.py install --prefix=/opt/gvm
cd ../ospd-openvas
python3 setup.py install --prefix=/opt/gvm

啟動OpenVAS掃描儀,GSA和GVM服務

運行以下命令 gvm 用戶啟動OpenVAS掃描儀,GSA(WebUI服務)和GVM守護程序。按照顯示的順序執行命令。

啟動OpenVAS

/usr/bin/python3 /opt/gvm/bin/ospd-openvas 
--pid-file /opt/gvm/var/run/ospd-openvas.pid 
--log-file /opt/gvm/var/log/gvm/ospd-openvas.log 
--lock-file-dir /opt/gvm/var/run -u /opt/gvm/var/run/ospd.sock

啟動GVM

gvmd --osp-vt-update=/opt/gvm/var/run/ospd.sock

啟動GSA

sudo gsad

考慮為這些服務創建系統服務單元文件,以使您輕鬆管理它們。

檢查狀態;

ps aux | grep -E "ospd-openvas|gsad|gvmd" | grep -v grep

樣品輸出;

gvm         8221  0.0  0.0  81196  1436 ?        Ss   10:47   0:00 gpg-agent --homedir /opt/gvm/var/lib/gvm/gvmd/gnupg --use-standard-socket --daemon
gvm         8475  2.0  6.0 382248 122184 pts/0   Sl   10:54   1:23 /usr/bin/python3 /opt/gvm/bin/ospd-openvas --pid-file /opt/gvm/var/run/ospd-openvas.pid --log-file /opt/gvm/var/log/gvm/ospd-openvas.log --lock-file-dir /opt/gvm/var/run -u /opt/gvm/var/run/ospd.sock
gvm         8523  0.1 10.1 295648 206108 pts/0   S    10:57   0:06 gvmd: Waiting for incoming connections
postgres    8541  0.1  7.7 225436 157888 ?       SLs  10:57   0:05 postgres: 12/main: gvm gvmd [local] idle
root        8599  0.0  0.8 664696 17064 pts/0    Sl   10:58   0:00 gsad
root        8600  0.0  0.1 205912  3608 pts/0    Sl   10:58   0:00 gsad
gvm        11911  0.0  9.7 295648 198056 pts/0   S    12:01   0:00 gvmd: Reloading NVTs
gvm        11913  0.0  9.8 295648 201172 pts/0   S    12:01   0:00 gvmd: OSP: Updating NVT cache
postgres   11917  0.1  0.9 217796 19544 ?        Ss   12:01   0:00 postgres: 12/main: gvm gvmd [local] idle

您還可以在以下位置找到日誌: /var/log/gvm/,在這種情況下是 /opt/gvm/var/log/gvm

創建GVM掃描儀

由於我們啟動了掃描儀並將其設置為使用我們的非標準掃描儀主機路徑(/opt/gvm/var/run/ospd.sock),我們需要創建並註冊我們的掃描儀;

gvmd --create-scanner="Kifarunix-demo OpenVAS Scanner" --scanner-type="OpenVAS" --scanner-host=/opt/gvm/var/run/ospd.sock

接下來,您需要驗證您的掃描儀。為此,您首先需要獲取掃描儀標識符。

gvmd --get-scanners
08b69003-5fc2-4037-a479-93b440211c73 OpenVAS /tmp/ospd.sock 0 OpenVAS Default
6acd0832-df90-11e4-b9d5-28d24461215b CVE 0 CVE
9c6f2214-eb7c-4613-96bd-21551b259cf1 OpenVAS /opt/gvm/var/run/ospd.sock 9390 Kifarunix-demo OpenVAS Scanner

根據上面的輸出,我們的掃描儀UUID為 9c6f2214-eb7c-4613-96bd-21551b259cf1

驗證掃描儀;

gvmd --verify-scanner=9c6f2214-eb7c-4613-96bd-21551b259cf1

創建OpenVAS(GVM 11)管理員

通過運行以下命令創建OpenVAS管理用戶;

gvmd --create-user gvmadmin

此命令為用戶生成一個隨機密碼。創建自己的密碼;

gvmd --create-user gvmadmin [email protected]

重置現有用戶的密碼;

gvmd --user= --new-password=

訪問GVM 11(OpenVAS)

Greenbone Security Assistant(GSA)WebUI守護程序打開端口443,並偵聽所有接口。如果防火牆正在運行,請打開此端口以允許外部訪問。您可以通過網址訪問GSA https:。接受自簽名SSL警告並繼續。

使用上面生成的管理憑據登錄。

在Ubuntu 20.04上安裝和設置GVM 11在Ubuntu 20.04上安裝和設置GVM 11

然後你去。這就是在Ubuntu 20.04上安裝和設置GVM 11所需的全部工作。您現在可以開始運行掃描。我有什麼想念的嗎,將其放在評論部分!請享用

參考

源文件 自述文件 安裝.md 檔案

Sidebar