Segurança

Uma lista de verificação para fortalecer um servidor Antimatter: o que expor, os limites e configurações de privacidade a revisar, os serviços externos com os quais o servidor se comunica e como reportar um problema de segurança.

O que expor

PortaServiçoExposição
443/tcp, 443/udp, 80/tcpSeu proxy HTTPS (Caddy ou nginx)Público: é assim que as pessoas acessam o Antimatter.
8443/udp e 8443/tcpMídia de chamadasPúblico, se as pessoas usarem chamadas de fora da sua rede.
8065/tcpServidor web do AntimatterApenas para o proxy: publique-o em 127.0.0.1 (HTTP_PORT=127.0.0.1:8065).
8067/tcpMétricasApenas rede privada, quando habilitado. Sem login.
8074/tcp e udpGossip do clusterApenas entre os nós do cluster.
5432, 9000, 8080, 8066PostgreSQL, armazenamento de arquivos, serviço de GIF, proxy de pushNunca. Os arquivos compose mantêm-nos em redes internas, sem porta publicada.

O arquivo compose do site também executa todos os contêineres com no-new-privileges, executa o Antimatter como um usuário sem privilégios em uma imagem distroless e executa o serviço de GIF com um sistema de arquivos somente leitura. O banco de dados, o armazenamento e o serviço de GIF ficam em uma rede sem acesso à Internet.

Lista de verificação após a instalação

  1. Crie a primeira conta de administrador antes que qualquer outra pessoa possa acessar o servidor (Instalação).
  2. Sirva o Antimatter apenas via HTTPS e defina a URL do site para o endereço https:// (Domínio e HTTPS).
  3. Mantenha .env, config.json e as chaves TLS legíveis apenas pela raiz (ou pelo usuário do servidor): chmod 600 .env.
  4. Defina quem pode criar contas, mantenha Ativar Servidor Aberto desativado, a menos que a comunidade seja pública, e ative Requer Verificação de E-mail assim que o e-mail estiver funcionando (Login e contas).
  5. Ative a autenticação multifator e exija-a, pelo menos, para as contas de administradores, ou use a do seu provedor de identidade.
  6. Revise as conexões externas abaixo, em especial o servidor STUN usado por padrão nas Chamadas.
  7. Antes de adicionar conexões de modelos, defina a chave de criptografia da IA (AM_AI_ENCRYPTION_KEY) e mantenha uma cópia separada dos backups do banco de dados (IA).
  8. Faça backups e teste uma restauração (Backups e atualizações).
  9. Mantenha as imagens ou os pacotes atualizados: as correções de segurança chegam com as novas versões.

Limitação de taxa

O servidor pode limitar quantas requisições de API cada cliente faz. Essa opção está desativada por padrão. Em Console do Sistema › Ambiente › Limite de Velocidade:

ConfiguraçãoChavePadrão
Ativar Limitador de VelocidadeRateLimitSettings.Enabledesativado
Máxima Consultas por SegundoRateLimitSettings.PerSec10
Máximo Tamanho BurstRateLimitSettings.MaxBurst100
Tamanho da Memória de ArmazenamentoRateLimitSettings.MemoryStoreSize10000 clientes monitorados
Variar limite de velocidade pelo endereço remotoRateLimitSettings.VaryByRemoteAddrligado
Variar a taxa limite pelo usuárioRateLimitSettings.VaryByUserdesativado
Variar o limite de velocidade pelo cabeçalho HTTPRateLimitSettings.VaryByHeadervazio

Atrás de um proxy, os limites por endereço só funcionam se o servidor souber o endereço de cada cliente (ServiceSettings.TrustedProxyIPHeader e ServiceSettings.TrustedProxyIPs, veja Endereços de clientes atrás de um proxy). Caso contrário, todas as requisições parecem vir do proxy, e todos compartilham um único limite. O mesmo vale para a filtragem por IP e para os endereços nos logs de auditoria.

As tentativas de login são limitadas separadamente: Máxima Tentativas de Login (10) bloqueia uma conta após esse número de senhas incorretas.

Filtragem por IP

Console do Sistema › Configuração do Site › Filtragem de IP limita o acesso ao servidor por endereço de IP, com regras de permissão e bloqueio (cada uma contendo um endereço ou uma faixa CIDR). Com Ativar a filtragem de IP ativado, pessoas cujo endereço corresponda a uma regra de bloqueio, ou que não correspondam a nenhuma regra de permissão quando houver regras de permissão, não conseguem acessar o servidor. A página rejeita regras que bloqueariam o seu próprio endereço. Atrás de um proxy, configure os endereços dos clientes primeiro (Endereços de clientes atrás de um proxy): caso contrário, todas as requisições parecerão vir do proxy.

Envios e compartilhamento de arquivos

ConfiguraçãoOndePadrão
Tamanho Máximo do Arquivo (FileSettings.MaxFileSize)Ambiente › Armazenamento de Arquivos100 MB. Mantenha o limite de tamanho de requisição do proxy pelo menos nesse valor.
Tamanho máximo de payload (bytes) (ServiceSettings.MaximumPayloadSizeBytes)Ambiente › Servidor Web300000: a maior requisição de API, exceto envios de arquivos
Permitir Compartilhamento de Arquivos (FileSettings.EnableFileAttachments)Configuração do Site › Compartilhamento e Downloads de Arquivosligado
Permitir Envio de Arquivos em Dispositivos Móveis, Permitir Download de Arquivos em Dispositivos MóveisConfiguração do Site › Compartilhamento e Downloads de Arquivosligado
Ativar Links para Arquivos Públicos (FileSettings.EnablePublicLink)Configuração do Site › Links Públicosdesativado: quando ativado, as pessoas podem compartilhar um arquivo com um link que funciona sem login
Ativar SVGs (ServiceSettings.EnableSVGs)Configuração do Site › Publicaçõesdesativado em um novo servidor: quando ativado, imagens SVG são exibidas inline

