Segurança

Uma lista de verificação para endurecer um servidor Antimatter: o que expor, os limites e definições de privacidade a rever, 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/tcpO seu proxy HTTPS (Caddy ou nginx)Público: é assim que as pessoas acedem ao Antimatter.
8443/udp e 8443/tcpMédia de chamadasPúblico, se as pessoas usarem chamadas a partir 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 na rede privada, quando ativado. Sem início de sessão.
8074/tcp e udpGossip do clusterApenas entre nós do cluster.
5432, 9000, 8080, 8066PostgreSQL, armazenamento de ficheiros, serviço GIF, proxy de notificações pushNunca. Os ficheiros compose mantêm-nos em redes internas, sem porta publicada.

O ficheiro compose do site também executa todos os contentores com no-new-privileges, executa o Antimatter como um utilizador sem privilégios numa imagem distroless e executa o serviço GIF com um sistema de ficheiros apenas de leitura. A base de dados, o armazenamento e o serviço GIF ficam numa rede sem acesso à Internet.

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

  1. Crie a primeira conta de administrador antes de qualquer outra pessoa poder aceder ao servidor (Instalação).
  2. Sirva o Antimatter apenas através de HTTPS e defina o URL do site para o endereço https:// (Domínio e HTTPS).
  3. Mantenha .env, config.json e as chaves TLS legíveis apenas por root (ou pelo utilizador do servidor): chmod 600 .env.
  4. Decida quem pode criar contas, mantenha Ativar servidor aberto desativado, a menos que a comunidade seja pública, e ative Exigir verificação de e-mail assim que o e-mail estiver a funcionar (Início de sessão e contas).
  5. Ative a autenticação de dois fatores e exija-a, pelo menos, para as contas dos administradores, ou utilize a do seu prestador de identidade.
  6. Revise as ligações externas abaixo, em particular o servidor STUN que as Chamadas utilizam por omissão.
  7. Antes de adicionar ligações de modelos, defina a chave de encriptação da IA (AM_AI_ENCRYPTION_KEY) e guarde uma cópia à parte dos backups da base de dados (IA).
  8. Faça cópias de segurança e teste uma restauração (Cópia de segurança 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 o número de pedidos de API que cada cliente faz. Esta opção está desativada por omissão. Em Consola do sistema › Ambiente › Limitação de taxa:

DefiniçãoChavePadrão
Ativar limitação de taxaRateLimitSettings.Enabledesativado
Consultas máximas por segundoRateLimitSettings.PerSec10
Tamanho máximo de rajadaRateLimitSettings.MaxBurst100
Tamanho da loja de memóriaRateLimitSettings.MemoryStoreSize10000 clientes monitorizados
Variar limite de taxa por endereço remotoRateLimitSettings.VaryByRemoteAddrligado
Variar limite de taxa por utilizadorRateLimitSettings.VaryByUserdesativado
Variar limite de taxa por cabeçalho HTTPRateLimitSettings.VaryByHeadervazio

Atrás de um proxy, os limites por endereço só funcionam se o servidor conhecer o endereço de cada cliente (ServiceSettings.TrustedProxyIPHeader e ServiceSettings.TrustedProxyIPs, ver Endereços de clientes atrás de um proxy). Caso contrário, todos os pedidos parecem vir do proxy, e todos partilham o mesmo limite. O mesmo se aplica à filtragem por IP e aos endereços nos registos de auditoria.

As tentativas de início de sessão são limitadas separadamente: Número máximo de tentativas de início de sessão (10) bloqueia uma conta após esse número de palavras-passe incorretas.

Filtragem por IP

Consola do sistema › Configuração do site › Filtragem de IP limita o acesso ao servidor por endereço IP, com regras de permissão e de bloqueio (cada uma com um endereço ou um intervalo CIDR). Com Ativar filtragem de IP ativado, as pessoas cujo endereço corresponde a uma regra de bloqueio, ou que não correspondem a nenhuma regra de permissão quando existem regras de permissão, não conseguem aceder ao servidor. A página recusa regras que bloqueiem o seu próprio endereço. Atrás de um proxy, configure primeiro os endereços dos clientes (Endereços de clientes atrás de um proxy): caso contrário, todos os pedidos parecem vir do proxy.

Carregamentos e partilha de ficheiros

DefiniçãoLocalPadrão
Tamanho máximo do ficheiro (FileSettings.MaxFileSize)Ambiente › Armazenamento de ficheiros100 MB. Mantenha o limite de tamanho do pedido do proxy pelo menos neste valor.
Tamanho máximo da carga (bytes) (ServiceSettings.MaximumPayloadSizeBytes)Ambiente › Servidor Web300000: o maior pedido de API, exceto carregamentos de ficheiros
Permitir partilha de ficheiros (FileSettings.EnableFileAttachments)Configuração do site › Partilha e descargas de ficheirosligado
Permitir carregamento de ficheiros no telemóvel, Permitir descarregamento de ficheiros em dispositivos móveisConfiguração do site › Partilha e descargas de ficheirosligado
Ativar links públicos de ficheiros (FileSettings.EnablePublicLink)Configuração do site › Ligações públicasdesativado: quando ativado, as pessoas podem partilhar um ficheiro com uma ligação que funciona sem iniciar sessão
Ativar SVGs (ServiceSettings.EnableSVGs)Configuração do site › Mensagensdesativado num servidor novo: quando ativado, as imagens SVG são mostradas em linha

O Antimatter não analisa os ficheiros carregados em busca de malware.

Definições de privacidade

Em Consola do sistema › Configuração do site › Utilizadores e equipas:

DefiniçãoChavePadrãoO que faz
Mostrar endereço de e-mailPrivacySettings.ShowEmailAddressligadoDesligado, os endereços de e-mail dos membros ficam ocultos para todos, exceto para os administradores. Desligue esta opção em servidores públicos.
Mostrar nome completoPrivacySettings.ShowFullNameligadoDesligado, os nomes completos ficam ocultos e são mostrados os nomes de utilizador.
Ativar ignorar, bloquear e pedidos de mensagemPrivacySettings.EnableUserBlockingligadoVeja abaixo.
Permitir que os utilizadores abram canais de Mensagens diretas comTeamSettings.RestrictDirectMessageQualquer utilizador no servidor AntimatterOu Qualquer membro da equipa: apenas pessoas que partilham uma comunidade.

Ignorar, bloquear e pedidos de mensagem

Com Ativar ignorar, bloquear e pedidos de mensagem ligado (o predefinido), as pessoas podem ignorar e bloquear umas às outras, e podem escolher receber mensagens diretas de pessoas que não conhecem como pedidos de mensagem, que não as notificam até serem aceites. Isto é adequado para comunidades públicas. Num local de trabalho onde os colegas devem poder sempre contactar-se, desligue esta opção (AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING=false): nada disto é aplicado, mas as listas e as escolhas feitas pelas pessoas são mantidas e voltam a ser aplicadas se a ligar novamente.

Sessões e tokens

  • Duração das sessões e tempo limite de inatividade: veja Início de sessão e contas. Sessões mais curtas significam que um portátil ou telemóvel perdido fica com sessão iniciada por menos tempo.
  • Ativar fichas de acesso pessoal (ServiceSettings.EnableUserAccessTokens, desativado) permite às pessoas criar tokens de API; Duração máxima de validade do token de acesso pessoal (dias) limita-os. Ambos estão em Consola do sistema › Integrações › Gestão de integrações.
  • Para terminar todas as sessões de uma vez, por exemplo após uma violação suspeita: Revogar todas as sessões em Consola do sistema › Gestão de utilizadores › Utilizadores.

Ligações a serviços externos

O Antimatter não contacta nenhum serviço operado pela Mattermost, Inc. Não envia telemetria, relatórios de falhas ou verificações de atualizações de segurança, nem obtém avisos de produto. Uma configuração trazida do Mattermost que ainda nomeie um dos serviços da Mattermost (os seus serviços de notificações push, a sua loja de aplicações, os seus avisos ou o seu servidor STUN para chamadas) não faz com que o servidor os contacte: esses endereços são ignorados.

O servidor e as aplicações ligam-se a outros serviços externos apenas para as funcionalidades que os necessitam, e aos serviços que configurar:

FuncionalidadeContactosPor omissão
Chamadas: encontrar endereços públicos com STUN. O servidor e cada pessoa que entra numa chamada enviam um pedido, que mostra ao servidor STUN o seu endereço IP e porta.Servidor STUN público da Cloudflare, stun.cloudflare.comativado, enquanto a app de chamadas estiver ativa. Para o alterar, consulte Chamadas.
Pré-visualizações de ligações: o servidor obtém as páginas ligadas nas mensagens (Ativar pré-visualizações de ligações de websites, ServiceSettings.EnableLinkPreviews)os sites para as quais as pessoas ligamativado. Desative com AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false.
Notificações push para a aplicação móvelo seu próprio proxy de notificações push (Notificações push)desativado até definir o seu endereço
o mercado de apps remoto (PluginSettings.EnableRemoteMarketplace)o URL do Marketplace que configuroudesativado, e sem endereço
Emailo seu servidor SMTPo servidor predefinido é localhost
Ligações de modelos (reescrita, resumos, tradução, leitura em voz alta e aplicações), ligações de modelos próprias dos administradores da comunidadeos fornecedores de IA adicionados em Consola do sistema › IA › Ligações de modelos ou nas definições de uma comunidade (IA)nenhuma, até alguém adicionar uma
Identificação única, os serviços de IA da aplicação Agentes, transcrição de voz, tradução, webhooks de saída, e aplicações como Mail, Calendário, GitHub, GitLab ou Jiraos serviços que configurardesativado até os configurar

Por predefinição, o servidor recusa-se a ligar a endereços privados e de loopback para estes (pré-visualizações de ligações, webhooks, aplicações, ligações de modelos da comunidade), pelo que uma mensagem ou uma integração não pode ser usada para aceder à sua rede interna. Liste os hosts internos a que pode aceder em Permitir ligações internas não fiáveis a (ServiceSettings.AllowedUntrustedInternalConnections, em Consola do sistema › Ambiente › Desenvolvedor); o ficheiro compose do site lista gifs aí.

Reportar uma vulnerabilidade

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