Поиск по сайту:

Как установить и использовать сканер уязвимостей GVM в Ubuntu 20.04


На этой странице

  1. Предпосылки
  2. Начало работы
  3. Установите необходимые зависимости
  4. Установка и настройка PostgreSQL
  5. Скачать GVM
  6. Установите gvm-libs
  7. Установить openvas-smb
  8. Установить сканер OpenVAS
  9. Создать служебный файл Systemd
  10. Обновление NVT
  11. Установите Greenbone Vulnerability Manager
  12. Настройка и обновление фидов (GVM)
  13. Установить GSA
  14. Настройка OSPD-OpenVAS
  15. Создание служебного файла Systemd для GVM, GSAD и OpenVAS.
  16. Изменить сканер по умолчанию
  17. Доступ к веб-интерфейсу GVM
  18. Заключение

GVM, также называемый «Greenbone Vulnerability Management», представляет собой программное обеспечение с открытым исходным кодом для сканирования и управления уязвимостями, которое предоставляет набор тестов на сетевые уязвимости для поиска лазеек в безопасности в системах и приложениях. Это комплексный набор инструментов, используемый многими экспертами по безопасности и обычными пользователями по всему миру.

В этом руководстве мы покажем вам, как установить и настроить GVM на сервере Ubuntu 20.04.

Предпосылки

  • Сервер под управлением Ubuntu 20.04.
  • Пароль root настраивается на сервере.

Начиная

Перед запуском вам необходимо обновить системные пакеты до последней версии. Вы можете обновить их с помощью следующей команды:

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 с помощью следующей команды:

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

Затем скопируйте файл конфигурации Redis сканера OpenVAS с помощью следующей команды:

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

Затем обновите путь к сокету Unix Redis с помощью следующей команды:

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

Затем включите и запустите службу Redis с помощью следующей команды:

systemctl enable 

Далее вам нужно будет настроить файл 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

Сначала создайте служебный файл systemd для Transparent Huge Pages (THP) с помощью следующей команды:

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

Затем вам нужно будет предоставить пользователю gvm возможность запускать все системные команды с помощью sudo без ввода пароля. Вы можете сделать это с помощью следующей команды:

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

Обновление NVT

Затем вам нужно будет обновить ленту «Тесты сетевых уязвимостей» из ленты безопасности/канала сообщества Greenbone.

Сначала войдите в систему под пользователем gvm с помощью следующей команды:

su - gvm

Затем обновите ленту с помощью следующей команды:

greenbone-nvt-sync

После завершения обновления обновите сервер Redis с той же информацией VT из файлов VT:

sudo openvas --update-vt-info

Установите Greenbone Vulnerability Manager

Сначала измените каталог на 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)

Сначала создайте пользователя-администратора для доступа к веб-интерфейсу GVM:

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

Затем найдите UUID пользователя-администратора с помощью следующей команды:

gvmd --get-users --verbose

Вы должны получить следующий результат:

admin 1288cbcf-23a0-407f-8013-b7a57acc5795

Затем измените настройки gvmd с помощью UUID пользователя:

gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value 1288cbcf-23a0-407f-8013-b7a57acc5795

Затем синхронизируйте все каналы greenbone с помощью следующей команды:

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 и установите ospd с помощью pip:

cd ospd 
pip3 install .

Затем измените каталог на ospd-openvas и установите ospd-openvas с помощью команды pip:

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

Далее выйдите из-под пользователя gvm с помощью следующей команды:

exit

Создайте служебный файл Systemd для GVM, GSAD и OpenVAS

Сначала создайте служебный файл systemd для gvmd с помощью следующей команды:

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

Сохраните и закройте файл, затем создайте служебный файл systemd для gsad с помощью следующей команды:

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

Сохраните и закройте файл, затем создайте файл службы systemd для openvas с помощью следующей команды:

nano /etc/systemd/system/ospd-openvas.service

Добавьте следующие строки:

[Unit]
Description=Job that runs the ospd-openvas daemon
Documentation=man:gvm
After=network.target 


[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

Доступ к веб-интерфейсу GVM

На данный момент GVM установлен и прослушивает порты 80 и 443. Вы можете получить к нему доступ, используя URL-адрес https://your-server-ip. Вы будете перенаправлены на страницу входа в GVM, как показано ниже:

Укажите имя пользователя и пароль администратора и нажмите кнопку «Войти». Вы должны увидеть панель инструментов GVM на следующей странице:

Заключение

Поздравляем! вы успешно установили и настроили GVM на сервере Ubuntu 20.04. Теперь вы можете изучить GVM, чтобы начать сканирование вашей системы на наличие уязвимостей. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.