CentOS7 Redis 上的 OpenVAS 无法启动

CentOS7 Redis 上的 OpenVAS 无法启动

我正在尝试按照下面的文章让 OpenVAS 运行。

https://www.atlantic.net/community/howto/install-openvas-vulnerability-scanner-centos-7

但是它不起作用,当我运行 openvas-check-setup 时出现下面这个错误,当我检查 /var/log/redis/redis.log 时它显示“打开 Unix 套接字:绑定:权限被拒绝”

openvas-check-setup 2.3.7   Test completeness and readiness of OpenVAS-8   (add '--v6' or '--v7' or '--v9'    if you want to check for another OpenVAS version)

  Please report us any non-detected problems and   help us to improve this check routine:   http://lists.wald.intevation.org/mailman/listinfo/openvas-discuss

  Send us the log-file (/tmp/openvas-check-setup.log) to help analyze the problem.

  Use the parameter --server to skip checks for client tools   like GSD and OpenVAS-CLI.

Step 1: Checking OpenVAS Scanner ...
        OK: OpenVAS Scanner is present in version 5.0.7.
        OK: OpenVAS Scanner CA Certificate is present as /var/lib/openvas/CA/cacert.pem.
        OK: redis-server is present in version v=3.0.7.
        OK: scanner (kb_location setting) is configured properly using the redis-server socket: /tmp/redis.sock
        ERROR: redis-server is not running or not listening on socket: /tmp/redis.sock
        FIX: You should start the redis-server or configure it to listen on socket: /tmp/redis.sock

 ERROR: Your OpenVAS-8 installation is not yet complete!

答案1

恭喜,您找到了一个糟糕的互联网教程。看来该教程的作者从未亲自测试过它是否有效,因为它不能按原样工作。更糟糕的是,该教程似乎实际上是从官方 OpenVAS 网站链接的,这会误导和挫败很多人。

因此,redis 无法启动的原因是 SELinux 拒绝 redis-server 写入/tmp。您可以在审计日志中看到这一点:

type=AVC msg=audit(1482284806.464:112): avc:  denied  { write } for  pid=1275 comm="redis-server" name="tmp" dev="dm-0" ino=33574981 scontext=system_u:system_r:redis_t:s0 tcontext=system_u:object_r:tmp_t:s0 tclass=dir
type=SYSCALL msg=audit(1482284806.464:112): arch=c000003e syscall=49 success=no exit=-13 a0=5 a1=7ffe55938670 a2=6e a3=7ffe55938614 items=0 ppid=1 pid=1275 auid=4294967295 uid=997 gid=995 euid=997 suid=997 fsuid=997 egid=995 sgid=995 fsgid=995 tty=(none) ses=4294967295 comm="redis-server" exe="/usr/bin/redis-server" subj=system_u:system_r:redis_t:s0 key=(null)

/tmp套接字文件应该位于 中,而不是中/run/redis,例如:

unixsocket /run/redis/redis.sock

这使得它能够在 SELinux 施加的约束内运行。

编辑时/etc/redis.conf,请务必检查文件底部是否有第二 unixsocket添加的指令openvas-setup并将其删除为多余的。

当然,通常在启用 SELinux 的系统上,redis 应配置为监听 localhost 上的 TCP 端口,而不是使用套接字,因为其他守护进程可能不允许通过套接字与 redis 通信,而只能通过 TCP 通信。这实际上不是问题,因为 OpenVAS 尚未受 SELinux 限制,但它也不支持通过 TCP 联系 redis。结果是,此 redis 安装不能与 OpenVAS 的本地副本以外的任何其他服务共享或重用。


但是本教程的错误不仅仅如此!

第二件事是,OpenVAS 从未配置为实际使用 redis。它依赖于默认编译,正如我们所见,这是错误的。要解决这个问题需要设置配置指令在中/etc/openvas/openvassd.conf,本教程从未提及的一些内容:

kb_location = /run/redis/redis.sock

第三问题是它使用了一个名为 atomic 的第三方存储库,它提供的软件包与 EPEL 等普通存储库中的软件包相冲突 - EPEL 已经提供了 redis 和 OpenVAS!目前还不清楚 atomic 为什么要这样做,也不清楚本教程为什么一开始就使用 atomic。使用有冲突软件包的存储库可能会很危险。如果继续使用 atomic 软件包,您需要绝对确定这台(虚拟)机器从未用于任何事物除其他外,无论出于何种原因。

最后,安装完成后,Web 界面实际上无法访问,因为防火墙中未打开指定端口。您还必须自己执行此操作。

firewall-cmd --add-port=9392/tcp    # though this opens it to the world
firewall-cmd --runtime-to-permanent

一旦你完成了,openvas-check-setup应该说,除其他事项外......

        OK: scanner (kb_location setting) is configured properly using the redis-server socket: /run/redis/redis.sock
        OK: redis-server is running and listening on socket: /run/redis/redis.sock.
        OK: redis-server configuration is OK and redis-server is running.

讽刺的是,它还会说:

        ERROR: SELinux is enabled. For a working OpenVAS installation you need to disable it.
        FIX: Please disable SELinux.

这似乎是完全无端和不必要的,因为 OpenVAS 无论如何都不会受到 SELinux 的限制。

答案2

我遇到了同样的问题。问题是在 Kali Linux 上,OpenVas 默认没有文件:/etc/openvas/openvassd.conf。

因此我创建了这个文件并输入了下面的内容来覆盖 Redis 服务器的默认值。kb_location=/var/run/redis/redis.sock

这解决了我的问题。我已在此网站上撰写了完整的教程: https://waqasahmedkhan.com/openvas-bug-in-kali-linux-2017-3-5/

答案3

我在 Kali Linux 上安装 OpenVAS 时遇到了同样的问题。在此处输入图片描述

执行所有命令

我的解决方案:

 1. apt-get purge --auto-remove redis*

 2. apt-get install openvas

 3. apt-get install redis

 4. In these files /etc/redis/redis.conf && /etc/redis/redis-openvas.conf, you change et uncheck these parameters : 

    bind 127.0.0.0.1 ::1 => bind 0.0.0.0

    unixsocket run/redis.sock (OR) unixsocket /var/run/redis-openvas/redis-server.sock  => unixsocket /var/run/redis/redis.sock

    unixsocketperm 700 => unixsocketperm 770

 5. In this file /etc/openvas/openvas.conf, you change this parameter :
    
    db_address = /var/run/redis-openvas/redis-server.sock => db_address = /var/run/redis/redis.sock

 6. systemctl daemon-reload

 7. systemctl restart redis-server.service

 8. gvm-setup

 9. gvm-check-setup

它对我有用,祝你好运!

在此处输入图片描述

相关内容