GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04にGVM脆弱性スキャナーをインストールする方法

GVM(Greenbone Vulnerability Management)は、脆弱性スキャンと脆弱性管理のためのオープンソースソリューションです。 GVMは以前はOpenVASと呼ばれていました 。

Greenbone Vulnerability ManagerとOpenVASは、セキュリティの専門家や一般ユーザーを含む世界中の多くの人々によって広く使用されています。これらはすべて、既知の弱点の独自のデータベースを使用してクライアントコンピューターに対してテストを実行するために連携する1つのツールスイートで使用されています。エクスプロイト。

この記事では、Ubuntu 20.04にGVMをインストールしてセットアップし、サーバーが攻撃から保護されていることを確認する方法を示します。

基本システム

Ubuntu20.04にシステムパッケージを基本的にインストールしてGreenboneVulnerabilityManager20.08をセットアップします。

前提条件のインストール

まず、次の依存関係パッケージをインストールします。

sudo su -
apt update &&\
apt -y dist-upgrade &&\
apt -y autoremove &&\
apt install -y software-properties-common &&\
apt install -y 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 postgresql postgresql-contrib postgresql-server-dev-all 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 &&\
apt install -y texlive-latex-extra --no-install-recommends &&\
apt install -y texlive-fonts-recommended &&\
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 -y install yarn &&\
yarn install &&\
yarn upgrade

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 &&\
bash -c 'cat < /etc/ld.so.conf.d/gvm.conf
# gmv libs location
/opt/gvm/lib
EOF'
mkdir /opt/gvm &&\
adduser gvm --disabled-password --home /opt/gvm/ --no-create-home --gecos '' &&\
usermod -aG redis gvm &&\
chown gvm:gvm /opt/gvm/

次に、gvmユーザーとしてログインします。今後、タイトルヘッダーには、コマンドを実行するために必要なユーザーがマークされます。

sudo su - gvm

ソフトウェア(GVM)のダウンロードとインストール

次に、srcフォルダーを作成し、GVMソースコードのクローンを作成します。

mkdir 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)をインストールする

このステップでは、githubからgvm-libsをコンパイルします:

cd gvm-libs &&\
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH &&\
mkdir build &&\
cd build &&\
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm .. &&\
make &&\
make doc &&\
make install &&\
cd /opt/gvm/src

openvas-smb(GVM)をインストールする

次に、openvas-smbディレクトリに入り、ソースコードをコンパイルします。

cd openvas-smb &&\
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH &&\
mkdir build &&\
cd build/ &&\
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm .. &&\
make &&\
make install &&\
cd /opt/gvm/src

スキャナー(GVM)をインストールします

前の手順と同様に、openvasスキャナーをビルドしてインストールします:

cd openvas &&\
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH &&\
mkdir build &&\
cd build/ &&\
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm .. &&\
make &&\
make doc &&\
make install &&\
cd /opt/gvm/src

OpenVASインストール(ルート)のredisを修正

次に、現在のセッションからログアウトして、ターミナルで「exit」と入力して特権ユーザーに戻る必要があります。
次に、次のコードをターミナルに貼り付けます。

export LC_ALL="C" &&\
ldconfig &&\
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 &&\
echo "db_address = /run/redis-openvas/redis.sock" > /opt/gvm/etc/openvas/openvas.conf &&\
systemctl enable [email protected] &&\
systemctl start [email protected]
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
cat << /etc/systemd/system/disable-thp.service
[Unit]
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
EOF
systemctl daemon-reload &&\
systemctl start disable-thp &&\
systemctl enable disable-thp &&\
systemctl restart redis-server

/ opt / gvm/sbinパスをsecure_path変数に追加します。

sed 's/Defaults\s.*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

ospd-openvasを実行しているユーザーがroot権限で起動できるようにします:

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(GVM)の更新

次に、greenbone-nvt-syncを実行して、脆弱性ファイルの定義を更新します。
最初にGVMユーザーセッションに戻ります:

sudo su – gvm

そして、以下を実行します:

greenbone-nvt-sync

タイムアウトエラーが発生した場合は、ファイアウォールが邪魔になっている可能性があります。必ずTCPポート873を開いてください。接続拒否エラーが発生した場合は、しばらく待ってから再試行してください。

これには非常に長い時間がかかるため、辛抱強く待つ必要があります。

OpenVAS(GVM)を使用してプラグインをredisにアップロードする

ハードウェアによっては少し時間がかかる場合があり、コマンドを実行してもフィードバックはありません。

sudo openvas -u

注:ライブラリーの欠落エラーが発生した場合は、次のように入力してください(一度に1行):

exit
echo "/opt/gvm/lib > /etc/ld.so.conf.d/gvm.conf 
ldconfig
sudo su - gvm

インストールマネージャー(GVM)

次に、gvmdディレクトリに入り、GreenboneManagerをビルドしてインストールします。

cd /opt/gvm/src/gvmd &&\
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH &&\
mkdir build &&\
cd build/ &&\
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm .. &&\
make &&\
make doc &&\
make install &&\
cd /opt/gvm/src

PostgreSQL(Sudoersユーザー)の構成

