Sicurezza

Un'elenco di controllo per rafforzare un server Antimatter: cosa esporre, i limiti e le impostazioni sulla privacy da rivedere, i servizi esterni a cui il server si connette e come segnalare un problema di sicurezza.

Cosa esporre

PortaServizioEsposizione
443/tcp, 443/udp, 80/tcpIl tuo proxy HTTPS (Caddy o nginx)Pubblica: è così che le persone raggiungono Antimatter.
8443/udp e 8443/tcpMedia delle chiamatePubblica, se le persone usano le chiamate da fuori della tua rete.
8065/tcpIl server web di AntimatterSolo per il proxy: pubblicalo su 127.0.0.1 (HTTP_PORT=127.0.0.1:8065).
8067/tcpMetricheSolo per la rete privata, se abilitato. Nessun accesso.
8074/tcp e udpGossip del clusterSolo tra i nodi del cluster.
5432, 9000, 8080, 8066PostgreSQL, archiviazione file, servizio GIF, proxy pushMai. I file compose li mantengono su reti interne senza porte pubblicate.

Il file compose del sito esegue anche ogni contenitore con no-new-privileges, esegue Antimatter come utente non privilegiato su un'immagine distroless ed esegue il servizio GIF con un file system di sola lettura. Il database, l'archiviazione e il servizio GIF si trovano su una rete senza accesso a Internet.

