Vuls是针对Linux系统的安全扫描工具,可以扫描各种系统安全漏洞并给出修订建议。
安装依赖组件
yum -y install sqlite git gc wget gcc
下载安装golang
wget https://storage.googleapis.com/golang/go1.10.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.10.linux-amd64.tar.gz
设置go主目录和环境变量
mkdir $HOME/go
sudo sh -c 'cat << "EOF" > /etc/profile.d/goenv.sh
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
EOF'
source /etc/profile.d/goenv.sh
创建日志目录
sudo mkdir /var/log/vuls
以下步骤需要连接google服务器,如果不能直接访问google服务器,需要提前设置
http_proxy和https_proxy
export http_proxy=x.x.x.x:abcd
export https_proxy=x.x.x.x:abcd
下载安装go-cve-dictionary
go get github.com/kotakanbe/go-cve-dictionary
如果go-cve-dictionary没有自动编译安装,需要手动编译安装
cd $GOPATH/src/github.com/kotakanbe/go-cve-dictionary
make install
下载安装漏洞数据库
cd $HOME
for i in `seq 2002 $(date +"%Y")`; do go-cve-dictionary fetchnvd -years $i; done
这个步骤时间较长,大约需要几十分钟,依赖于网速。
下载安装goval-dictionary
go get github.com/kotakanbe/goval-dictionary
如果goval-dictionary没有自动编译安装,需要手动编译安装,完成在$GOPATH/bin目录可以看到goval-dictionary可执行文件
cd $GOPATH/src/github.com/kotakanbe/goval-dictionary
make install
获取CentOS数据库
goval-dictionary fetch-redhat 7
下载安装Vuls
go get github.com/future-architect/vuls
如果vuls没有自动编译安装,需要手动编译安装,完成在$GOPATH/bin目录可以看到vuls可执行文件
cd $GOPATH/src/github.com/future-architect/vuls
make install
配置ssh免密码登录
扫描时需要从扫描服务器上能通过ssh免密码登录到被扫描服务器。ssh免密码配置需要在这两台服务器上同时配置。将每台服务器各自的公钥发送到对方服务器上。
- 生成RSA密钥对。此步骤不需要特殊指定,按三次回车确认即可完成。
ssh-keygen -t rsa
- 拷贝密钥到对方服务器
cd $HOME/.ssh/
ssh-copy-id -i id_rsa.pub x.x.x.x
在$HOME目录创建vuls扫描配置文件config.toml,文件内容如下
用户以root为例
[servers]
[servers.x-x-x-x]
host = "x.x.x.x"
port = "22"
user = "root"
keyPath = "/root/.ssh/id_rsa"
[servers.y.y.y.y]
host = "y.y.y.y"
port = "22"
user = "root"
keyPath = "/root/.ssh/id_rsa"
启动go-cve-dictionary服务
go-cve-dictionary server
vuls配置测试
vuls configtest -config=/root/config.toml
vuls 扫描
vuls scan
查看完整报告
vuls report -format-full-text