Menü Kapat

OpenVas Zaafiyet Tarama (GVM 20-08) kurulumu

OpenVas Zaafiyet Tarama (GVM 20-08) kurulumu ; OpenVas ı bilmeyenler için biraz bahsetmek isterim; OpenVas ücretsiz GPL lisansına sahip bir vulnerability scanner yazılımıdır. Networkünüze bu yazılımı kurup tüm ağınızdaki güvenlik açıklarını raporlayabilirsiniz.

Ağustos 2020 de OpenVas 20-08 versiyonu yayınlandı ve GVM 10 ve GVM 11 versiyonları End of Support oldu.

Ubuntu 20.04 üzerine OpenVas GVM 20.08 versiyonunu kuruyor olacağız.

Minimum sistem gereksinimleri aşağıdaki gibidir;

  • en az 4gb ram
  • en az 4 vCPU
  • minimum 8gb disk alanı

bu gereksinimler sizin kullanımınıza bağlı olarak değişecektir, yeteri kadar kaynak ayırdığınıza emin olun.

Sistem Güncellemesi

Öncelikle Mevcut OS güncellemelerini yapıyoruz.

apt update

apt upgrade

Kullanıcı oluşturma

root yetkilerini kullanmak istemediğimiz için bir kullanıcı oluşturup OpenVas ı bununlar çalıştıracağız.

useradd -r -d /opt/gvm -c “GVM User” -s /bin/bash gvm

OpenVas ı kuracağımız klasörü oluşturup yetkilerini veriyoruz.

mkdir /opt/gvm

chown gvm: /opt/gvm

Gerekli Araçların kurulması

Ubuntu 20.04 üzerine OpenVas GVM20.08 kurmak için gerekli olan derleyici vb araçları kurmak için bu komutları çalıştırıyoruz.

apt install gcc g++ make bison flex libksba-dev curl redis libpcap-dev \
cmake git pkg-config libglib2.0-dev libgpgme-dev nmap 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 xsltproc libunistring-dev

Ubuntu 20.04 üzerine Yarn paket yöneticisi kurulumu

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 üzerine PostgreSQL kurulumu

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

PostgreSQL üzerinde kullanıcı ve database oluşturma

PostgreSQL kurulumu bittikten sonra OpenVaz zaafiyet tarama aracı için gerekli olan veritabanı ve kullanıcıları oluşturuyoruz. not: Database ve kullanıcı PostgreSQL kullanıcısı olan postgres ile oluşturulmalı

sudo -Hiu postgres
createuser gvm
createdb -O gvm gvmd

psql gvmd
create role dba with superuser noinherit;
grant dba to gvm;
create extension “uuid-ossp”;
create extension “pgcrypto”;
\q
exit

bitince PostgreSQL restart edilir.

systemctl restart postgresql
systemctl enable postgresql

GVM 20.08 kaynak kodundan kurulum

Ubuntu 20.04 üzerine GVM 20.08 kurmak için bir çok farklı araç kurulumu gerekiyor. işte bunlardan bazıları , bunları sırası ile kuracağız ;

  • GVM Libraries
  • OpenVAS Scanner
  • OSPd
  • ospd-openvas
  • Greenbone Vulnerability Manager
  • Greenbone Security Assistant
  • Python-GVM
  • GVM-Tools
  • OpenVAS SMB

Her komponentin içinde yer alan README.md ve INSTALL.md dosyalarında detaylı açıklamaları ve kurulum bilgilerini bulabilirsiniz.

GVM i ayrıcalıklı olmayan gvm kullanıcısı ile çalıştıracağımız için tüm yapılandırma ve kütüphaneleri şuraya yükleyeceğiz : /opt/gvm

/etc/environment üzerindeki PATH ortam değişkenini güncelleyerek GVM yollarını ekliyoruz.

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 kütüphane yolunu da /etc/ld.so.conf.d buraya ekliyoruz

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

GVM 20.08 i kurma ve yapılandırma

gvm kullanıcısına geçiyoruz ve geçici kurulum dosyaları için bir klasör oluşturuyoruz

su – gvm
mkdir gvm-source

GVM 20.08 kurulum dosyalarını indirme

cd gvm-source
git clone -b gvm-libs-20.08 https://github.com/greenbone/gvm-libs.git
git clone -b master https://github.com/greenbone/openvas-smb.git
git clone -b openvas-20.08 https://github.com/greenbone/openvas.git
git clone -b ospd-20.08 https://github.com/greenbone/ospd.git
git clone -b ospd-openvas-20.08 https://github.com/greenbone/ospd-openvas.git
git clone -b gvmd-20.08 https://github.com/greenbone/gvmd.git
git clone -b gsa-20.08 https://github.com/greenbone/gsa.git

