- Предварительно
- Создайте пользователя GVM
- Скачать и установить программное обеспечение (GVM)
- Установите gvm-libs (GVM)
- Установка openvas-smb (GVM)
- Установите сканер (GVM)
- Исправьте redis для установки OpenVAS (root)
- Обновление NVT (GVM)
- Загрузка плагинов в redis с помощью OpenVAS (GVM)
- Менеджер установки (GVM)
- Настройка PostgreSQL (Sudoers User)
- Исправьте сертификаты (GVM)
- Создать администратора пользователя (GVM)
- Настройка и обновление каналов (GVM)
- Установите gsa (GVM)
- Настройка OSPD-OpenVAS
- Установите virtualenv (GVM)
- Установка ospd (GVM)
- Установка ospd-openvas (GVM)
- Создание сценариев запуска (root)
- Включите и запустите службы (root)
- Проверьте сервисы (root)
- Изменить сканер по умолчанию (GVM)
GVM (Greenbone Vulnerability Management) — это решение с открытым исходным кодом для сканирования уязвимостей и управления ими. GVM ранее был известен как OpenVAS.
Greenbone Vulnerability Manager и OpenVAS широко используются многими людьми в мире, включая экспертов по безопасности и обычных пользователей. Чтобы запустить тесты безопасности компьютеров, используйте свою собственную базу данных известных слабостей и эксплойтов.
В этой статье мы покажем, как установить и настроить 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.