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 AlertsScripts 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, veja 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.