kurulum dosyalarının hepsi indiğinde kuruluma başlayabiliriz, bulunduğunuz klasörü not ediniz.

pwd
/opt/gvm/gvm-source
ls -1

aşağıdaki dosyaları göreceksiniz.
gsa
gvmd
gvm-libs
openvas
openvas-smb
ospd
ospd-openvas

PKG_CONFIG_PATH ortam değişkenini pkg-config dosyalarının konumuna ayarlıyoruz.

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

GVM kütüphanesinin kurulumu

kurulum dosyalarının bulunduğu /opt/gvm/gvm-source klasöründe bu işlemleri başlatıyoruz.

cd gvm-libs

mkdir build
cd build

cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gvm

make

make install

OpenVAS scanner ve OpenVAS SMB kurulumu

openvas-smb yapılandırma ve kurma ;

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

OpenVAS Scanner yapılandırma ve kurma ;

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

OpenVAS Scanner konfigürasyonu

Host tarama bilgileri geçici olarak Redis server üzerinde tutulur. Redis Server default konfigurasyon dosyaları : /etc/redis/redis.conf

root kullanıcısına dönüyoruz.

exit

ldconfig

OpenVas Redis config dosyasını kopyalıyoruz redis-openvas.conf

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

konfigürasyon dosyasının sahibini ayarlıyoruz.

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

/opt/gvm/etc/openvas/openvas.conf dosyasındaki db_address parametresini güncelleyerek Redis unix socket bilgisini ayarlıyoruz. ve dosya sahibini güncelliyoruz.

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

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

redis grubuna gvm kullanıcısını ekliyoruz.

usermod -aG redis gvm

Redis için birkaç performans parametresini güncelliyoruz.

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

echo ‘vm.overcommit_memory = 1’ >> /etc/sysctl.conf

parametreler sonrası sysctl değişkenlerinin tekrar yüklenmesini sağlıyoruz.

sysctl -p

Redis ile gecikme ve bellek kullanım sorunlarını önlemek için aşağıdaki komutları çalıştırıyoruz ;

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

systemd configi reload ediyoruz ;

systemctl daemon-reload

systemctl enable –now disable_thp

systemctl enable –now redis-server@openvas

Belirli işlemleri gerçekleştirmek için root yetkisi gerekir, OpenVas sudo aracılığı ile başlatıldığında gvm kullanıcısının şifresiz sudo kullanarak openvas ı root yetkileri ile çalıştırmak için soduers dosyasına aşağıdaki satır eklenir.

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

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

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

NVT lerin güncellenmesi

Network Vulnerability Test feed lerin güncellenmesini sağlamak için greenbone-nvt-sync komutu çalıştırılır. bu komut root yetkisi ile çalıştırılmamalı bu sebeple tekrar gvm kullanıcısına geri dönüyoruz.

su – gvm

greenbone-nvt-sync

sudo openvas –update-vt-info

Greenbone Vulnerability Manager yapılandırma ve kurulum

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

Greenbone Security Assistant yapılandırma ve kurulum

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

Data , SCAP ve CERT güncellemelerini yapmak

aşağıdaki komutları root yetkisi ile çalıştırmamız gerekiyor.

sudo -Hiu gvm greenbone-feed-sync –type GVMD_DATA
sudo -Hiu gvm greenbone-feed-sync –type SCAP
sudo -Hiu gvm greenbone-feed-sync –type CERT

gvm-manage-certs -a

OSPd ve OSPd-OpenVAS yapılandırma ve kurulum

export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
cd /opt/gvm/gvm-source/ospd
python3 setup.py install –prefix=/opt/gvm
cd /opt/gvm/gvm-source/ospd-openvas
python3 setup.py install –prefix=/opt/gvm

OpenVAS Scanner, GSA ve GVM Servislerinin çalıştırılması

gvm kullanıcısından çıkarak tekrar root yetkisine geri dönüyoruz.

exit

OpenVas systemd servislerini oluşturuyoruz.

cat > /etc/systemd/system/openvas.service << ‘EOL’
[Unit]
Description=Control the OpenVAS service
After=redis.service
After=postgresql.service

[Service]
ExecStartPre=-rm -rf /opt/gvm/var/run/ospd-openvas.pid /opt/gvm/var/run/ospd.sock /opt/gvm/var/run/gvmd.sock
Type=simple
User=gvm
Group=gvm
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
Environment=PYTHONPATH=/opt/gvm/lib/python3.8/site-packages
ExecStart=/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
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
EOL

systemd servisini reload ediyoruz.