Elenco di controllo dopo l'installazione

  1. Crea il primo account di amministratore prima che chiunque altro possa raggiungere il server (Installazione).
  2. Fornisci Antimatter solo tramite HTTPS e imposta l'URL del sito sull'indirizzo https:// (Dominio e HTTPS).
  3. Mantieni .env, config.json e le chiavi TLS leggibili solo da root (o dall'utente del server): chmod 600 .env.
  4. Decidi chi può creare account, tieni Abilita Server Aperto disattivato a meno che la community non sia pubblica, e attiva Richiedi Email di verifica una volta che l'email funziona (Accesso e account).
  5. Attiva l'autenticazione a più fattori e imponila almeno per gli account degli amministratori, oppure usa quella del tuo provider di identità.
  6. Rivedi le connessioni esterne di seguito, in particolare il server STUN usato di default dalle Chiamate.
  7. Prima di aggiungere le connessioni ai modelli, imposta la chiave di crittografia AI (AM_AI_ENCRYPTION_KEY) e conservane una copia separata dai backup del database (AI).
  8. Effettua backup e testa un ripristino (Backup e aggiornamenti).
  9. Mantieni aggiornate le immagini o i pacchetti: le correzioni di sicurezza arrivano con le nuove versioni.

Limitazione delle richieste

Il server può limitare il numero di richieste API effettuate da ciascun client. È disattivato di default. In Console di Sistema › Ambiente › Limite di velocità:

ImpostazioneChiavePredefinito
Attiva limite di velocitàRateLimitSettings.Enabledisattivato
Numero massimo di Richieste al secondoRateLimitSettings.PerSec10
Dimensione massima richiestaRateLimitSettings.MaxBurst100
Dimensione Allocazione MemoriaRateLimitSettings.MemoryStoreSize10000 client tracciati
Varia il limite di velocità secondo l'indirizzo remotoRateLimitSettings.VaryByRemoteAddron
Modifica il limite di utilizzo per utenteRateLimitSettings.VaryByUserdisattivato
Varia il limite di velocità secondo l'header HTTPRateLimitSettings.VaryByHeadervuoto

Dietro a un proxy, i limiti basati sull'indirizzo funzionano solo se il server conosce l'indirizzo di ciascun client (ServiceSettings.TrustedProxyIPHeader e ServiceSettings.TrustedProxyIPs, vedi Indirizzi dei client dietro a un proxy). Altrimenti, tutte le richieste sembrano provenire dal proxy e tutti condividono lo stesso limite. Lo stesso vale per il filtraggio per IP e per gli indirizzi nei registri di audit.

I tentativi di accesso sono limitati separatamente: Numero massimo tentativi di login (10) blocca un account dopo questo numero di password errate.

Filtraggio per IP

Console di Sistema › Configurazione sito › Filtraggio IP limita l'accesso al server per indirizzo IP, con regole di permesso e negazione (un indirizzo o un intervallo CIDR ciascuno). Con Attiva filtraggio IP attivo, le persone il cui indirizzo corrisponde a una regola di negazione, o a nessuna regola di permesso quando sono presenti regole di permesso, non possono raggiungere il server. La pagina rifiuta le regole che bloccherebbero il proprio indirizzo. Dietro a un proxy, configura prima gli indirizzi dei client (Indirizzi client dietro un proxy): altrimenti ogni richiesta sembra provenire dal proxy.

Caricamenti e condivisione dei file

ImpostazioneDovePredefinito
Dimensione Massima File (FileSettings.MaxFileSize)Ambiente › Archiviazione file100 MB. Mantieni il limite di dimensione della richiesta del proxy almeno a questo valore.
Dimensione massima payload (byte) (ServiceSettings.MaximumPayloadSizeBytes)Ambiente › Server Web300000: la più grande richiesta API diversa dai caricamenti di file
Consenti Condivisione File (FileSettings.EnableFileAttachments)Configurazione del sito › Condivisione e download dei fileon
Permetti Caricamento File da Mobile, Permetti download dei file da mobileConfigurazione del sito › Condivisione e download dei fileon
Abilita Collegamenti Pubblici a File (FileSettings.EnablePublicLink)Configurazione del sito › Link pubblicidisabilitato: quando abilitato, le persone possono condividere un file con un link che funziona senza effettuare l'accesso
Attiva SVG (ServiceSettings.EnableSVGs)Configurazione del sito › Postdisabilitato su un nuovo server: quando abilitato, le immagini SVG vengono mostrate in linea

Antimatter non analizza i caricamenti alla ricerca di malware.

Impostazioni sulla privacy

In Console di Sistema › Configurazione sito › Utenti e squadre:

ImpostazioneChiavePredefinitoFunzione
Mostra Indirizzo EmailPrivacySettings.ShowEmailAddressonSe disattivato, gli indirizzi e-mail dei membri sono nascosti a tutti tranne che agli amministratori. Disattivalo sui server pubblici.
Mostra nome completoPrivacySettings.ShowFullNameonSe disattivato, i nomi completi sono nascosti e vengono mostrati i nomi utente.
Attiva ignorare, bloccare e richieste di messaggioPrivacySettings.EnableUserBlockingonVedi sotto.
Abilita gli utenti ad aprire canali di Messaggi Diretti conTeamSettings.RestrictDirectMessageQualsiasi utente sul server AntimatterOppure Qualsiasi membro della squadra: solo le persone che condividono una community.

Ignorare, bloccare e richieste di messaggio

Con Attiva ignorare, bloccare e richieste di messaggio attivo (impostazione predefinita), le persone possono ignorarsi e bloccarsi a vicenda e possono scegliere di ricevere i messaggi diretti da persone sconosciute come richieste di messaggio, che non inviano notifiche finché non vengono accettate. Questa opzione è adatta alle comunità pubbliche. In un ambiente di lavoro in cui i colleghi devono sempre poter contattarsi, disattivala (AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING=false): nessuna di queste restrizioni viene più applicata, ma le liste e le scelte effettuate dagli utenti vengono conservate e riattivate se la funzione viene di nuovo attivata.

Sessioni e token

  • Durata delle sessioni e timeout di inattività: vedi Accesso e account. Sessioni più brevi significano che un laptop o telefono smarrito rimane connesso per meno tempo.
  • Attiva Token di Accesso (ServiceSettings.EnableUserAccessTokens, disattivato) consente agli utenti di creare token API; Durata massima token di accesso personale (giorni) ne limita la validità. Entrambi si trovano in Console di Sistema › Integrazioni › Gestione integrazioni.
  • Per disconnettere tutti gli utenti contemporaneamente, ad esempio dopo una presunta violazione: Revoca tutte le sessioni in Console di Sistema › Gestione utenti › Utenti.

Connessioni a servizi esterni

Antimatter non contatta alcun servizio gestito da Mattermost, Inc. Non invia telemetria, report di errore o verifiche di aggiornamenti di sicurezza e non recupera avvisi di prodotto. Una configurazione importata da Mattermost che ancora indica uno dei servizi di Mattermost (i suoi servizi push, il suo marketplace di app, i suoi avvisi o il suo server STUN per le chiamate) non fa sì che il server li contatti: quegli indirizzi vengono ignorati.

Il server e le app si connettono ad altri servizi esterni solo per le funzionalità che li richiedono e ai servizi che configuri:

FunzionalitàContattiPer impostazione predefinita
Chiamate: ricerca di indirizzi pubblici tramite STUN. Il server e ogni persona che partecipa a una chiamata inviano una richiesta, che mostra al server STUN il proprio indirizzo IP e porta.Il server STUN pubblico di Cloudflare, stun.cloudflare.comattivo, quando l'app Chiamate è abilitata. Per modificarlo, consulta Chiamate.
Anteprime dei collegamenti: il server recupera le pagine collegate nei messaggi (Abilita anteprime collegamenti, ServiceSettings.EnableLinkPreviews)i siti web a cui le persone colleganoattivo. Disattivalo con AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false.
Notifiche push all'app mobileil tuo proxy push (Notifiche push)disattivato finché non ne imposti l'indirizzo
il marketplace remoto delle app (PluginSettings.EnableRemoteMarketplace)l'URL marketplace impostatodisattivato, e nessun indirizzo
E-mailil tuo server SMTPil server predefinito è localhost
Connessioni ai modelli (riscrittura, riassunti, traduzione, lettura ad alta voce e app), connessioni ai modelli personali degli amministratori della communityi provider AI aggiunti in Console di Sistema › AI › Connessioni ai modelli o nelle impostazioni di una community (AI)nessuna, finché qualcuno non ne aggiunge una
Single sign-on, i servizi AI dell'app Agenti, conversione da voce a testo e traduzione, webhook in uscita e app come Mail, Calendar, GitHub, GitLab o Jirai servizi che configuridisattivati finché non li configuri

Per impostazione predefinita, il server rifiuta di connettersi a indirizzi privati e loopback per questi (anteprime dei collegamenti, webhook, app, connessioni ai modelli della community), in modo che un messaggio o un'integrazione non possano essere utilizzati per raggiungere la rete interna. Elenca gli host interni a cui è consentito l'accesso in Consenti connessioni interne non verificate a (ServiceSettings.AllowedUntrustedInternalConnections, in Console di Sistema › Ambiente › Sviluppatore); il file compose del sito elenca gifs in questa voce.

Segnalazione di una vulnerabilità

Segnala i problemi di sicurezza in privato, come spiegato nella politica di sicurezza di Antimatter, non in problemi pubblici.