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
| Porta | Servizio | Esposizione |
|---|---|---|
| 443/tcp, 443/udp, 80/tcp | Il tuo proxy HTTPS (Caddy o nginx) | Pubblica: è così che le persone raggiungono Antimatter. |
| 8443/udp e 8443/tcp | Media delle chiamate | Pubblica, se le persone usano le chiamate da fuori della tua rete. |
| 8065/tcp | Il server web di Antimatter | Solo per il proxy: pubblicalo su 127.0.0.1 (HTTP_PORT=127.0.0.1:8065). |
| 8067/tcp | Metriche | Solo per la rete privata, se abilitato. Nessun accesso. |
| 8074/tcp e udp | Gossip del cluster | Solo tra i nodi del cluster. |
| 5432, 9000, 8080, 8066 | PostgreSQL, archiviazione file, servizio GIF, proxy push | Mai. 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
- Crea il primo account di amministratore prima che chiunque altro possa raggiungere il server (Installazione).
- Fornisci Antimatter solo tramite HTTPS e imposta l'URL del sito sull'indirizzo
https://(Dominio e HTTPS). - Mantieni
.env,config.jsone le chiavi TLS leggibili solo da root (o dall'utente del server):chmod 600 .env. - 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).
- Attiva l'autenticazione a più fattori e imponila almeno per gli account degli amministratori, oppure usa quella del tuo provider di identità.
- Rivedi le connessioni esterne di seguito, in particolare il server STUN usato di default dalle Chiamate.
- 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). - Effettua backup e testa un ripristino (Backup e aggiornamenti).
- 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à:
| Impostazione | Chiave | Predefinito |
|---|---|---|
| Attiva limite di velocità | RateLimitSettings.Enable | disattivato |
| Numero massimo di Richieste al secondo | RateLimitSettings.PerSec | 10 |
| Dimensione massima richiesta | RateLimitSettings.MaxBurst | 100 |
| Dimensione Allocazione Memoria | RateLimitSettings.MemoryStoreSize | 10000 client tracciati |
| Varia il limite di velocità secondo l'indirizzo remoto | RateLimitSettings.VaryByRemoteAddr | on |
| Modifica il limite di utilizzo per utente | RateLimitSettings.VaryByUser | disattivato |
| Varia il limite di velocità secondo l'header HTTP | RateLimitSettings.VaryByHeader | vuoto |
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
| Impostazione | Dove | Predefinito |
|---|---|---|
Dimensione Massima File (FileSettings.MaxFileSize) | Ambiente › Archiviazione file | 100 MB. Mantieni il limite di dimensione della richiesta del proxy almeno a questo valore. |
Dimensione massima payload (byte) (ServiceSettings.MaximumPayloadSizeBytes) | Ambiente › Server Web | 300000: la più grande richiesta API diversa dai caricamenti di file |
Consenti Condivisione File (FileSettings.EnableFileAttachments) | Configurazione del sito › Condivisione e download dei file | on |
| Permetti Caricamento File da Mobile, Permetti download dei file da mobile | Configurazione del sito › Condivisione e download dei file | on |
Abilita Collegamenti Pubblici a File (FileSettings.EnablePublicLink) | Configurazione del sito › Link pubblici | disabilitato: quando abilitato, le persone possono condividere un file con un link che funziona senza effettuare l'accesso |
Attiva SVG (ServiceSettings.EnableSVGs) | Configurazione del sito › Post | disabilitato 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:
| Impostazione | Chiave | Predefinito | Funzione |
|---|---|---|---|
| Mostra Indirizzo Email | PrivacySettings.ShowEmailAddress | on | Se disattivato, gli indirizzi e-mail dei membri sono nascosti a tutti tranne che agli amministratori. Disattivalo sui server pubblici. |
| Mostra nome completo | PrivacySettings.ShowFullName | on | Se disattivato, i nomi completi sono nascosti e vengono mostrati i nomi utente. |
| Attiva ignorare, bloccare e richieste di messaggio | PrivacySettings.EnableUserBlocking | on | Vedi sotto. |
| Abilita gli utenti ad aprire canali di Messaggi Diretti con | TeamSettings.RestrictDirectMessage | Qualsiasi utente sul server Antimatter | Oppure 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à | Contatti | Per 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.com | attivo, 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 collegano | attivo. Disattivalo con AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false. |
| Notifiche push all'app mobile | il tuo proxy push (Notifiche push) | disattivato finché non ne imposti l'indirizzo |
il marketplace remoto delle app (PluginSettings.EnableRemoteMarketplace) | l'URL marketplace impostato | disattivato, e nessun indirizzo |
| il tuo server SMTP | il server predefinito è localhost | |
| Connessioni ai modelli (riscrittura, riassunti, traduzione, lettura ad alta voce e app), connessioni ai modelli personali degli amministratori della community | i 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 Jira | i servizi che configuri | disattivati 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.