debian9 安装 openvas9

debian 中虽然有openvas的软件包,但是在安装完成以后,实际上不能完成openvas-setup安装。经过几天的搜索、琢磨,终于功夫不负有心人,现将openvas安装中需要修改的配置进行总结。

问题描述

在执行openvas-setup后,脚本将在NVT下载结束时显示错误,如下所示。

(openvassd:2272): lib kb_redis-CRITICAL : get_redis_ctx: redis connection error: No such file or directory
(openvassd:2272): lib kb_redis-CRITICAL
: redis_new: cannot access redis at ‘/tmp/redis.sock’
(openvassd:2272): lib kb_redis-CRITICAL **: get_redis_ctx: redis connection error: No such file or directory
openvassd: no process found

问题根源

经过google搜索等查找渠道,我找到以下几个问题

  1. openvas 的 openvassd 进程调用的kb_location有误
  2. openvas-scanner 在配置文件 /etc/default/openvas-scanner 中的SCANNER_SOCKET字段配置有误
  3. openvas-scanner 的systemd服务文件中ExecStart=/usr/sbin/openvassd –unix-socket=字段配置有误

第一个问题的原因是因为openvassd使用unix-socket与redis通信,然后默认调用/tmp/redis.sock,但是/tmp/redis.sock由于systemd的原因,需要关闭PrivateTmp才能行。至于PrivateTmp,看这个

第二个问题的原因是debian9中openvas软件包的默认配置就有问题。默认配置文件 /etc/default/openvas-scanner 中的SCANNER_SOCKET=/tmp/redis.sock,这是错误的配置。

第三个问题的原因是/lib/systemd/system/openvas-scanner.service文件中ExecStart=/usr/sbin/openvassd –unix-socket=/tmp/redis.sock是一个错误的socket指向。

解决方案

  1. openvas 的 openvassd 进程调用的kb_location有误

    修改/etc/openvas/openvassd.conf文件内容如下:(文件不存在请自己创建)

    kb_location=/var/run/redis/redis.sock

  2. openvas-scanner 在配置文件 /etc/default/openvas-scanner 中的SCANNER_SOCKET字段配置有误

    需要修改内容如下

    SCANNER_SOCKET=/var/run/openvassd.sock

  3. openvas-scanner 的systemd服务文件中ExecStart=/usr/sbin/openvassd –unix-socket=字段配置有误

    需要修改内容如下

    ExecStart=/usr/sbin/openvassd –unix-socket=/var/run/openvassd.sock