基本介绍
OpenVAS是Greenbone旗下,一个功能齐全的漏洞扫描程序。其能力 包括未经身份验证和经过身份验证的测试,各种高级 以及低级互联网和工业协议,性能调优 用于大规模扫描和强大的内部编程语言 实施任何类型的漏洞测试。
Feed比较
Greenbone生产和维护两个feeds:Greenbone Enterprise Feed和Greenbone社区Feed。它们提供用于检测现有漏洞的测试以及有关其潜在威胁的信息。
通过漏洞测试,扫描程序会检查 IT 网络中的所有系统(例如服务器、防火墙或交换机)是否存在已知和潜在的安全漏洞,从而提供对现有漏洞的新见解。检查识别出的系统的各种属性:操作系统、开放端口、已安装的软件、用户帐户、文件系统结构、系统配置等等。
官方网站:www.openvas.org
安装配置
当OpenVAS项目启动时,它只包含一个用于扫描的引擎。 漏洞。
Greenbone公司成立,开始领导 开发OpenVAS,添加多个软件组件并转向OpenVAS 融入漏洞管理解决方案,同时保持免费价值 软件。该漏洞管理解决方案后来被命名为Greenbone漏洞管理(GVM)。因此,在OpenVAS 9发布之后,版本被命名为 GVM。
了解架构
OpenVAS是一个客户端/服务器架构,它由几个组件组成。在服务器上(仅限于Linux),用户需要四个程序包:
OpenVAS-Server: 实现基本的扫描功能
OpenVAS-Plugins: 一套网络漏洞测试程序
OpenVAS-LibNASL 和OpenVAS-Libraries: 实现服务器功能所需要的组件
而在客户端上(Windows或Linux均可),用户仅需要OpenVAS客户端。
硬件要求
最低:
- CPU内核数:2
- 内存:4GB
- 硬盘:20GB 可用空间
推荐:
- CPU内核数:4
- 内存:8GB
- 硬盘:60GB 可用空间
开始安装
安装环境以kali linux为例,支持debian/ubuntu/fedora/centos等系统。
安装可以选择源码编译、Docker等,具体可以点击跳转官网文档。
先决条件
社区版提供的服务应以专用用户身份运行。
所以需要一个相同名称的用户和组。
debian/ubuntu
创建 gvm 系统用户和组
sudo useradd -r -M -U -G sudo -s /usr/sbin/nologin gvm
fedora/centos
创建 gvm 系统用户和组
sudo useradd -r -M -U -G wheel -s /usr/sbin/nologin gvm
要允许当前用户运行 gvmd,必须将他添加到 gvm 组。
要使组更改生效,请注销并再次登录或使用 su。
sudo usermod -aG gvm $USER
su $USER
源更换
安装之前将kali的源换成国内的源,阿里或中科大的源
vim /etc/apt/sources.list 或 leafpad /etc/apt/sources.list
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
kali升级
sudo apt-get update // 软件库更新
sudo apt-get upgrade // 软件升级
sudo apt-get dist-upgrade // 升级系统
sudo apt-get clean // 删除包缓存
在线安装
sudo apt-get install gvm -y #安装命令 不多说
配置
gvm-setup #初始化环境。联网下载扫描脚本等 不能科学上网的话 时间很长 一晚上
#成功以后会提示有登录密码 记得保存。 账号默认 admin
#报错一般都是postgresql.service 看看有没有启动。5432端口是否在监听状态。
#具体报错看报错信息,先排除 postgresql 的问题
检查
sudo gvm-check-setup #检查openvas 安装是否成功
如果成功
默认监听在回环地址 9392 端口 https://IP地址:9392
服务启停
gvm-start #启动openvas
gvm-stop #停止openvas
gvm-check-setup #升级特征库 第一次安装,不用升级。后期使用记得经常升级特征库。
基本配置
修改密码
sudo runuser -u _gvm -- gvmd --user=admin --new-password=password #修改密码
sudo runuser -u _gvm -- gvmd --create-user=admin2 --new-password=123456 #创建新的管理员
启用外部监听
systemctl stop gvmd.service \ gvm-stop # 先停止在修改
vim /lib/systemd/system/greenbone-security-assistant.service
[Unit]
Description=Greenbone Security Assistant (gsad)
Documentation=man:gsad(8) https://www.greenbone.net
After=network.target gvmd.service
Wants=gvmd.service
[Service]
Type=forking
User=_gvm
Group=_gvm
ExecStart=/usr/sbin/gsad --listen=0.0.0.0 --port=9392
Restart=always
TimeoutStopSec=10
[Install]
WantedBy=multi-user.target
Alias=gsad.service
systemctl start gvmd.service
启动服务并加载所有源数据后, Greenbone安全助手Web界面 - GSA - 可以在浏览器中打开。
xdg-open "http://127.0.0.1:9392" 2>/dev/null >/dev/null &
最后,通过浏览器将显示GSA的登录页面,输入之前创建的账号密码完成登陆,可以开始漏洞扫描啦。
设置和启动脚本
将安装程序和启动脚本下载到当前工作目录
curl -f -O https://greenbone.github.io/docs/latest/_static/setup-and-start-greenbone-community-edition.sh && chmod u+x setup-and-start-greenbone-community-edition.sh
要执行脚本,需要运行以下命令
./setup-and-start-greenbone-community-edition.sh
故障排除
VT 是最新的,但在 Web 界面上不可见
重启扫描程序以保障加载新的VT
docker compose -f $DOWNLOAD_DIR/docker-compose.yml -p greenbone-community-edition \
restart ospd-openvas
端口列表、扫描配置、报告格式是最新的,但在 Web 界面上不可见
强制加载格式、扫描配置和端口列表
docker compose -f $DOWNLOAD_DIR/docker-compose.yml -p greenbone-community-edition \
exec -u gvmd gvmd gvmd --rebuild-gvmd-data=all
启动容器时出错pg-gvm
启动容器时,会显示一些错误。例如
.pg-gvmcreateuser: error: creation of new role failed: ERROR: role "gvmd" already existsERROR: extension "uuid-ossp" already exists
这些错误代码表示,数据库配置错误。如果数据库是 已初始化,所有表、用户、权限和扩展都存在。目前,无法消除这些错误,但是 它们可以安全地忽略。
osp_scanner_feed_version: failed to connect to /run/ospd/ospd-openvas.sock
如果日志包含此错误,则无法连接到扫描程序。很可能没有运行。尝试 使用以下命令重新启动相应的容器:
gvmdgvmdospd-openvasospd-openvas
重新启动 ospd-openvas 扫描程序
docker compose -f $DOWNLOAD_DIR/docker-compose.yml -p greenbone-community-edition \
restart ospd-openvas
如果仍然遇到错误,则需要查看日志。
显示 ospd-openvas 扫描程序的日志消息
docker compose -f $DOWNLOAD_DIR/docker-compose.yml -p greenbone-community-edition \
log -f ospd-openvas
无法登录到 Web 界面
必须重新启动 gvmd 容器。很有可能 在访问PostgreSQL数据库时遇到一些问题。
Failed to connect to server at /run/gvmd/gvmd.sock: Connection refused
重新启动 gvmd
docker compose -f $DOWNLOAD_DIR/docker-compose.yml -p greenbone-community-edition \
restart gvmd