1 Controle de acesso

Visão geral

Esta seção contém as melhores práticas para configurar o controle de acesso de forma segura.

Princípio do menor privilégio

Contas de usuário, em todos os momentos, devem operar com o menor número possível de privilégios. Isso significa que as contas de usuário no frontend do Zabbix, os usuários do banco de dados ou o usuário dos processos do Zabbix server/proxy/agent devem ter apenas os privilégios essenciais para executar as funções pretendidas.

Conceder privilégios extras ao usuário 'zabbix' permitirá que ele acesse arquivos de configuração e execute operações que podem comprometer a segurança da infraestrutura.

Ao configurar os privilégios de contas de usuário, os tipos de usuário do frontend do Zabbix devem ser considerados. Observe que, embora o tipo de usuário Admin tenha menos privilégios do que o tipo de usuário Super Admin, ele ainda pode gerenciar a configuração e executar scripts personalizados.

Algumas informações estão disponíveis até mesmo para usuários sem privilégios. Por exemplo, embora Alerts → Scripts esteja disponível apenas para usuários Super Admin, os scripts também podem ser recuperados por meio da API do Zabbix. Nesse caso, limitar as permissões de scripts e excluir informações sensíveis dos scripts (por exemplo, credenciais de acesso) pode ajudar a evitar a exposição de informações sensíveis disponíveis em scripts globais.

Usuário seguro para o Zabbix agent

Por padrão, os processos do Zabbix server, proxy e agent (ou agent 2) compartilham um único usuário zabbix. Para impedir que o Zabbix agent/agent 2 (executando na mesma máquina que o server/proxy) acesse detalhes sensíveis na configuração do server/proxy (por exemplo, credenciais do banco de dados), o agent deve ser executado sob um usuário diferente:

Para o Zabbix agent:

  1. Crie um grupo e usuário seguros (por exemplo, zabbix-agent).
  2. Defina esse usuário no parâmetro User do arquivo de configuração do agent.
  3. Reinicie o agent para reduzir os privilégios para o novo usuário.

Para o Zabbix agent 2, a configuração deve ser aplicada no nível do service, porque o arquivo de configuração do agent 2 não oferece suporte ao parâmetro User. Para um exemplo, consulte ZBX-26442.

Revogar o acesso de gravação à configuração SSL (Windows)

Se você compilou o agent do Zabbix no Windows, com o OpenSSL localizado em um diretório desprotegido (por exemplo, C:\zabbix, c:\openssl-64bit, C:\OpenSSL-Win64-111-static ou C:\dev\openssl), certifique-se de revogar o acesso de gravação de usuários não ადმინისტradores a esse diretório. Caso contrário, o agent carrega as configurações SSL de um caminho que pode ser modificado por usuários sem privilégios, resultando em uma possível vulnerabilidade de segurança.

Reforçando a segurança dos componentes do Zabbix

Algumas funcionalidades podem ser desativadas para reforçar a segurança dos componentes do Zabbix:

  • A execução de scripts globais no Zabbix server pode ser desativada definindo EnableGlobalScripts=0 na configuração do server.
  • A execução de scripts globais no Zabbix proxy é desativada por padrão (pode ser ativada definindo EnableRemoteCommands=1 na configuração do proxy).
  • A execução de scripts globais nos Zabbix agents é desativada por padrão (pode ser ativada adicionando um parâmetro AllowKey=system.run[<command>,*] para cada comando permitido na configuração do agent).
  • A autenticação HTTP do usuário pode ser desativada definindo $ALLOW_HTTP_AUTH=false no arquivo de configuração do frontend (zabbix.conf.php). Observe que reinstalar o frontend (executando setup.php) removerá esse parâmetro.

Acesso a caminho UNC no Windows pelo Zabbix agent

Os agents do Zabbix no Windows seguem caminhos UNC (compartilhamentos SMB como \\server\share\file.txt) em items como vfs.file.*, vfs.dir.*, modbus.get e perf_counter*. Isso pode representar um risco de segurança em alguns contextos.

Quando o Windows é solicitado a acessar um caminho UNC, ele tenta se autenticar nesse server. Isso significa que uma solicitação maliciosa ao Zabbix agent pode expor o hash NTLM ao server do solicitante. Os usuários podem mitigar isso com os parâmetros de configuração AllowKey e DenyKey, se necessário.