如何在 Ubuntu 18.04 LTS 上安装和使用 Vuls 漏洞扫描器
在此页
- 要求
- 开始
- 安装所需的依赖项
- 安装和配置 go-cve-dictionary
- 安装和配置 goval-dictionary
- 安装和配置漏洞
- 使用 Vuls 扫描您的系统
Vuls 是一个用 Go 编写的免费开源漏洞扫描程序。它用于每天执行安全漏洞分析和软件更新。 Vuls 专门设计用于扫描应用程序、计算机、中间件、网络设备和编程语言库以查找已知漏洞。一旦服务器受到漏洞影响,Vuls 就会向您发送通知。 Vuls 可以安装在所有主要操作系统上,如 Linux、FreeBSD、SUSE、Ubuntu、Debian、CentOS、Oracle Linux 等等。 Vuls 还可以使用 ssh 协议扫描远程系统。 Vuls使用快速、快速根和深度三种扫描模式,您可以根据需要选择任何一种。
在本教程中,我们将解释如何在 Ubuntu 18.04 服务器上安装和配置 Vuls 漏洞扫描程序。
要求
- 一台运行 Ubuntu 18.04 的服务器。
- 在您的系统上配置了根密码。
入门
在开始之前,您需要使用最新版本更新您的系统。您可以通过运行以下命令来执行此操作:
apt-get update -y
apt-get upgrade -y
服务器更新后,重新启动服务器以应用更改。
安装所需的依赖项
Vuls 使用 SQLite 来存储他们的漏洞信息。因此,您需要将 SQLite 和其他所需的软件包安装到您的系统中。您可以使用以下命令安装所有这些:
apt-get install sqlite3 git debian-goodies gcc make wget -y
安装后,您需要在系统上下载并安装最新版本的 Go。
首先,使用以下命令下载 Go 源代码:
wget https://dl.google.com/go/go1.13.linux-amd64.tar.gz
下载后,使用以下命令将下载的文件解压缩到 /usr/local 目录:
tar -C /usr/local -xzf go1.13.linux-amd64.tar.gz
接下来,您需要为 Go 设置一些环境变量。您可以通过编辑 /etc/profile 文件来设置它:
nano /etc/profile
在文件末尾添加以下行:
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin
完成后保存并关闭文件。然后,使用以下命令重新加载环境变量:
source /etc/profile
接下来,使用以下命令为 Go 创建一个目录结构:
mkdir /root/go
mkdir -p $GOPATH/src/github.com/kotakanbe
完成后,您可以继续下一步。
安装和配置 go-cve-dictionary
go-cve-dictionary 是一个用于构建 NVD(国家漏洞数据库)本地副本的工具。您可以使用 Go 包访问 NVD(国家漏洞数据库)。然后,您需要运行它并获取漏洞数据以供 Vuls 使用。因此,您需要下载 go-cve-dictionary 并将其安装到您的系统中。
首先,将目录更改为 $GOPATH/src/github.com/kotakanbe 并使用以下命令从 Git 存储库下载 go-cve-dictionary 源代码:
cd $GOPATH/src/github.com/kotakanbe
git clone https://github.com/kotakanbe/go-cve-dictionary.git
下载完成后,使用以下命令安装它:
cd go-cve-dictionary
make install
上述命令需要一些时间才能完成。安装成功完成后,您需要将 go-cve-dictionary 二进制文件复制到 /usr/local/bin 目录。您可以使用以下命令执行此操作:
cp $GOPATH/bin/go-cve-dictionary /usr/local/bin/
go-cve-dictionary 还需要日志和数据目录来存储它们的日志和数据。因此,您需要创建一个日志和数据目录。您可以使用以下命令创建它们:
mkdir /var/log/vuls
mkdir /usr/share/vuls-data
chmod 700 /var/log/vuls
接下来,使用以下命令从 NVD 获取漏洞数据并插入到 sqlite3 中:
for i in `seq 2002 $(date +"%Y")`; do go-cve-dictionary fetchnvd -dbpath /usr/share/vuls-data/cve.sqlite3 -years $i; done
上面的命令会将 NVD 数据从 2002 年下载到当年。
完成后,您可以继续下一步。
安装和配置 goval-dictionary
goval-dictionary 是一种用于构建 OVAL(开放式漏洞评估语言)本地副本的工具。 Go 包还提供了对 Ubuntu 的 OVAL 数据库的访问。因此,您需要下载 goval-dictionary 并将其安装到您的系统中。
首先,使用以下命令从 Git 存储库下载 goval-dictionary 源代码:
cd $GOPATH/src/github.com/kotakanbe
git clone https://github.com/kotakanbe/goval-dictionary.git
接下来,使用以下命令安装它:
cd goval-dictionary
make install
接下来,使用以下命令将其复制到 /usr/local/bin 目录:
cp $GOPATH/bin/goval-dictionary /usr/local/bin/
接下来,使用以下命令获取 Ubuntu 18.04 的 OVAL 数据:
goval-dictionary fetch-ubuntu -dbpath=/usr/share/vuls-data/oval.sqlite3 18
完成后,您可以继续下一步。
安装和配置 Vuls
接下来,您需要下载 Vuls 源并将其安装到您的系统中。您可以使用以下命令从 Git 存储库下载它:
mkdir -p $GOPATH/src/github.com/future-architect
cd $GOPATH/src/github.com/future-architect
git clone https://github.com/future-architect/vuls.git
接下来,将目录更改为 vuls 并使用以下命令安装它:
cd vuls
make install
安装后,您需要将 vuls 二进制文件复制到 /usr/local/bin 目录。您可以使用以下命令执行此操作:
cp $GOPATH/bin/vuls /usr/local/bin/
接下来,您需要在 /usr/share/vuls-data 目录中创建一个 vuls 配置文件:
cd /usr/share/vuls-data
nano config.toml
添加以下行:
[cveDict]
type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/cve.sqlite3"
[ovalDict]
type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/oval.sqlite3"
[servers]
[servers.localhost]
host = "localhost"
port = "local"
scanMode = [ "fast" ]
完成后保存并关闭文件。
接下来,使用以下命令测试配置文件:
vuls configtest
如果一切正常,您应该会看到以下输出:
[Sep 17 16:01:39] INFO [localhost] Validating config...
[Sep 17 16:01:39] INFO [localhost] Detecting Server/Container OS...
[Sep 17 16:01:39] INFO [localhost] Detecting OS of servers...
[Sep 17 16:01:39] INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04
[Sep 17 16:01:39] INFO [localhost] Detecting OS of static containers...
[Sep 17 16:01:39] INFO [localhost] Detecting OS of containers...
[Sep 17 16:01:39] INFO [localhost] Checking Scan Modes...
[Sep 17 16:01:39] INFO [localhost] Checking dependencies...
[Sep 17 16:01:39] INFO [localhost] Dependencies... Pass
[Sep 17 16:01:39] INFO [localhost] Checking sudo settings...
[Sep 17 16:01:39] INFO [localhost] sudo ... No need
[Sep 17 16:01:39] INFO [localhost] It can be scanned with fast scan mode even if warn or err messages are displayed due to lack of dependent packages or sudo settings in fast-root or deep scan mode
[Sep 17 16:01:39] INFO [localhost] Scannable servers are below...
localhost
完成后,您可以继续下一步。
使用 Vuls 扫描您的系统
Vuls 现已安装并配置为扫描您的本地系统。要扫描本地系统,请运行以下命令:
vuls scan
您应该看到以下输出:
[Sep 17 16:02:20] INFO [localhost] Start scanning
[Sep 17 16:02:20] INFO [localhost] config: /usr/share/vuls-data/config.toml
[Sep 17 16:02:20] INFO [localhost] Validating config...
[Sep 17 16:02:20] INFO [localhost] Detecting Server/Container OS...
[Sep 17 16:02:20] INFO [localhost] Detecting OS of servers...
[Sep 17 16:02:20] INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04
[Sep 17 16:02:20] INFO [localhost] Detecting OS of static containers...
[Sep 17 16:02:20] INFO [localhost] Detecting OS of containers...
[Sep 17 16:02:20] INFO [localhost] Checking Scan Modes...
[Sep 17 16:02:20] INFO [localhost] Detecting Platforms...
[Sep 17 16:02:21] INFO [localhost] (1/1) localhost is running on other
[Sep 17 16:02:21] INFO [localhost] Detecting IPS identifiers...
[Sep 17 16:02:21] INFO [localhost] (1/1) localhost has 0 IPS integration
[Sep 17 16:02:21] INFO [localhost] Scanning vulnerabilities...
[Sep 17 16:02:21] INFO [localhost] Scanning vulnerable OS packages...
[Sep 17 16:02:21] INFO [localhost] Scanning in fast mode
One Line Summary
================
localhost ubuntu18.04 537 installed
To view the detail, vuls tui is useful.
To send a report, run vuls report -h.
Vuls 还将它们的漏洞报告存储在日志文件中。稍后您可以使用以下命令查看它:
vuls tui
您应该看到以下屏幕:

您现在可以按 Enter 键并使用键盘箭头进行导航。
恭喜!您已经在 Ubuntu 18.04 服务器上成功安装并配置了 Vuls 漏洞扫描器。您现在可以轻松地扫描本地系统以及多个远程系统,并为每个系统生成漏洞报告。有关更多信息,您可以访问 Vuls Doc 上的 Vuls 官方文档。如果您有任何问题,请随时问我。