GVM còn được gọi là "Greenbone Vulnerability Management" là phần mềm quản lý và quét lỗ hổng nguồn mở cung cấp một bộ các bài kiểm tra lỗ hổng mạng để tìm lỗ hổng bảo mật trong các hệ thống và ứng dụng. Đây là bộ công cụ tất cả trong một được nhiều chuyên gia bảo mật và người dùng thông thường trên toàn thế giới sử dụng.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và cấu hình GVM trên máy chủ Ubuntu 20.04.
Sau khi máy chủ của bạn được cập nhật, bạn có thể tiến hành bước tiếp theo.
Sau khi tất cả các phần phụ thuộc đã được cài đặt, hãy thêm kho lưu trữ Yarn vào hệ thống của bạn:
Tiếp theo, cập nhật kho lưu trữ và cài đặt gói Yarn bằng lệnh sau:
Tiếp theo, nâng cấp Yarn lên phiên bản mới nhất bằng lệnh sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Sau khi cài đặt hoàn tất, hãy đăng nhập vào PostgreSQL và tạo người dùng và cơ sở dữ liệu cho GVM:
Tiếp theo, kết nối đến cơ sở dữ liệu rồi tạo vai trò và tiện ích mở rộng bằng lệnh sau:
Tiếp theo, thoát khỏi PostgreSQL bằng lệnh sau:
Tiếp theo, thêm người dùng redis vào GVM và thiết lập quyền thích hợp bằng lệnh sau:
Tiếp theo, tạo một biến đường dẫn cho GVM bằng lệnh sau:
Tiếp theo, hãy định nghĩa đường dẫn thư viện GVM bằng lệnh sau:
Thêm dòng sau:
Tiếp theo, hãy đăng nhập vào người dùng GVM và tạo một thư mục cho tất cả các thành phần:
Tiếp theo, hãy tải xuống tất cả các thành phần cần thiết bên trong thư mục src bằng lệnh sau:
Tiếp theo, thay đổi thư mục để dựng và biên dịch gvm-libs bằng lệnh sau:
Tiếp theo, thay đổi thư mục để dựng và biên dịch openvas-smb bằng lệnh sau:
Tiếp theo, thay đổi thư mục để dựng và cài đặt trình quét OpenVAS bằng lệnh sau:
Tiếp theo, thoát khỏi người dùng gvm bằng lệnh sau:
Tiếp theo, tạo bộ đệm cho các thư viện chia sẻ đã cài đặt bằng lệnh sau lệnh:
Tiếp theo, sao chép tệp cấu hình Redis của máy quét OpenVAS bằng lệnh sau:
Tiếp theo, thiết lập quyền sở hữu phù hợp bằng lệnh sau:
Tiếp theo, cập nhật đường dẫn đến socket Redis unix bằng lệnh sau:
Tiếp theo, bật và khởi động dịch vụ Redis bằng lệnh sau:
Tiếp theo, bạn sẽ cần chỉnh sửa tệp sysctl.conf. Bạn có thể thực hiện bằng lệnh sau:
Tiếp theo, tải lại sysctl bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp, sau đó tải lại dịch vụ systemd bằng lệnh sau:
Tiếp theo, khởi động dịch vụ disable-thp và cho phép dịch vụ này khởi động khi khởi động lại hệ thống:
Tiếp theo, khởi động lại dịch vụ Redis để áp dụng các thay đổi:
Tiếp theo, bạn sẽ cần cấp cho người dùng gvm quyền chạy tất cả lệnh hệ thống bằng sudo mà không cần cung cấp mật khẩu. Bạn có thể thực hiện bằng lệnh sau:
Trước tiên, hãy đăng nhập vào người dùng gvm bằng lệnh sau:
Tiếp theo, hãy cập nhật nguồn cấp dữ liệu bằng lệnh sau:
Sau khi cập nhật hoàn tất, hãy cập nhật máy chủ Redis bằng cùng thông tin VT từ các tệp VT:
Tiếp theo, thay đổi thư mục để xây dựng và cài đặt gvmd bằng lệnh sau:
Tiếp theo, sửa chứng chỉ bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Tiếp theo, tìm UUID của người dùng quản trị bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Tiếp theo, sửa đổi cài đặt gvmd bằng UUID của người dùng:
Tiếp theo, đồng bộ tất cả các nguồn cấp dữ liệu greenbone bằng lệnh sau:
Tiếp theo, thay đổi thư mục để xây dựng và cài đặt gsa bằng lệnh sau:
Tiếp theo, tạo tệp nhật ký cho gsa bằng lệnh sau:
Tiếp theo, tạo môi trường ảo Python bằng lệnh sau:
Tiếp theo, kích hoạt môi trường ảo bằng lệnh sau:
Tiếp theo, tạo thư mục cho ospd bằng lệnh sau:
Tiếp theo, thay đổi thư mục thành ospd và cài đặt ospd bằng pip:
Tiếp theo, thay đổi thư mục thành ospd-openvas và cài đặt ospd-openvas bằng lệnh pip:
Tiếp theo, thoát khỏi người dùng gvm bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp, sau đó tạo tệp dịch vụ systemd cho gsad bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp, sau đó tạo tệp dịch vụ systemd cho openvas bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp, sau đó tải lại daemon systemd bằng lệnh sau:
Tiếp theo, khởi động tất cả các dịch vụ và cho phép chúng khởi động khi khởi động lại hệ thống bằng lệnh sau:
Bạn cũng có thể xác minh trạng thái của tất cả các dịch vụ bằng lệnh sau:
Tiếp theo, lấy UUID của máy quét bằng lệnh sau:
Bạn sẽ nhận được lệnh sau:
Bây giờ, hãy sửa đổi máy quét mặc định bằng UUID ở trên:
Cung cấp tên người dùng, mật khẩu quản trị viên của bạn và nhấp vào nút Đăng nhập. Bạn sẽ thấy bảng điều khiển GVM ở trang sau:
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt và cấu hình GVM trên máy chủ Ubuntu 20.04.
Điều kiện tiên quyết
- Một máy chủ chạy Ubuntu 20.04.
- Một mật khẩu gốc được cấu hình cho máy chủ.
Bắt đầu
Trước khi bắt đầu, bạn sẽ cần cập nhật các gói hệ thống của mình lên phiên bản mới nhất. Bạn có thể cập nhật chúng bằng lệnh sau:
Mã:
apt-get update -y
Cài đặt các phụ thuộc bắt buộc
Trước khi bắt đầu, bạn sẽ cần cài đặt tất cả các phụ thuộc bắt buộc trong hệ thống của mình. Bạn có thể cài đặt chúng bằng cách chạy lệnh sau:
Mã:
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
Mã:
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
Mã:
apt-get update -y
apt-get install yarn -y
Mã:
yarn install
yarn upgrade
Cài đặt và cấu hình PostgreSQL
GVM sử dụng PostgreSQL làm cơ sở dữ liệu phụ trợ nên bạn sẽ cần cài đặt máy chủ PostgreSQL vào hệ thống của mình. Bạn có thể cài đặt bằng lệnh sau:
Mã:
apt-get install postgresql postgresql-contrib postgresql-server-dev-all -y
Mã:
sudo -u postgres bash
export LC_ALL="C"
createuser -DRS gvm
createdb -O gvm gvmd
Mã:
psql gvmd
create role dba with superuser noinherit;
grant dba to gvm;
create extension "uuid-ossp";
create extension "pgcrypto";
Mã:
exit
exit
Tải xuống GVM
Trước tiên, tạo một thư mục và người dùng riêng cho GVM bằng lệnh sau:
Mã:
mkdir /opt/gvm
adduser gvm --disabled-password --home /opt/gvm/ --no-create-home --gecos ''
Mã:
usermod -aG redis gvm
chown gvm:gvm /opt/gvm/
Mã:
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
Mã:
nano /etc/ld.so.conf.d/gvm.conf
Mã:
/opt/gvm/lib
Mã:
su - gvm
mkdir src
Mã:
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
Cài đặt gvm-libs
Tiếp theo, thay đổi thư mục thành gvm-libs, xuất đường dẫn cấu hình và tạo thư mục dựng bằng lệnh sau:
Mã:
cd gvm-libs
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
Mã:
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make doc
make install
Cài đặt openvas-smb
Tiếp theo, thay đổi thư mục thành openvas-smb, xuất đường dẫn cấu hình và tạo thư mục dựng bằng lệnh sau:
Mã:
cd /opt/gvm/src
cd openvas-smb
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
Mã:
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make install
Cài đặt OpenVAS Scanner
Tiếp theo, thay đổi thư mục thành openvas, xuất đường dẫn cấu hình và tạo thư mục dựng bằng lệnh sau:
Mã:
cd /opt/gvm/src
cd openvas
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
Mã:
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make doc
make install
Mã:
exit
Mã:
export LC_ALL="C"
ldconfig
Mã:
cp /etc/redis/redis.conf /etc/redis/redis.orig
cp /opt/gvm/src/openvas/config/redis-openvas.conf /etc/redis/
Mã:
chown redis:redis /etc/redis/redis-openvas.conf
Mã:
echo "db_address = /run/redis-openvas/redis.sock" > /opt/gvm/etc/openvas/openvas.conf
Mã:
systemctl enable [emailprotected]
systemctl start [emailprotected]
Mã:
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
Mã:
sysctl -p
Tạo tệp dịch vụ Systemd
Trước tiên, tạo tệp dịch vụ systemd cho Transparent Huge Pages (THP) bằng lệnh sau:
Mã:
nano /etc/systemd/system/disable-thp.service
Mã:
Description=Vô hiệu hóa Transparent Huge Pages (THP)[Service]Type=simpleExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"[Cài đặt]WantedBy=multi-user.target
Mã:
systemctl daemon-reload
Mã:
systemctl start disable-thp
systemctl enable disable-thp
Mã:
systemctl restart redis-server
Mã:
sed 's/Defaults\s.*secure_path=\"\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin:\/snap\/bin\"/Defaults safe_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
Cập nhật NVT
Tiếp theo, bạn sẽ cần cập nhật nguồn cấp dữ liệu Kiểm tra lỗ hổng mạng từ Nguồn cấp dữ liệu bảo mật Greenbone/Nguồn cấp dữ liệu cộng đồng.Trước tiên, hãy đăng nhập vào người dùng gvm bằng lệnh sau:
Mã:
su - gvm
Mã:
greenbone-nvt-sync
Mã:
sudo openvas --update-vt-info
Cài đặt Greenbone Vulnerability Manager
Trước tiên, hãy thay đổi thư mục thành gvmd, xuất đường dẫn cấu hình và tạo thư mục dựng bằng lệnh sau:
Mã:
cd /opt/gvm/src/gvmd
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
Mã:
cd build/
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make doc
make install
Mã:
gvm-manage-certs -a
Mã:
Đã tạo khóa riêng trong /tmp/tmp.gW57p1UV0s/cakey.pem.Đã tạo chứng chỉ tự ký trong /tmp/tmp.gW57p1UV0s/cacert.pem.Đã cài đặt khóa riêng tư vào /opt/gvm/var/lib/gvm/private/CA/cakey.pem.Đã cài đặt chứng chỉ vào /opt/gvm/var/lib/gvm/CA/cacert.pem.Đã tạo khóa riêng tư trong /tmp/tmp.gW57p1UV0s/serverkey.pem.Đã tạo yêu cầu chứng chỉ trong /tmp/tmp.gW57p1UV0s/serverrequest.pem.Đã ký yêu cầu chứng chỉ trong /tmp/tmp.gW57p1UV0s/serverrequest.pem với chứng chỉ CA trong /opt/gvm/var/lib/gvm/CA/cacert.pem để tạo chứng chỉ trong /tmp/tmp.gW57p1UV0s/servercert.pemĐã cài đặt khóa riêng tư vào /opt/gvm/var/lib/gvm/private/CA/serverkey.pem.Đã cài đặt chứng chỉ vào /opt/gvm/var/lib/gvm/CA/servercert.pem.Đã tạo khóa riêng tư trong /tmp/tmp.gW57p1UV0s/clientkey.pem.Đã tạo yêu cầu chứng chỉ trong /tmp/tmp.gW57p1UV0s/clientrequest.pem.Đã ký yêu cầu chứng chỉ trong /tmp/tmp.gW57p1UV0s/clientrequest.pem với chứng chỉ CA trong /opt/gvm/var/lib/gvm/CA/cacert.pem để tạo chứng chỉ trong /tmp/tmp.gW57p1UV0s/clientcert.pemĐã cài đặt khóa riêng tư vào /opt/gvm/var/lib/gvm/private/CA/clientkey.pem.Đã cài đặt chứng chỉ vào /opt/gvm/var/lib/gvm/CA/clientcert.pem.Xóa thư mục tạm thời /tmp/tmp.gW57p1UV0s.
Cấu hình và cập nhật nguồn cấp dữ liệu (GVM)
Trước tiên, tạo người dùng quản trị để truy cập giao diện web GVM:
Mã:
gvmd --create-user=admin --password=admin
Mã:
gvmd --get-users --verbose
Mã:
admin 1288cbcf-23a0-407f-8013-b7a57acc5795
Mã:
gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value 1288cbcf-23a0-407f-8013-b7a57acc5795
Mã:
greenbone-feed-sync --type GVMD_DATA
greenbone-feed-sync --type SCAP
greenbone-feed-sync --type CERT
Cài đặt gsa
Trước tiên, hãy thay đổi thư mục thành gsa, xuất đường dẫn cấu hình và tạo thư mục dựng bằng lệnh sau:
Mã:
cd /opt/gvm/src/gsa
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
Mã:
cd build/
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make doc
make install
Mã:
touch /opt/gvm/var/log/gvm/gsad.log
Cấu hình OSPD-OpenVAS
Trước tiên, thay đổi thư mục thành src và xuất đường dẫn cấu hình bằng lệnh sau:
Mã:
cd /opt/gvm/src
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
Mã:
virtualenv --python python3.8 /opt/gvm/bin/ospd-scanner/
Mã:
source /opt/gvm/bin/ospd-scanner/bin/activate
Mã:
mkdir /opt/gvm/var/run/ospd/
Mã:
cd ospd
pip3 install .
Mã:
cd /opt/gvm/src/ospd-openvas
pip3 install .
Mã:
exit
Tạo tệp dịch vụ Systemd cho GVM, GSAD và OpenVAS
Đầu tiên, tạo tệp dịch vụ systemd cho gvmd bằng lệnh sau lệnh:
Mã:
nano /etc/systemd/system/gvmd.service
Mã:
[Unit]Description=Open Vulnerability Assessment System Manager DaemonDocumentation=man:gvmd(8) https://www.greenbone.netWants=postgresql.service ospd-openvas.serviceAfter=postgresql.service ospd-openvas.service[Service]Type=forkingUser=gvmGroup=gvmPIDFile=/opt/gvm/var/run/gvmd.pidWorkingDirectory=/opt/gvmExecStart=/opt/gvm/sbin/gvmd --osp-vt-update=/opt/gvm/var/run/ospd.sockExecReload=/bin/kill -HUP $MAINPIDKillMode=mixedRestart=on-failureRestartSec=2minKillMode=processKillSignal=SIGINTGuessMainPID=noPrivateTmp=true[Install]WantedBy=multi-user.target
Mã:
nano /etc/systemd/system/gsad.service
Mã:
[Unit]Description=Greenbone Security Assistant (gsad)Documentation=man:gsad(8) https://www.greenbone.netAfter=network.targetWants=gvmd.service[Service]Type=forkingPIDFile=/opt/gvm/var/run/gsad.pidWorkingDirectory=/opt/gvmExecStart=/opt/gvm/sbin/gsad --drop-privileges=gvmRestart=on-failureRestartSec=2minKillMode=processKillSignal=SIGINTGuessMainPID=noPrivateTmp=true[Install]WantedBy=multi-user.target
Mã:
nano /etc/systemd/system/ospd-openvas.service
Mã:
[Unit]Description=Job chạy daemon ospd-openvasTài liệu=man:gvmAfter=network.target [emailprotected][emailprotected][Dịch vụ]Môi trường=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:/binLoại=forkingNgười dùng=gvmNhóm=gvmWorkingDirectory=/opt/gvmPIDFile=/opt/gvm/var/run/ospd-openvas.pidExecStart=/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-failureRestartSec=2minKillMode=processKillSignal=SIGINTGuessMainPID=noPrivateTmp=true[Install]WantedBy=multi-user.target
Mã:
systemctl daemon-reload
Mã:
systemctl enable gvmd
systemctl enable gsad
systemctl enable ospd-openvas
systemctl start gvmd
systemctl start gsad
systemctl start ospd-openvas
Mã:
systemctl status gvmd
systemctl status gsad
systemctl status ospd-openvas
Sửa đổi máy quét mặc định
Đầu tiên, hãy đăng nhập vào người dùng gvm bằng lệnh sau:
Mã:
sudo su - gvm
Mã:
gvmd --get-scanners
Mã:
08b69003-5fc2-4037-a479-93b440211c73 OpenVAS /var/run/ospd/ospd.sock 0 OpenVAS Mặc định6acd0832-df90-11e4-b9d5-28d24461215b CVE 0 CVE
Mã:
gvmd --modify-scanner=08b69003-5fc2-4037-a479-93b440211c73 --scanner-host=/var/run/ospd/ospd.sock
Truy cập GVM Web Giao diện
Tại thời điểm này, GVM đã được cài đặt và đang lắng nghe trên các cổng 80 và 443. Bạn có thể truy cập bằng URL . Bạn sẽ được chuyển hướng đến trang đăng nhập GVM như hiển thị bên dưới:Cung cấp tên người dùng, mật khẩu quản trị viên của bạn và nhấp vào nút Đăng nhập. Bạn sẽ thấy bảng điều khiển GVM ở trang sau: