Назад | Перейти на главную страницу

OpenVAS на CentOS7 Redis не запускается

Я пытаюсь заставить OpenVAS работать в соответствии со статьей ниже.

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

Однако это не работает, когда я запускаю openvas-check-setup, я получаю эту ошибку ниже, и когда я проверяю /var/log/redis/redis.log, он говорит: «Открытие сокета Unix: bind: Permission denied»

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!

Поздравляю, вы нашли плохой Интернет-учебник. Похоже, что автор этого учебника никогда не тестировал его сам, чтобы убедиться, что он работает, потому что он не работает как есть. Хуже того, похоже, что на это руководство на самом деле есть ссылка с официального веб-сайта OpenVAS, что введет в заблуждение и расстроит множество людей.

Итак, причина, по которой redis не запускается, заключается в том, что SELinux запрещает redis-серверу писать на /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 должен быть настроен на прослушивание TCP-порта на локальном хосте, а не на использование сокета, поскольку другим демонам может быть запрещено связываться с redis через сокет, а только через TCP. На самом деле это не проблема, поскольку OpenVAS (пока) не ограничен SELinux, но также не поддерживает связь с redis через TCP. Результатом этого является то, что эта установка Redis не может использоваться совместно или повторно с какими-либо другими службами, кроме локальной копии OpenVAS.


Но в этом уроке есть еще кое-что неправильное!

Во-вторых, нигде OpenVAS не настраивается для реального использования redis. Он полагается на скомпилированный по умолчанию, что, как мы видели, неверно. Чтобы исправить это, требуется установка директивы конфигурации в /etc/openvas/openvassd.conf, то, о чем в руководстве никогда не упоминается:

kb_location = /run/redis/redis.sock

В третий дело в том, что он использует стороннее репо под названием atomic, которое предоставляет пакеты, конфликтующие с пакетами в обычных репозиториях, таких как EPEL, который уже предоставляет redis и OpenVAS! Непонятно, почему atomic сделали это, и почему в этом руководстве для начала используется atomic. Использование репозиториев с конфликтующими пакетами потенциально опасно. Если вы продолжите использовать атомарные пакеты, вы должны быть абсолютно уверены, что эта (виртуальная) машина никогда не используется для что-нибудь иначе по любой причине.

Наконец, как только вы его установите, веб-интерфейс фактически станет недоступен, потому что указанный порт не открыт в брандмауэре. Вы также должны сделать это сами.

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.

Я столкнулся с той же проблемой. Проблема заключалась в том, что в Kali Linux OpenVas по умолчанию не имеет файла: /etc/openvas/openvassd.conf.

Итак, я создал этот файл и ввел содержимое ниже, чтобы перезаписать значение по умолчанию для Redis Server. kb_location = / var / run / redis / redis.sock

Это устранило мою проблему. Я написал полное руководство на этом сайте: https://waqasahmedkhan.com/openvas-bug-in-kali-linux-2017-3-5/