openvas架构图
说明:
gsad 是提供给用户配置任务资源的UI接口的程序。
gvmd 是管理器,主要功能是管理任务和各种资源,当启动扫描任务时,向openvassd发送 扫描请求,接受openvassd的扫描结果。
openvassd 是扫描器,扫描核心,执行扫描任务,执行nasl脚本。
openvas 是基于C/S 和B/S架构工作。
B/S模式 通过浏览器登录gsad ,gsad连接gvmd,使用openvas服务的。安装 gsad gvmd openvassd即可。
C/S模式 是通过命令行 连接gvmd, 使用openvas服务的。需要安装 gvm-cli gvmd openvassd 。
命令行的使用要求高一点,需要了解gmp协议和使用的命令,适合老手。
对于新手来说,建议B/S模式。
因为官网自带的安装包,一种连接方式是加密的,一种是sock文件方式,都不能很好的抓包分析协议。
我改了一下代码,gvmd使用 监听 socket 端口方式,但不加密。并且增加了日志。
gsad 与 gvmd 之前的协议,和gvmd 与openvassd之前的协议 可以通过日志和抓包看到。
代码路径如下 https://github.com/songnana, 有兴趣的可以看一下。
运行openvas
配置openvas
查看配置openvassd -s
1.同步feed
greenbone-nvt-sync 同步feed,花费大约20分钟
2.运行redis,openvas已经安装了redis的配置文件示例
redis-server /usr/share/doc/openvas-scanner/redis_config_examples/redis_4_0.conf #用作特征的缓存
3.运行openvas
openvassd
建立/usr/var/run/openvassd.sock.
更新配置或者更新feed,需要重新加载配置,发送SIGHUP信号
kill -1 openvassd
日志在/usr/var/log/gvm/openvassd.log
日志完全被/usr/etc/openvas/openvassd_log.conf控制。
配置文件/usr/etc/openvas/openvassd.conf
4.运行gvmd
有inet socket 和unix socket两种运行方式,分别表示监听的socket方式。
gvmd --listen=127.0.0.1