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

GVM (Greenbone Vulnerability Management) это решение с открытым исходным кодом для сканирования уязвимостей и управления ими. GVM ранее был известен как OpenVAS.

Greenbone Vulnerability Manager и OpenVAS широко используются многими людьми в мире, включая экспертов по безопасности и обычных пользователей. Чтобы запустить тесты безопасности компьютеров, используйте свою собственную базу данных известных слабостей и эксплойтов.

сканер уязвимостей GVM

В этой статье мы покажем, как установить и настроить GVM на Ubuntu 20.04. Чтобы проверить, что ваши серверы защищены от атак.

Базовая Система

Мы установим Greenbone Vulnerability Manager 20.08 с базовой установкой системных пакетов на Ubuntu 20.04.

Предварительно

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

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 и Git клонируйте исходный код 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)

На этом шаге мы скомпилируем gvm-libs из github:

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

Исправьте redis для установки OpenVAS (root)

Теперь мы должны выйти из текущего сеанса, чтобы вернуться к привилегированному пользователю, набрав в терминале ‘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 redis-server@openvas.service && systemctl start redis-server@openvas.service

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/Defaultss.*secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin/Defaults secure_path=/usr/local/sbin:/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. Если вы получаете ошибки отказа в подключении, подождите некоторое время и повторите попытку.

Это займет очень много времени, так что вам придется набраться терпения.

Загрузка плагинов в redis с помощью OpenVAS (GVM)

Это может занять некоторое время в зависимости от вашего оборудования и не даст вам обратной связи при выполнении команды.

sudo openvas-u

Примечание: Если вы получаете отсутствующие ошибки библиотеки, введите следующее (по одной строке за раз):

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

Менеджер установки (GVM)

Теперь войдите в каталог gvmd для сборки и установки Greenbone Manager:

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 User)

Переключитесь на пользователя в sudoers (не используйте для этого root или gvm). Сеанс пользователя будет переключен с помощью команды” sudo-u postgres bash ниже. выполняйте по одной строке за раз.

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)

Введите одну строку одновременно:

sudo su-gvm gvm-manage-certs-a

Создать администратора пользователя (GVM)

Это создаст начальное имя пользователя и пароль. Не забудьте изменить его позже.

gvmd create-user=admin password=admin

Настройка и обновление каналов (GVM)

Чтобы каналы полностью обновились, нам нужно будет установить “владелец импорта каналов в UUID администратора. Во-первых, найдите UUID нового пользователя admin

gvmd get-users verbose

Вы должны получить что-то вроде этого:

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

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

gvmd modify-setting 78eceaec-3385-11ea-b237-28d24461215b value

(выходная строка из приведенной выше команды 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

Выполните следующие три команды по одной строке за раз. Если вы получаете ошибки отказа в соединении, попробуйте выполнить команду еще раз, пока она не завершится успешно. Эти команды также займут некоторое время.

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 python3.8, чтобы соответствовать установленной версии python.

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)

Мы установим ospd с помощью pip installer:

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

Установка ospd-openvas (GVM)

Опять же для ospd-openvas мы будем использовать установщик pip с пакетом, который мы клонировали из github:

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

Создание сценариев запуска (root)

Сначала введите exit to loguout to root session, а затем вставьте в терминал следующее:

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 redis-server@openvas.service Wants=redis-server@openvas.service [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, также как пользователь root: systemctl daemon-reload & & systemctl enable gvmd & & systemctl enable gsad & & systemctl enable ospd-openvas & & systemctl start gvmd & & systemctl start gsad & & systemctl start ospd-openvas

Проверьте сервисы (root)

Убедитесь, что все три службы запущены (одновременно введите одну строку).

systemctl status gvmd systemctl status gsad systemctl status ospd-openvas

Изменить сканер по умолчанию (GVM)

Переключитесь обратно на сеанс GVM.

sudo su-gvm

Во-первых, получить UUID сканера, который имеет гнездо (ospd. sock)

gvmd get-сканеры

Затем измените сканер:

gvmd modify-scanner=(вставить UUID сканера здесь) 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.

Вот и все. Теперь вы можете войти в веб-интерфейс GVM.

сканер уязвимостей GVM

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

Оцените статью
Установка и настройка популярных программ на Windows, Linux и другие операционные системы