sudoersのユーザーに切り替えます(これにはrootまたはgvmを使用しないでください)。ユーザーセッションは、以下の「sudo-upostgresbash」コマンドで切り替えられます。
一度に1行実行します。

exit
cd /
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";
exit
exit

修正証明書(GVM)

一度に1行入力してください:

sudo su - gvm
gvm-manage-certs -a

管理者ユーザー(GVM)の作成

これにより、初期のユーザー名とパスワードが作成されます。後で変更することを忘れないでください。

gvmd --create-user=admin --password=admin

フィードの構成と更新(GVM)

フィードを完全に更新するには、「FeedImportOwner」を管理者のUUIDに設定する必要があります。まず、新しい管理者ユーザーのUUIDを見つけます

gvmd --get-users --verbose

次のようなものが表示されます:

admin fb019c52-75ec-4cb6-b176-5a55a9b360bf

次のコマンドで管理者の横にある文字列を使用します:

gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value (output string from the above command fb019c52-75ec-4cb6-b176-5a55a9b360bf)

したがって、コマンドの例は次のようになります。

$ gvmd --get-users --verbose
admin fb019c52-75ec-4cb6-b176-5a55a9b360bf
$ gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value fb019c52-75ec-4cb6-b176-5a55a9b360bf

次の3つのコマンドを一度に1行ずつ実行します。接続拒否エラーが発生した場合は、成功するまでコマンドを再試行してください。これらのコマンドにも時間がかかります。

greenbone-feed-sync --type GVMD_DATA
greenbone-feed-sync --type SCAP
greenbone-feed-sync --type CERT

gsa(GVM)のインストール

再び前の手順と同様に、gsaフォルダーに入り、gsaソースコードをコンパイルします。

cd /opt/gvm/src/gsa &&\
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH &&\
mkdir build &&\
cd build/ &&\
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm .. &&\
make &&\
make doc &&\
make install &&\
touch /opt/gvm/var/log/gvm/gsad.log &&\
cd /opt/gvm/src

OSPD-OpenVASのセットアップ

virtualenv(GVM)をインストールします

注:インストールされているPythonのバージョンと一致するように–pythonpython3.8を変更する必要がある場合があります。

cd /opt/gvm/src &&\
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH &&\
virtualenv --python python3.8  /opt/gvm/bin/ospd-scanner/ &&\
source /opt/gvm/bin/ospd-scanner/bin/activate

ospd(GVM)のインストール

pipインストーラーを使用してospdをインストールします:

mkdir /opt/gvm/var/run/ospd/ &&\
cd ospd &&\
pip3 install . &&\
cd /opt/gvm/src

ospd-openvas(GVM)をインストールする

再びospd-openvasの場合、githubから複製したパッケージでpipインストーラーを使用します:

cd ospd-openvas &&\
pip3 install . &&\
cd /opt/gvm/src

スタートアップスクリプトの作成(ルート)

最初にexitと入力してルートセッションにログアウトし、次にターミナルに以下を貼り付けます。

cat << EOF > /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
EOF
cat << EOF > /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
EOF
cat << EOF > /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
EOF

サービスを有効にして開始する(ルート)

ここで、rootユーザーとしてもGVMサービスを有効にして開始します:

systemctl daemon-reload &&\
systemctl enable gvmd &&\
systemctl enable gsad &&\
systemctl enable ospd-openvas &&\
systemctl start gvmd &&\
systemctl start gsad &&\
systemctl start ospd-openvas

サービスを確認する(ルート)

3つのサービスすべてが実行されていることを確認します(一度に1行入力します)。

systemctl status gvmd
systemctl status gsad
systemctl status ospd-openvas

デフォルトスキャナー(GVM)の変更

GVMセッションに戻ります。

sudo su - gvm

まず、ソケット(ospd.sock)を備えたスキャナーのUUIDを取得します

gvmd --get-scanners

次に、スキャナーを変更します:

gvmd --modify-scanner=(INSERT SCANNER UUID HERE) --scanner-host=/opt/gvm/var/run/ospd.sock

例:

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

gvmd --modify-scanner=08b69003-5fc2-4037-a479-93b440211c73 --scanner-host=/opt/gvm/var/run/ospd.sock
Scanner modified.

それだ。これで、GVMWebインターフェイスにログインできます。

結論

Ubuntu20.04へのGVMのインストールが正常に完了しました。これで、サーバーのIPアドレスを使用してログインできます。デフォルトのログインは、上記で設定したadmin/adminです。以下のコメントで、チュートリアルについてのご意見をお聞かせください。


Ubuntu
  1. Ubuntu 18.04/20.04にGitをインストールする方法

  2. Ubuntu20.04にRをインストールする方法

  3. ubuntu 16.04にgitをインストールする方法

  1. Ubuntu18.04にGitをインストールする方法

  2. Ubuntu18.04にGoをインストールする方法

  3. Ubuntu20.04にGitをインストールする方法

  1. Ubuntu20.04にGVM脆弱性スキャナーをインストールして使用する方法

  2. Ubuntu20.04にGitをインストールして構成する方法

  3. Ubuntuに最新のGitバージョンをインストールする方法