O que são daemons soundd, e por que o nginx precisa do tipo sob o SELinux?

1

Curioso o que é o daemon soundd. O wiki no link diz que é o "daemon soundd" mas não estou encontrando muita informação adicional na internet.

Para obter o nginx (configurado para ligar em um soquete unix) para iniciar com systemctl, eu preciso adicionar uma regra de execução de tipo em httpd_t para soundd_port_t: tcp_socket. Mais especificamente:

 sudo systemctl status nginx.service

falha com a mensagem:

nginx.service - The nginx HTTP and reverse proxy server
  Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled)
  Active: failed (Result: exit-code) since Mon 2015-07-13 19:53:57 EDT; 7s ago
 Process: 2699 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=1/FAILURE)

Jul 13 19:53:57 localhost.localdomain nginx[2699]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jul 13 19:53:57 localhost.localdomain nginx[2699]: nginx: [emerg] bind() to 0.0.0.0:8000 failed (13: Permissi...ied)
Jul 13 19:53:57 localhost.localdomain nginx[2699]: nginx: configuration file /etc/nginx/nginx.conf test failed
Jul 13 19:53:57 localhost.localdomain systemd[1]: nginx.service: control process exited, code=exited status=1
Jul 13 19:53:57 localhost.localdomain systemd[1]: Failed to start The nginx HTTP and reverse proxy server.
Jul 13 19:53:57 localhost.localdomain systemd[1]: Unit nginx.service entered failed state.

Em seguida, faço:

sudo cat /var/log/audit/audit.log | audit2allow

e veja:

#============= httpd_t ==============
allow httpd_t soundd_port_t:tcp_socket name_bind;

Após importar este módulo, o nginx pode iniciar.

    
por Snorex 14.07.2015 / 02:16

2 respostas

4

Se você executar o seguinte comando, verá que a porta 8000 / tcp está definida no SELinux como soundd_port_t :

# semanage port -l | grep soundd
soundd_port_t                  tcp      8000, 9433, 16001

Isso não significa que o nginx tenha algo a ver com o soundd, apenas que ele está tentando se ligar à porta tcp 8000. Sugiro que você use o intervalo de portas reservado para usos nginx / proxy, http_cache_port_t :

# semanage port -l | grep http_cache_port_t
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010

Se você ouvir na porta 8080 em vez de 8000, não precisará reconstruir sua política do SELinux.

    
por 14.07.2015 / 04:14
1

Após horas de pesquisa por meio deste artigo prove ser útil para usuários do CentOS

Eu segui o artigo inteiro, mas resolvi o problema que acreditei serem os seguintes comandos:

yum install -y policycoreutils-{python,devel}
ausearch -m avc -se httpd_t | audit2allow -M nginx
semodule -i nginx.pp
usermod -a -G user nginx
chmod g+rx /home/user/

Por favor, substitua o usuário com seu usuário real para conceder permissões. O mesmo se aplica ao diretório no comando chmod.

    
por 09.08.2018 / 06:38