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

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

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

сканер уязвимостей GVM
сканер уязвимостей 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

 

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

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

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

Nazario

Я — Nazario, создатель и автор сайта linuxwin.ru, специализируюсь на информационных технологиях с акцентом на системное администрирование Linux и Windows, веб-разработку и настройку различных систем.

Linux и Windows
Выскажите своё мнение или присоединяйтесь к обсуждению:

Отправляя комментарий, вы даете согласие на обработку ваших данных в соответствии с политикой конфиденциальности и даёте согласие на их использование.