OpenVAS no CentOS7 Redis não será iniciado

1

Estou tentando fazer o OpenVAS funcionar de acordo com o artigo abaixo.

link

No entanto, não está funcionando, quando executo o openvas-check-setup eu recebo este erro abaixo e quando eu verifico /var/log/redis/redis.log ele diz "Abrindo o socket 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!
    
por Thorin 21.12.2016 / 02:19

2 respostas

4

Parabéns, você encontrou um mau tutorial na Internet. Parece que o autor desse tutorial nunca o testou para ver se funciona, porque não funciona como está. Pior, parece que esse tutorial está realmente ligado ao site oficial do OpenVAS, que vai enganar e frustrar muita gente.

Portanto, o motivo pelo qual o redis está falhando é porque o SELinux impede que o redis-server grave em /tmp . Você pode ver isso nos seus registros de auditoria:

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)

Em vez de /tmp , o arquivo de soquete deve estar localizado em /run/redis , por exemplo:

unixsocket /run/redis/redis.sock

Isso permite que ele opere dentro dos limites que o SELinux impõe.

Ao editar /etc/redis.conf , verifique a parte inferior do arquivo em busca de uma diretiva second unixsocket que tenha sido adicionada por openvas-setup e a remova como redundante.

Naturalmente, geralmente em sistemas habilitados para SELinux, os redis devem ser configurados para escutar uma porta TCP em localhost, em vez de usar um soquete, já que outros daemons podem não se comunicar com redis via soquete, mas somente via TCP . Isso não é realmente um problema aqui, já que o OpenVAS não é (ainda) confinado ao SELinux, mas também não suporta entrar em contato com o redis via TCP. O resultado disso é que essa instalação do redis não pode ser compartilhada ou reutilizada com nenhum outro serviço além da cópia local do OpenVAS.

Mas há mais do que errado com este tutorial!

A segunda coisa é que em nenhum lugar o OpenVAS é configurado para realmente usar redis. Depende do compilado em default, que, como vimos, está errado. Para corrigir isso, é necessário definir uma diretiva de configuração em /etc/openvas/openvassd.conf , algo que o tutorial nunca menciona:

kb_location = /run/redis/redis.sock

A coisa third é que ele usa um repo de terceiros chamado atomic, que fornece pacotes que entram em conflito com pacotes em repos normais, como o EPEL - que já fornece redis e OpenVAS! Não está claro por que a atomic fez isso, nem por que este tutorial usa o atomic para começar. Usar repositórios com pacotes conflitantes é potencialmente perigoso. Se você continuar a usar pacotes atômicos, você precisará ter certeza absoluta de que essa máquina (virtual) nunca é usada para qualquer outra outra coisa, por qualquer motivo.

Por fim, depois de instalá-lo, a interface da Web não é alcançável porque a porta indicada não está aberta no firewall. Você também tem que fazer isso sozinho.

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

Quando terminar, openvas-check-setup dirá, entre outras coisas ...

        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.

A ironia é que também dirá:

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

O que parece ser completamente gratuito e desnecessário, já que o OpenVAS não é executado confinado pelo SELinux.

    
por 21.12.2016 / 03:12
1

Eu encontrei o mesmo problema. O problema é que no Kali Linux o OpenVas não tem arquivo: /etc/openvas/openvassd.conf por padrão.

Então eu crio este arquivo e entrei abaixo do conteúdo para sobrescrever o valor padrão do Redis Server. kb_location = / var / run / redis / redis.sock

Isso corrigiu meu problema. Eu escrevi tutorial completo neste site: link

    
por 02.01.2018 / 06:31