GVM juga disebut "Greenbone Vulnerability Management" adalah perangkat lunak manajemen dan pemindaian kerentanan sumber terbuka yang menyediakan serangkaian tes kerentanan jaringan untuk menemukan celah keamanan dalam sistem dan aplikasi. Ini adalah rangkaian alat lengkap yang digunakan oleh banyak pakar keamanan dan pengguna biasa di seluruh dunia.
Dalam tutorial ini, kami akan menunjukkan cara menginstal dan mengkonfigurasi GVM di server Ubuntu 20.04.
Prasyarat
- Server yang menjalankan Ubuntu 20.04.
- Sandi root dikonfigurasi untuk server.
Memulai
Sebelum memulai, Anda perlu memperbarui paket sistem Anda ke versi terbaru. Anda dapat memperbaruinya menggunakan perintah berikut:
apt-get update -y
Setelah server Anda diperbarui, Anda dapat melanjutkan ke langkah berikutnya.
Instal Dependensi yang Diperlukan
Sebelum memulai, Anda harus menginstal semua dependensi yang diperlukan di sistem Anda. Anda dapat menginstalnya dengan menjalankan perintah berikut:
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
Setelah semua dependensi terinstal, tambahkan repositori Yarn ke sistem Anda:
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
Selanjutnya, perbarui repositori dan instal paket Yarn dengan perintah berikut:
apt-get update -y
apt-get install yarn -y
Selanjutnya, tingkatkan Yarn ke versi terbaru menggunakan perintah berikut:
yarn install
yarn upgrade
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Instal dan Konfigurasi PostgreSQL
GVM menggunakan PostgreSQL sebagai backend database sehingga Anda perlu menginstal server PostgreSQL ke sistem Anda. Anda dapat menginstalnya dengan perintah berikut:
apt-get install postgresql postgresql-contrib postgresql-server-dev-all -y
Setelah instalasi selesai, masuk ke PostgreSQL dan buat pengguna dan database untuk GVM:
sudo -u postgres bash
export LC_ALL="C"
createuser -DRS gvm
createdb -O gvm gvmd
Selanjutnya connect ke database lalu buat role dan extension dengan perintah berikut:
psql gvmd
create role dba with superuser noinherit;
grant dba to gvm;
create extension "uuid-ossp";
create extension "pgcrypto";
Selanjutnya, keluar dari PostgreSQL dengan perintah berikut:
exit
exit
Unduh GVM
Pertama, buat direktori dan pengguna terpisah untuk GVM dengan perintah berikut:
mkdir /opt/gvm
adduser gvm --disabled-password --home /opt/gvm/ --no-create-home --gecos ''
Selanjutnya, tambahkan pengguna redis ke GVM dan atur izin yang sesuai dengan perintah berikut:
usermod -aG redis gvm
chown gvm:gvm /opt/gvm/
Selanjutnya, buat variabel jalur untuk GVM dengan perintah berikut:
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
Selanjutnya, tentukan jalur pustaka GVM menggunakan perintah berikut:
nano /etc/ld.so.conf.d/gvm.conf
Tambahkan baris berikut:
/opt/gvm/lib
Selanjutnya, masuk ke pengguna GVM dan buat direktori untuk semua komponen:
su - gvm
mkdir src
Selanjutnya, unduh semua komponen yang diperlukan di dalam direktori src dengan perintah berikut:
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
Instal gvm-libs
Selanjutnya, ubah direktori menjadi gvm-libs, ekspor jalur konfigurasi dan buat direktori build dengan perintah berikut:
cd gvm-libs
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
Selanjutnya, ubah direktori untuk membangun dan mengkompilasi gvm-libs menggunakan perintah berikut:
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make doc
make install
Instal openvas-smb
Selanjutnya, ubah direktori menjadi openvas-smb, ekspor path config dan buat direktori build dengan perintah berikut:
cd /opt/gvm/src
cd openvas-smb
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
Selanjutnya, ubah direktori untuk membangun dan mengkompilasi openvas-smb dengan perintah berikut:
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make install
Instal OpenVAS Scanner
Selanjutnya, ubah direktori menjadi openvas, ekspor jalur konfigurasi dan buat direktori build dengan perintah berikut:
cd /opt/gvm/src
cd openvas
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
Selanjutnya, ubah direktori untuk membangun dan menginstal pemindai OpenVAS dengan perintah berikut:
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make doc
make install
Selanjutnya, keluar dari pengguna gvm dengan perintah berikut:
exit
Selanjutnya, buat cache ke pustaka bersama yang diinstal dengan perintah berikut:
export LC_ALL="C"
ldconfig
Selanjutnya, salin file konfigurasi OpenVAS scanner Redis dengan perintah berikut:
cp /etc/redis/redis.conf /etc/redis/redis.orig
cp /opt/gvm/src/openvas/config/redis-openvas.conf /etc/redis/
Selanjutnya, atur kepemilikan yang tepat dengan perintah berikut:
chown redis:redis /etc/redis/redis-openvas.conf
Selanjutnya, perbarui jalur ke soket redis unix dengan perintah berikut:
echo "db_address = /run/redis-openvas/redis.sock" > /opt/gvm/etc/openvas/openvas.conf
Selanjutnya, aktifkan dan mulai layanan Redis dengan perintah berikut:
systemctl enable [email protected]
systemctl start [email protected]
Selanjutnya, Anda perlu mengubah file sysctl.conf. Anda dapat melakukannya dengan perintah berikut:
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
Selanjutnya, reload sysctl dengan perintah berikut:
sysctl -p
Buat File Layanan Systemd
Pertama, buat file layanan systemd untuk Transparent Huge Pages (THP) dengan perintah berikut:
nano /etc/systemd/system/disable-thp.service
Tambahkan baris berikut:
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
Simpan dan tutup file kemudian muat ulang layanan systemd dengan perintah berikut:
systemctl daemon-reload
Selanjutnya, mulai layanan disable-thp dan aktifkan untuk memulai saat reboot sistem:
systemctl start disable-thp
systemctl enable disable-thp
Selanjutnya, restart layanan Redis untuk menerapkan perubahan:
systemctl restart redis-server
Selanjutnya, Anda harus mengizinkan pengguna gvm untuk menjalankan semua perintah sistem menggunakan sudo tanpa memberikan kata sandi. Anda dapat melakukannya dengan perintah berikut:
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
echo "gvm ALL = NOPASSWD: /opt/gvm/sbin/openvas" > /etc/sudoers.d/gvm
echo "gvm ALL = NOPASSWD: /opt/gvm/sbin/gsad" >> /etc/sudoers.d/gvm
Perbarui NVT
Selanjutnya, Anda perlu memperbarui umpan Tes Kerentanan Jaringan dari Umpan Keamanan Greenbone/Umpan Komunitas.
Pertama, masuk ke pengguna gvm dengan perintah berikut:
su - gvm
Selanjutnya, update feed dengan perintah berikut:
greenbone-nvt-sync
Setelah pembaruan selesai, perbarui server Redis dengan info VT yang sama dari file VT:
sudo openvas --update-vt-info
Instal Manajer Kerentanan Greenbone
Pertama, ubah direktori ke gvmd, ekspor jalur konfigurasi dan buat direktori build dengan perintah berikut:
cd /opt/gvm/src/gvmd
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
Selanjutnya, ubah direktori untuk membangun dan menginstal gvmd dengan perintah berikut:
cd build/
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make doc
make install
Selanjutnya, perbaiki sertifikat dengan perintah berikut:
gvm-manage-certs -a
Anda akan mendapatkan output berikut:
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.
Konfigurasikan dan Perbarui Umpan (GVM)
Pertama, buat pengguna admin untuk mengakses antarmuka web GVM:
gvmd --create-user=admin --password=admin
Selanjutnya, cari UUID pengguna admin dengan perintah berikut:
gvmd --get-users --verbose
Anda akan mendapatkan output berikut:
admin 1288cbcf-23a0-407f-8013-b7a57acc5795
Selanjutnya, ubah pengaturan gvmd dengan UUID pengguna:
gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value 1288cbcf-23a0-407f-8013-b7a57acc5795
Selanjutnya, sinkronkan semua umpan greenbone dengan perintah berikut:
greenbone-feed-sync --type GVMD_DATA
greenbone-feed-sync --type SCAP
greenbone-feed-sync --type CERT
Instal gsa
Pertama, ubah direktori ke gsa, ekspor jalur konfigurasi dan buat direktori build dengan perintah berikut:
cd /opt/gvm/src/gsa
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
Selanjutnya, ubah direktori untuk membangun dan menginstal gsa dengan perintah berikut:
cd build/
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make doc
make install
Selanjutnya, buat file log untuk gsa dengan perintah berikut:
touch /opt/gvm/var/log/gvm/gsad.log
Konfigurasi OSPD-OpenVAS
Pertama, ubah direktori ke src dan ekspor jalur konfigurasi dengan perintah berikut:
cd /opt/gvm/src
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
Selanjutnya, buat lingkungan virtual Python dengan perintah berikut:
virtualenv --python python3.8 /opt/gvm/bin/ospd-scanner/
Selanjutnya, aktifkan virtual environment dengan perintah berikut:
source /opt/gvm/bin/ospd-scanner/bin/activate
Selanjutnya, buat direktori untuk ospd dengan perintah berikut:
mkdir /opt/gvm/var/run/ospd/
Selanjutnya, ubah direktori ke ospd dan instal ospd dengan pip:
cd ospd
pip3 install .
Selanjutnya, ubah direktori menjadi ospd-openvas dan instal ospd-openvas menggunakan perintah pip:
cd /opt/gvm/src/ospd-openvas
pip3 install .
Selanjutnya, keluar dari pengguna gvm dengan perintah berikut:
exit
Buat File Layanan Systemd untuk GVM, GSAD, dan OpenVAS
Pertama, buat file layanan systemd untuk gvmd dengan perintah berikut:
nano /etc/systemd/system/gvmd.service
Tambahkan baris berikut:
[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
Simpan dan tutup file kemudian buat file layanan systemd untuk gsad dengan perintah berikut:
nano /etc/systemd/system/gsad.service
Tambahkan baris berikut:
[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
Simpan dan tutup file kemudian buat file layanan systemd untuk openvas dengan perintah berikut:
nano /etc/systemd/system/ospd-openvas.service
Tambahkan baris berikut:
[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
Simpan dan tutup file kemudian muat ulang daemon systemd dengan perintah berikut:
systemctl daemon-reload
Selanjutnya, mulai semua layanan dan aktifkan untuk memulai pada sistem reboot dengan perintah berikut:
systemctl enable gvmd
systemctl enable gsad
systemctl enable ospd-openvas
systemctl start gvmd
systemctl start gsad
systemctl start ospd-openvas
Anda juga dapat memverifikasi status semua layanan dengan perintah berikut:
systemctl status gvmd
systemctl status gsad
systemctl status ospd-openvas
Ubah Pemindai Default
Pertama, masuk ke pengguna gvm dengan perintah berikut:
sudo su - gvm
Selanjutnya, dapatkan UUID pemindai dengan perintah berikut:
gvmd --get-scanners
Anda harus mendapatkan perintah berikut:
08b69003-5fc2-4037-a479-93b440211c73 OpenVAS /var/run/ospd/ospd.sock 0 OpenVAS Default 6acd0832-df90-11e4-b9d5-28d24461215b CVE 0 CVE
Sekarang, ubah pemindai default menggunakan UUID di atas:
gvmd --modify-scanner=08b69003-5fc2-4037-a479-93b440211c73 --scanner-host=/var/run/ospd/ospd.sock
Mengakses Antarmuka Web GVM
Pada titik ini, GVM diinstal dan mendengarkan pada port 80 dan 443. Anda dapat mengaksesnya menggunakan URL https://your-server-ip . Anda akan diarahkan ke halaman login GVM seperti di bawah ini:
Berikan nama pengguna, kata sandi admin Anda, dan klik Masuk tombol. Anda akan melihat dasbor GVM di halaman berikut:
Kesimpulan
Selamat! Anda telah berhasil menginstal dan mengatur GVM di server Ubuntu 20.04. Anda sekarang dapat menjelajahi GVM mulai memindai kerentanan sistem Anda. Jangan ragu untuk bertanya kepada saya jika Anda memiliki pertanyaan.