systemctl daemon-reload
systemctl start openvas

Servisin durumunu kontrol ediyoruz.

systemctl status openvas

OpenVas Scanner in system açılışında otomatik açılmasını sağlıyoruz;

systemctl enable openvas

GSA systemd servis dosyasını oluşturuyoruz;

cat > /etc/systemd/system/gsa.service << ‘EOL’
[Unit]
Description=Control the OpenVAS GSA service
After=openvas.service

[Service]
Type=simple
User=gvm
Group=gvm
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
Environment=PYTHONPATH=/opt/gvm/lib/python3.8/site-packages
ExecStart=/usr/bin/sudo /opt/gvm/sbin/gsad
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
EOL

cat > /etc/systemd/system/gsa.path << ‘EOL’
[Unit]
Description=Start the OpenVAS GSA service when gvmd.sock is available

[Path]
PathChanged=/opt/gvm/var/run/gvmd.sock
Unit=gsa.service

[Install]
WantedBy=multi-user.target
EOL

GVM systemd servis dosyasını oluşturuyoruz ;

cat > /etc/systemd/system/gvm.service << ‘EOL’

[Unit] Description=Control the OpenVAS GVM service

After=openvas.service

[Service] Type=simple

User=gvm

Group=gvm 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 Environment=PYTHONPATH=/opt/gvm/lib/python3.8/site-packages ExecStart=/opt/gvm/sbin/gvmd –osp-vt-update=/opt/gvm/var/run/ospd.sock RemainAfterExit=yes

[Install]

WantedBy=multi-user.target

EOL

cat > /etc/systemd/system/gvm.path << ‘EOL’
[Unit]
Description=Start the OpenVAS GVM service when opsd.sock is available

[Path]
PathChanged=/opt/gvm/var/run/ospd.sock
Unit=gvm.service

[Install]
WantedBy=multi-user.target
EOL

system configlerini yeniliyoruz ve servisleri start ediyoruz.

systemctl daemon-reload
systemctl enable –now gvm.{path,service}
systemctl enable –now gsa.{path,service}

servislerin durumlarını kontrol ediyoruz;

systemctl status gvm.{path,service}

systemctl status gsa.{path,service}

GVM Scanner in oluşturulması

sudo -Hiu gvm gvmd –create-scanner=”Kifarunix-demo OpenVAS Scanner” –scanner-type=”OpenVAS” –scanner-host=/opt/gvm/var/run/ospd.sock

scannerların listesini alıyoruz, burada scanner in identifier bilgisine ihtiyacımız var;

sudo -Hiu gvm gvmd –get-scanners

dönen bilgiler aşağıdaki gibi ;

08b69003-5fc2-4037-a479-93b440211c73 OpenVAS /var/run/ospd/ospd.sock 0 OpenVAS Default
6acd0832-df90-11e4-b9d5-28d24461215b CVE 0 CVE
50afbf2b-d854-4b6d-879f-c62aa62254d2 OpenVAS /opt/gvm/var/run/ospd.sock 9390 Kifarunix-demo OpenVAS Scanner

burada bizim tarayıcımızın UUID bilgisi ; 50afbf2b-d854-4b6d-879f-c62aa62254d2

aşağıdaki komut ile Scanner i verify ediyoruz ;

sudo -Hiu gvm gvmd –verify-scanner=50afbf2b-d854-4b6d-879f-c62aa62254d2

komut çıktısı ; Scanner version: OpenVAS 20.8.2.

OpenVAS(GVM) admin kullanıcısı oluşturma ; gvmadmin diye bir kullanıcı oluşturuyoruz web arayüzüne bu kullanıcı ile bağlanacağız

sudo -Hiu gvm gvmd –create-user gvmadmin –password=StronGP@SS

Feed Import sahibini ayarlamak ;

öncelikle sistemdeki kullanıcı bilgilerini çekiyoruz;

sudo -Hiu gvm gvmd –get-users –verbose

dönen değerlerdeki gvmadmin kullanıcısının UUID numarasını aşağıdaki value değerine yapıştırıyoruz ;

sudo -Hiu gvm gvmd –modify-setting 78eceaec-3385-11ea-b237-28d24461215b –value 9a9e5070-d2f0-4802-971e-c9d61e682c21

GVM Log dosyaları

OpenVas log dosyaları /opt/gvm/var/log/gvm klasörüne bulunur .

OpenVas Web arayüzüne erişim ;

443 tcp portunu Firewall dan açmak için ;

ufw allow 443/tcp

Artık OpenVas arayüzüne erişebiliriz https://<ServerIPorHostname>

kaynak : OpenVas Zaafiyet Tarama