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 -1aş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 buildcmake .. -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 CERTgvm-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