O Antimatter não escaneia envios em busca de malware.

Configurações de Privacidade

Em Console do Sistema › Configuração do Site › Usuários e Equipes:

ConfiguraçãoChavePadrãoO que faz
Mostrar Endereços de E-mailPrivacySettings.ShowEmailAddressligadoDesativado, os endereços de e-mail dos membros ficam ocultos para todos, exceto administradores. Desative em servidores públicos.
Mostrar nome completoPrivacySettings.ShowFullNameligadoDesativado, os nomes completos ficam ocultos e os nomes de usuário são exibidos em vez deles.
Ativar ignorar, bloquear e solicitações de mensagemPrivacySettings.EnableUserBlockingligadoVeja abaixo.
Permitir que os usuários abram o canal de Mensagens Diretas comTeamSettings.RestrictDirectMessageQualquer usuário no servidor AntimatterOu Qualquer membro da equipe: apenas pessoas que compartilham uma comunidade.

Ignorar, bloquear e solicitações de mensagem

Com Ativar ignorar, bloquear e solicitações de mensagem ativado (padrão), as pessoas podem ignorar e bloquear umas às outras e podem escolher receber mensagens diretas de pessoas desconhecidas como solicitações de mensagem, que não as notificam até serem aceitas. Isso é adequado para comunidades públicas. Em um ambiente de trabalho onde os colegas devem sempre poder se comunicar, desative (AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING=false): nenhuma dessas regras é mais aplicada, mas as listas e escolhas feitas pelas pessoas são mantidas e voltam a valer se você reativar a opção.

Sessões e tokens

  • Duração das sessões e tempo limite de inatividade: veja Login e contas. Sessões mais curtas significam que um laptop ou celular perdido permanece conectado por menos tempo.
  • Ativar Tokens de Acesso Individual (ServiceSettings.EnableUserAccessTokens, desativado) permite que as pessoas criem tokens de API; Tempo de vida máximo do token de acesso pessoal (dias) limita esses tokens. Ambos estão em Console do Sistema › Integrações › Gerenciamento de Integração.
  • Para deslogar todos de uma vez, por exemplo, após uma violação suspeita: Revogar Todas Sessões em Console do Sistema › Gestão de Usuários › Usuários.

Conexões com serviços externos

O Antimatter não contata nenhum serviço operado pela Mattermost, Inc. Ele não envia telemetria, relatórios de erro ou verificações de atualização de segurança, nem busca avisos de produto. Uma configuração trazida do Mattermost que ainda nomeia um dos serviços da Mattermost (seus serviços de push, seu mercado de aplicativos, seus avisos ou seu servidor STUN para chamadas) não faz o servidor contatá-los: esses endereços são ignorados.

O servidor e os aplicativos se conectam a outros serviços externos apenas para os recursos que os necessitam, e aos serviços que você configura:

RecursoContatosPor padrão
Chamadas: descoberta de endereços públicos com STUN. O servidor e cada pessoa que entra em uma chamada enviam uma requisição, que mostra ao servidor STUN seu endereço IP e porta.Servidor STUN público da Cloudflare, stun.cloudflare.comativado, enquanto o aplicativo de Chamadas estiver habilitado. Para alterá-lo, consulte Chamadas.
Visualizações de links: o servidor busca as páginas vinculadas nas mensagens (Ativar Visualizações de Links, ServiceSettings.EnableLinkPreviews)os sites para os quais as pessoas enviam linksativado. Desative com AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false.
Notificações push para o aplicativo móvelseu próprio proxy de push (Notificações push)desativado até que você defina seu endereço
O marketplace de aplicativos remotos (PluginSettings.EnableRemoteMarketplace)o URL do Marketplace que você definirdesativado, e sem endereço
E-mailseu servidor SMTPo servidor padrão é localhost
Conexões de modelos (reescrita, resumos, tradução, leitura em voz alta e aplicativos), conexões de modelos dos próprios administradores da comunidadeos provedores de IA adicionados em Console do Sistema › IA › Conexões de modelos ou nas configurações de uma comunidade (IA)nenhuma, até que alguém adicione uma
Login único, os serviços de IA do aplicativo Agentes, conversão de fala em texto e tradução, webhooks de saída, e aplicativos como Mail, Calendário, GitHub, GitLab ou Jiraos serviços que você configurardesativado até que você os configure

Por padrão, o servidor se recusa a se conectar a endereços privados e de loopback para estes (pré-visualizações de links, webhooks, aplicativos, conexões de modelos da comunidade), para que uma mensagem ou uma integração não possa ser usada para acessar sua rede interna. Liste os hosts internos aos quais ele pode se conectar em Permitir conexão interna não confiável (ServiceSettings.AllowedUntrustedInternalConnections, em Console do Sistema › Ambiente › Desenvolvedor); o arquivo de composição do site lista gifs lá.

Relatando uma vulnerabilidade

Relate problemas de segurança de forma privada, conforme explicado na política de segurança do Antimatter, e não em problemas públicos.