iT邦幫忙

0

關於OpenVAS是否有API可供串接

  • 分享至 

  • xImage

如題 目前
電腦中安裝了虛擬機 虛擬機的Openvas是使用官網提供的docker compose,
官網網址
這部分也能順利進入web介面,也可以正常掃描。
那目前主要需求是可以使用python串接 也找到有python-gvm這一個套件,後續才知道API是在9390port,那目前直接使用瀏覽器連入9390沒有任何訊息,python套件也連不上
我也調整docker-compose.yml當中的gvmd的內容但還是無法。

  gvmd:
    image: registry.community.greenbone.net/community/gvmd:stable
    restart: on-failure
    ports:
      - 0.0.0.0:9390:9390
    volumes:
      - gvmd_data_vol:/var/lib/gvm
      - scap_data_vol:/var/lib/gvm/scap-data/
      - cert_data_vol:/var/lib/gvm/cert-data
      - data_objects_vol:/var/lib/gvm/data-objects/gvmd
      - vt_data_vol:/var/lib/openvas/plugins
      - psql_data_vol:/var/lib/postgresql
      - gvmd_socket_vol:/run/gvmd
      - ospd_openvas_socket_vol:/run/ospd
      - psql_socket_vol:/var/run/postgresql
      - $HOME/.ssl/serverkey.pem:/var/lib/gvm/private/CA/serverkey.pem
      - $HOME/.ssl/servercert.pem:/var/lib/gvm/CA/servercert.pem
    depends_on:
      pg-gvm:
        condition: service_started
      scap-data:
        condition: service_completed_successfully
      cert-bund-data:
        condition: service_completed_successfully
      dfn-cert-data:
        condition: service_completed_successfully
      data-objects:
        condition: service_completed_successfully
      report-formats:
        condition: service_completed_successfully

mathewkl iT邦高手 1 級 ‧ 2025-03-26 20:17:57 檢舉
通常,這種不會有UI,先看過官方文件吧https://greenbone.github.io/python-gvm/usage.html
win895564 iT邦研究生 4 級 ‧ 2025-03-27 08:52:32 檢舉
對 因為像是內建的沒有使用443,這部分也是我在官網找資料使用自簽憑證再去修改yml,所以我不確定我用官方的yml建立,是否預設就會開啟API服務,還是還會需要額外修改內容
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
neofancy
iT邦新手 5 級 ‧ 2025-03-27 11:12:02

試著用ChatGPT來協助回答,如果使用的是官網提供的指令來啟動 Greenbone,並且使用了 Docker Compose,回答仍然可以串接 API,只是可能會有一些額外的配置步驟來確保 API 可以正確啟用和運作。

步驟 1:使用 docker-compose 啟動 Greenbone

首先,使用以下命令啟動 Greenbone 容器:

docker compose -f $DOWNLOAD_DIR/docker-compose.yml up -d

這個指令會根據 $DOWNLOAD_DIR 中的 docker-compose.yml 配置檔來啟動 GVM 的服務。此配置檔通常會啟動必要的容器(如 gvmdopenvasgsad 等),並配置相關的環境變數。

步驟 2:確認 GVM 容器的狀態

一旦啟動,您可以使用以下命令來檢查容器的狀態:

docker compose ps

此命令會列出所有正在運行的容器,您應該能看到名為 gvm 或類似名稱的容器在運行。

步驟 3:啟用 GVM API

在 Docker Compose 配置中,Greenbone 的 API 應該已經包含在內,尤其是 gsad(Greenbone Security Assistant Daemon)和 gvmd(Greenbone Vulnerability Manager Daemon)應該會提供 API 訪問。

  • gsad 通常會提供 Web 介面(通常是 9392 端口)和 API 訪問(通常是 9390 端口)。
  • gvmd 提供漏洞管理功能,並且會與 gsadopenvas 互動來執行漏洞掃描。

步驟 4:檢查 API 配置

您可以進一步檢查 Docker Compose 配置檔,確認 API 訪問是否已經啟用。配置檔中應該有一些環境變數或配置參數,您可以檢查是否設置了 API 相關的設定,像是:

  • API 端口
  • API 認證方式(如 OAuth、API token)
  • 是否開放遠端 API 訪問

通常,您應該能在配置檔中看到一些與 gvmdgsad 相關的環境變數設置,例如:

services:
  gvm:
    image: greenbone/gvm
    ports:
      - "9390:9390"  # API 端口
      - "9392:9392"  # Web 端口
    environment:
      - GVM_PASSWORD=yourpassword  # 設置密碼

步驟 5:使用 API 進行串接

當 GVM 容器啟動並確保 API 正常運行後,您就可以開始透過 API 進行交互。確保您知道 API 端口(默認為 9390),並且擁有正確的認證(帳號/密碼或 API token)。

例如,使用 curl 或其他 HTTP 客戶端來進行 API 請求:

curl -X GET -H "Authorization: Bearer YOUR_API_TOKEN" http://localhost:9390/greenbone/vulnerabilities

注意事項

  • API 密碼或認證:如果您沒有在 Docker Compose 配置中指定 API 密碼或認證,您可能需要先設定一個帳號和密碼來授權 API 訪問。

    您可以進入容器來創建帳號,並配置 API 密碼:

    docker exec -it gvm-container-name bash
    gvmd --create-user=admin --password=adminpassword
    
  • 確認容器端口映射:請確保 docker-compose.yml 中的端口映射是正確的,API 端口(9390)需要映射到主機的端口。

  • Docker Compose 配置文件:某些配置可能會因不同版本的 Greenbone 映像或 Docker Compose 配置而有所不同,您可以根據需要進行調整。

總結來說,使用 Docker Compose 啟動 Greenbone 後,您依然可以串接其 API,只要確保配置正確並且 API 服務正常啟動即可。如果配置正確,您可以透過相應的 API 請求來進行漏洞掃描或其他操作。

另外附上,瑪斯克號稱地表最強AI的回答
https://grok.com/share/bGVnYWN5_577b7898-8404-405d-bddb-910e812ce7ec

這兩個基本上都是差不多的方式,您可以試試看

我要發表回答

立即登入回答