「GreenboneVulnerabilityManagement」とも呼ばれるGVMは、システムとアプリケーションのセキュリティの抜け穴を見つけるための一連のネットワーク脆弱性テストを提供する、オープンソースの脆弱性スキャンおよび管理ソフトウェアです。 これは、世界中の多くのセキュリティ専門家や通常のユーザーが使用するオールインワンのツールスイートです。
このチュートリアルでは、Ubuntu20.04サーバーにGVMをインストールして構成する方法を示します。
前提条件
- Ubuntu20.04を実行しているサーバー。
- ルートパスワードがサーバーに設定されます。
入門
開始する前に、システムパッケージを最新バージョンに更新する必要があります。 次のコマンドを使用して、それらを更新できます。
apt-get update -y
サーバーが更新されたら、次のステップに進むことができます。
必要な依存関係をインストールする
開始する前に、必要なすべての依存関係をシステムにインストールする必要があります。 次のコマンドを実行して、それらをインストールできます。
apt-get install software-properties-common build-essential cmake pkg-config libglib2.0-dev libgpgme-dev libgnutls28-dev uuid-dev libssh-gcrypt-dev libldap2-dev doxygen graphviz libradcli-dev libhiredis-dev libpcap-dev bison libksba-dev libsnmp-dev gcc-mingw-w64 heimdal-dev libpopt-dev xmltoman redis-server xsltproc libical-dev gnutls-bin nmap rpm nsis curl wget fakeroot gnupg sshpass socat snmp smbclient libmicrohttpd-dev libxml2-dev python3-polib gettext rsync xml-twig-tools python3-paramiko python3-lxml python3-defusedxml python3-pip python3-psutil python3-impacket virtualenv vim git texlive-latex-extra texlive-fonts-recommended -y
すべての依存関係がインストールされたら、Yarnリポジトリをシステムに追加します。
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
次に、リポジトリを更新し、次のコマンドを使用してYarnパッケージをインストールします。
apt-get update -y
apt-get install yarn -y
次に、次のコマンドを使用してYarnを最新バージョンにアップグレードします。
yarn install
yarn upgrade
終了したら、次のステップに進むことができます。
PostgreSQLのインストールと構成
GVMはPostgreSQLをデータベースバックエンドとして使用するため、PostgreSQLサーバーをシステムにインストールする必要があります。 次のコマンドでインストールできます。
apt-get install postgresql postgresql-contrib postgresql-server-dev-all -y
インストールが完了したら、PostgreSQLにログインし、GVMのユーザーとデータベースを作成します。
sudo -u postgres bash
export LC_ALL="C"
createuser -DRS gvm
createdb -O gvm gvmd
次に、データベースに接続し、次のコマンドを使用して役割と拡張機能を作成します。
psql gvmd
create role dba with superuser noinherit;
grant dba to gvm;
create extension "uuid-ossp";
create extension "pgcrypto";
次に、次のコマンドを使用してPostgreSQLを終了します。
exit
exit
GVMをダウンロード
まず、次のコマンドを使用して、GVM用に別のディレクトリとユーザーを作成します。
mkdir /opt/gvm
adduser gvm --disabled-password --home /opt/gvm/ --no-create-home --gecos ''
次に、redisユーザーをGVMに追加し、次のコマンドを使用して適切な権限を設定します。
usermod -aG redis gvm
chown gvm:gvm /opt/gvm/
次に、次のコマンドを使用してGVMのパス変数を作成します。
echo 'export PATH="$PATH:/opt/gvm/bin:/opt/gvm/sbin:/opt/gvm/.local/bin"' | tee -a /etc/profile.d/gvm.sh
chmod 0755 /etc/profile.d/gvm.sh
source /etc/profile.d/gvm.sh
次に、次のコマンドを使用してGVMライブラリパスを定義します。
nano /etc/ld.so.conf.d/gvm.conf
次の行を追加します。
/opt/gvm/lib
次に、GVMユーザーにログインし、すべてのコンポーネントのディレクトリを作成します。
su - gvm
mkdir src
次に、次のコマンドを使用して、srcディレクトリ内の必要なすべてのコンポーネントをダウンロードします。
cd src
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
git clone -b gvm-libs-20.08 --single-branch https://github.com/greenbone/gvm-libs.git
git clone -b openvas-20.08 --single-branch https://github.com/greenbone/openvas.git
git clone -b gvmd-20.08 --single-branch https://github.com/greenbone/gvmd.git
git clone -b master --single-branch https://github.com/greenbone/openvas-smb.git
git clone -b gsa-20.08 --single-branch https://github.com/greenbone/gsa.git
git clone -b ospd-openvas-20.08 --single-branch https://github.com/greenbone/ospd-openvas.git
git clone -b ospd-20.08 --single-branch https://github.com/greenbone/ospd.git
gvm-libsをインストールします
次に、ディレクトリをgvm-libsに変更し、構成パスをエクスポートして、次のコマンドでビルドディレクトリを作成します。
cd gvm-libs
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
次に、ディレクトリを変更して、次のコマンドを使用してgvm-libsをビルドおよびコンパイルします。
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make doc
make install
openvas-smbをインストールします
次に、ディレクトリをopenvas-smbに変更し、構成パスをエクスポートして、次のコマンドでビルドディレクトリを作成します。
cd /opt/gvm/src
cd openvas-smb
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
次に、次のコマンドを使用して、ディレクトリを変更してopenvas-smbをビルドおよびコンパイルします。
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make install
OpenVASスキャナーをインストールする
次に、ディレクトリをopenvasに変更し、構成パスをエクスポートして、次のコマンドでビルドディレクトリを作成します。
cd /opt/gvm/src
cd openvas
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
次に、次のコマンドを使用して、ディレクトリを変更し、OpenVASスキャナーをビルドしてインストールします。
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make doc
make install
次に、次のコマンドを使用してgvmユーザーを終了します。
exit
次に、次のコマンドを使用して、インストールされている共有ライブラリにキャッシュを作成します。
export LC_ALL="C"
ldconfig
次に、次のコマンドを使用して、OpenVASスキャナーRedis構成ファイルをコピーします。
cp /etc/redis/redis.conf /etc/redis/redis.orig
cp /opt/gvm/src/openvas/config/redis-openvas.conf /etc/redis/
次に、次のコマンドを使用して適切な所有権を設定します。
chown redis:redis /etc/redis/redis-openvas.conf
次に、次のコマンドを使用して、Redisunixソケットへのパスを更新します。
echo "db_address = /run/redis-openvas/redis.sock" > /opt/gvm/etc/openvas/openvas.conf
次に、次のコマンドを使用してRedisサービスを有効にして開始します。
systemctl enable [email protected]
systemctl start [email protected]
次に、sysctl.confファイルを微調整する必要があります。 次のコマンドで実行できます。
sysctl -w net.core.somaxconn=1024
sysctl vm.overcommit_memory=1
echo "net.core.somaxconn=1024" >> /etc/sysctl.conf
echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
次に、次のコマンドを使用してsysctlをリロードします。
sysctl -p
Systemdサービスファイルの作成
まず、次のコマンドを使用して、Transparent Huge Pages(THP)のsystemdサービスファイルを作成します。
nano /etc/systemd/system/disable-thp.service
次の行を追加します。
Description=Disable 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
ファイルを保存して閉じ、次のコマンドでsystemdサービスをリロードします。
systemctl daemon-reload
次に、disable-thpサービスを開始し、システムの再起動時に開始できるようにします。
systemctl start disable-thp
systemctl enable disable-thp
次に、Redisサービスを再起動して、変更を適用します。
systemctl restart redis-server
次に、パスワードを指定せずにsudoを使用してすべてのシステムコマンドを実行することをgvmユーザーに許可する必要があります。 次のコマンドで実行できます。
sed 's/Defaultss.*secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"/Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/opt/gvm/sbin"/g' /etc/sudoers | EDITOR='tee' visudo
echo "gvm ALL = NOPASSWD: /opt/gvm/sbin/openvas" > /etc/sudoers.d/gvm
echo "gvm ALL = NOPASSWD: /opt/gvm/sbin/gsad" >> /etc/sudoers.d/gvm
NVTを更新する
次に、Greenbone Security Feed / CommunityFeedからNetworkVulnerabilityTestsフィードを更新する必要があります。
まず、次のコマンドを使用してgvmユーザーにログインします。
su - gvm
次に、次のコマンドでフィードを更新します。
greenbone-nvt-sync
更新が完了したら、VTファイルからの同じVT情報でRedisサーバーを更新します。
sudo openvas --update-vt-info
Greenbone VulnerabilityManagerをインストールします
まず、ディレクトリをgvmdに変更し、構成パスをエクスポートして、次のコマンドでビルドディレクトリを作成します。
cd /opt/gvm/src/gvmd
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
次に、次のコマンドを使用して、ディレクトリを変更してgvmdをビルドおよびインストールします。
cd build/
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make doc
make install
次に、次のコマンドを使用して証明書を修正します。
gvm-manage-certs -a
次の出力が得られるはずです。
Generated private key in /tmp/tmp.gW57p1UV0s/cakey.pem. Generated self signed certificate in /tmp/tmp.gW57p1UV0s/cacert.pem. Installed private key to /opt/gvm/var/lib/gvm/private/CA/cakey.pem. Installed certificate to /opt/gvm/var/lib/gvm/CA/cacert.pem. Generated private key in /tmp/tmp.gW57p1UV0s/serverkey.pem. Generated certificate request in /tmp/tmp.gW57p1UV0s/serverrequest.pem. Signed certificate request in /tmp/tmp.gW57p1UV0s/serverrequest.pem with CA certificate in /opt/gvm/var/lib/gvm/CA/cacert.pem to generate certificate in /tmp/tmp.gW57p1UV0s/servercert.pem Installed private key to /opt/gvm/var/lib/gvm/private/CA/serverkey.pem. Installed certificate to /opt/gvm/var/lib/gvm/CA/servercert.pem. Generated private key in /tmp/tmp.gW57p1UV0s/clientkey.pem. Generated certificate request in /tmp/tmp.gW57p1UV0s/clientrequest.pem. Signed certificate request in /tmp/tmp.gW57p1UV0s/clientrequest.pem with CA certificate in /opt/gvm/var/lib/gvm/CA/cacert.pem to generate certificate in /tmp/tmp.gW57p1UV0s/clientcert.pem Installed private key to /opt/gvm/var/lib/gvm/private/CA/clientkey.pem. Installed certificate to /opt/gvm/var/lib/gvm/CA/clientcert.pem. Removing temporary directory /tmp/tmp.gW57p1UV0s.
フィードの構成と更新(GVM)
まず、GVMWebインターフェイスにアクセスするための管理者ユーザーを作成します。
gvmd --create-user=admin --password=admin
次に、次のコマンドを使用して、管理者ユーザーのUUIDを見つけます。
gvmd --get-users --verbose
次の出力が得られるはずです。
admin 1288cbcf-23a0-407f-8013-b7a57acc5795
次に、ユーザーUUIDを使用してgvmd設定を変更します。
gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value 1288cbcf-23a0-407f-8013-b7a57acc5795
次に、次のコマンドを使用してすべてのグリーンボーンフィードを同期します。
greenbone-feed-sync --type GVMD_DATA
greenbone-feed-sync --type SCAP
greenbone-feed-sync --type CERT
gsaをインストールします
まず、ディレクトリをgsaに変更し、構成パスをエクスポートして、次のコマンドでビルドディレクトリを作成します。
cd /opt/gvm/src/gsa
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
次に、次のコマンドを使用して、ディレクトリを変更してgsaをビルドおよびインストールします。
cd build/
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make doc
make install
次に、次のコマンドを使用してgsaのログファイルを作成します。
touch /opt/gvm/var/log/gvm/gsad.log
OSPD-OpenVASを構成する
まず、ディレクトリをsrcに変更し、次のコマンドを使用して構成パスをエクスポートします。
cd /opt/gvm/src
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
次に、次のコマンドを使用してPython仮想環境を作成します。
virtualenv --python python3.8 /opt/gvm/bin/ospd-scanner/
次に、次のコマンドを使用して仮想環境をアクティブ化します。
source /opt/gvm/bin/ospd-scanner/bin/activate
次に、次のコマンドを使用してospdのディレクトリを作成します。
mkdir /opt/gvm/var/run/ospd/
次に、ディレクトリをospdに変更し、pipを使用してospdをインストールします。
cd ospd
pip3 install .
次に、ディレクトリをospd-openvasに変更し、pipコマンドを使用してospd-openvasをインストールします。
cd /opt/gvm/src/ospd-openvas
pip3 install .
次に、次のコマンドを使用してgvmユーザーを終了します。
exit
GVM、GSAD、OpenVASのSystemdサービスファイルを作成する
まず、次のコマンドを使用して、gvmdのsystemdサービスファイルを作成します。
nano /etc/systemd/system/gvmd.service
次の行を追加します。
[Unit] Description=Open Vulnerability Assessment System Manager Daemon Documentation=man:gvmd(8) https://www.greenbone.net Wants=postgresql.service ospd-openvas.service After=postgresql.service ospd-openvas.service [Service] Type=forking User=gvm Group=gvm PIDFile=/opt/gvm/var/run/gvmd.pid WorkingDirectory=/opt/gvm ExecStart=/opt/gvm/sbin/gvmd --osp-vt-update=/opt/gvm/var/run/ospd.sock ExecReload=/bin/kill -HUP $MAINPID KillMode=mixed Restart=on-failure RestartSec=2min KillMode=process KillSignal=SIGINT GuessMainPID=no PrivateTmp=true [Install] WantedBy=multi-user.target
ファイルを保存して閉じ、次のコマンドを使用してgsadのsystemdサービスファイルを作成します。
nano /etc/systemd/system/gsad.service
次の行を追加します。
[Unit] Description=Greenbone Security Assistant (gsad) Documentation=man:gsad(8) https://www.greenbone.net After=network.target Wants=gvmd.service [Service] Type=forking PIDFile=/opt/gvm/var/run/gsad.pid WorkingDirectory=/opt/gvm ExecStart=/opt/gvm/sbin/gsad --drop-privileges=gvm Restart=on-failure RestartSec=2min KillMode=process KillSignal=SIGINT GuessMainPID=no PrivateTmp=true [Install] WantedBy=multi-user.target
ファイルを保存して閉じ、次のコマンドを使用してopenvas用のsystemdサービスファイルを作成します。
nano /etc/systemd/system/ospd-openvas.service
次の行を追加します。
[Unit] Description=Job that runs the ospd-openvas daemon Documentation=man:gvm After=network.target [email protected] [email protected] [Service] Environment=PATH=/opt/gvm/bin/ospd-scanner/bin:/opt/gvm/bin:/opt/gvm/sbin:/opt/gvm/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin Type=forking User=gvm Group=gvm WorkingDirectory=/opt/gvm PIDFile=/opt/gvm/var/run/ospd-openvas.pid ExecStart=/opt/gvm/bin/ospd-scanner/bin/python /opt/gvm/bin/ospd-scanner/bin/ospd-openvas --pid-file /opt/gvm/var/run/ospd-openvas.pid --unix-socket=/opt/gvm/var/run/ospd.sock --log-file /opt/gvm/var/log/gvm/ospd-scanner.log --lock-file-dir /opt/gvm/var/run/ospd/ Restart=on-failure RestartSec=2min KillMode=process KillSignal=SIGINT GuessMainPID=no PrivateTmp=true [Install] WantedBy=multi-user.target
ファイルを保存して閉じてから、次のコマンドでsystemdデーモンをリロードします。
systemctl daemon-reload
次に、すべてのサービスを開始し、次のコマンドを使用してシステムの再起動時にサービスを開始できるようにします。
systemctl enable gvmd
systemctl enable gsad
systemctl enable ospd-openvas
systemctl start gvmd
systemctl start gsad
systemctl start ospd-openvas
次のコマンドを使用して、すべてのサービスのステータスを確認することもできます。
systemctl status gvmd
systemctl status gsad
systemctl status ospd-openvas
デフォルトのスキャナーを変更する
まず、次のコマンドを使用してgvmユーザーにログインします。
sudo su - gvm
次に、次のコマンドを使用してスキャナーのUUIDを取得します。
gvmd --get-scanners
次のコマンドを取得する必要があります。
08b69003-5fc2-4037-a479-93b440211c73 OpenVAS /var/run/ospd/ospd.sock 0 OpenVAS Default 6acd0832-df90-11e4-b9d5-28d24461215b CVE 0 CVE
次に、上記のUUIDを使用してデフォルトのスキャナーを変更します。
gvmd --modify-scanner=08b69003-5fc2-4037-a479-93b440211c73 --scanner-host=/var/run/ospd/ospd.sock
GVMWebインターフェイスにアクセスする
この時点で、GVMがインストールされ、ポート80と443でリッスンしています。URLを使用してアクセスできます。 https:// your-server-ip。 以下に示すように、GVMログインページにリダイレクトされます。
管理者のユーザー名とパスワードを入力し、 ログイン ボタン。 次のページにGVMダッシュボードが表示されます。
結論
おめでとう! これで、Ubuntu20.04サーバーにGVMが正常にインストールおよびセットアップされました。 これで、GVMがシステムの脆弱性のスキャンを開始することを確認できます。 ご不明な点がございましたら、お気軽にお問い合わせください。
Hope this helps!