Sikkerhed
En tjekliste til at hærde en Antimatter-server: hvad der skal eksponeres, de grænser og privatlivsindstillinger, der skal gennemgås, de eksterne tjenester, serveren kontakter, og hvordan man rapporterer et sikkerhedsproblem.
Hvad der skal eksponeres
| Port | Tjeneste | Eksponering |
|---|---|---|
| 443/tcp, 443/udp, 80/tcp | Din HTTPS-proxy (Caddy eller nginx) | Offentlig: Dette er, hvordan folk når frem til Antimatter. |
| 8443/udp og 8443/tcp | Medie til opkald | Offentlig, hvis folk bruger opkald fra uden for dit netværk. |
| 8065/tcp | Antimatters webserver | Kun til proxyen: Udgiv den på 127.0.0.1 (HTTP_PORT=127.0.0.1:8065). |
| 8067/tcp | Målinger | Kun privat netværk, når det er aktiveret. Ingen login. |
| 8074/tcp og udp | Cluster-gossip | Kun mellem cluster-noder. |
| 5432, 9000, 8080, 8066 | PostgreSQL, filopbevaring, GIF-tjeneste, push-proxy | Aldrig. Compose-filerne holder dem på interne netværk uden udgivet port. |
Webstedets compose-fil kører også alle containere med no-new-privileges, kører Antimatter som en uprivilegieret bruger på et distroless-billede, og kører GIF-tjenesten med et filsystem i read-only-tilstand. Databasen, opbevaringen og GIF-tjenesten ligger på et netværk uden internetadgang.
Tjekliste efter installation
- Opret den første administratorkonto, før andre kan nå serveren (Installation).
- Server Antimatter udelukkende over HTTPS, og sæt webstedets URL til
https://-adressen (Domæne og HTTPS). - Hold
.env,config.jsonog TLS-nøgler læsbar kun for root (eller serverens bruger):chmod 600 .env. - Afgør, hvem der kan oprette konti, hold Aktivér åben server slukket, medmindre fællesskabet er offentligt, og slå Krav om e-mailverifikation til, når e-mail fungerer (Login og konti).
- Slå multifaktorautentificering til, og gennemtving den mindst for administratorers konti, eller brug din identitetsleverandørs.
- Gennemgå de eksterne forbindelser nedenfor, især STUN-serveren, som Opkald bruger som standard.
- Inden du tilføjer modelforbindelser, skal du indstille AI-krypteringsnøglen (
AM_AI_ENCRYPTION_KEY) og gemme en kopi adskilt fra databasebackups (AI). - Lav sikkerhedskopier, og test en gendannelse (Sikkerhedskopier og opgraderinger).
- Hold billederne eller pakkerne opdaterede: sikkerhedsrettelser leveres med nye versioner.
Rate limiting
Serveren kan begrænse, hvor mange API-anmodninger hver klient udfører. Det er slukket som standard. I Systemkonsol › Miljø › Begrænsning af haster:
| Indstilling | Nøgle | Standard |
|---|---|---|
| Aktivér Rate Limiting | RateLimitSettings.Enable | Fra |
| Maksimalt antal forespørgsler pr. sekund | RateLimitSettings.PerSec | 10 |
| Maksimal burst-størrelse | RateLimitSettings.MaxBurst | 100 |
| Størrelse på hukommelseslager | RateLimitSettings.MemoryStoreSize | 10000 klienter spores |
| Varier ratelimiting efter fjernadresse | RateLimitSettings.VaryByRemoteAddr | til |
| Varier ratelimiting efter bruger | RateLimitSettings.VaryByUser | Fra |
| Varier ratelimiting efter HTTP-header | RateLimitSettings.VaryByHeader | tom |
Bag en proxy virker begrænsninger baseret på adresse kun, hvis serveren kender hver klients adresse (ServiceSettings.TrustedProxyIPHeader og ServiceSettings.TrustedProxyIPs, se Klientadresser bag en proxy). Ellers ser det ud, som om alle anmodninger kommer fra proxyen, og alle deler én begrænsning. Det samme gælder for IP-filtrering og for adresserne i revisionsloggen.
Loginforsøg begrænses separat: Maks. antal loginforsøg (10) låser en konto efter det angivne antal forkerte adgangskoder.
IP-filtrering
Systemkonsol › Sitekonfiguration › IP-filtrering begrænser adgang til serveren efter IP-adresse med tilladelses- og blokeregler (hver adresse eller CIDR-interval). Med Aktiver IP-filtering slået til, kan personer, hvis adresse matcher en blokeregel, eller ingen tilladelsesregel, når der findes tilladelsesregler, ikke nå serveren. Siden afviser regler, der ville blokere din egen adresse. Bag en proxy skal du først indstille klientadresser (Klientadresser bag en proxy): ellers ser det ud, som om alle anmodninger kommer fra proxyen.
Uploads og fildeling
| Indstilling | Hvor | Standard |
|---|---|---|
Maksimal filstørrelse (FileSettings.MaxFileSize) | Miljø › Filopbevaring | 100 MB. Hold proxyens anmodningsstørrelsesbegrænsning på mindst dette. |
Maksimal payloadstørrelse (bytes) (ServiceSettings.MaximumPayloadSizeBytes) | Miljø › Webserver | 300000: den største API-anmodning ud over filuploads |
Tillad fildeling (FileSettings.EnableFileAttachments) | Site Configuration › Fildeling og downloads | til |
| Tillad filupload på mobil, Tillad fildownloads på mobil | Site Configuration › Fildeling og downloads | til |
Aktivér offentlige filerlinks (FileSettings.EnablePublicLink) | Site Configuration › Offentlige links | fra: når slået til, kan personer dele en fil med et link, der virker uden login |
Aktivér SVG'er (ServiceSettings.EnableSVGs) | Site Configuration › Indlæg | fra på en ny server: når slået til, vises SVG-billeder inline |
Aktivér filsøgning (ServiceSettings.EnableFileSearch) | Site Configuration › Fildeling og downloads | til: fra skjuler filsøgning fra fanen Filer i søgeresultaterne, både i den klassiske webapp og i Fusion |
Aktivér filindeksering (ElasticsearchSettings.EnableFileIndexing) | Miljø › Elasticsearch, med Elasticsearch eller OpenSearch konfigureret | til: fra stopper indekseringen af nye eller ændrede filer, men filer, der er indekseret før, forbliver søgbare |
Antimatter scanner ikke uploads for malware.
Privatlivsindstillinger
I Systemkonsol › Sitekonfiguration › Brugere og teams:
| Indstilling | Nøgle | Standard | Hvad den gør |
|---|---|---|---|
| Vis e-mailadresse | PrivacySettings.ShowEmailAddress | til | Slået fra, medlemsers e-mailadresser er skjult for alle undtagen administratorer. Slå det fra på offentlige servere. |
| Vis fulde navn | PrivacySettings.ShowFullName | til | Slået fra, fulde navne er skjult, og brugernavne vises i stedet. |
| Aktivér ignorering, blokering og beskedanmodninger | PrivacySettings.EnableUserBlocking | til | Se nedenfor. |
| Gør det muligt for brugere at åbne kanaler for direkte beskeder med | TeamSettings.RestrictDirectMessage | Any user on the Antimatter server | Eller Alle medlemmer af teamet: kun personer, der deler et fællesskab. |
Ignoring, blocking and message requests
Med Aktivér ignorering, blokering og beskedanmodninger slået til (standardindstillingen) kan personer ignorere og blokere hinanden og vælge, om direkte beskeder fra personer, de ikke kender, skal ankomme normalt, vente som beskedanmodninger eller afvises helt (en afvist person kan ikke starte en direkte eller gruppebesked med dem eller skrive i en, der ikke er accepteret endnu); hvert valg kan variere per community, og det mest restriktive af de communities, som personer deler, gælder. Dette passer til offentlige communities. På en arbejdsplads, hvor kolleger altid skal kunne nå hinanden, skal du slå det fra (AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING=false): Ingen af disse valgmuligheder for direkte beskeder håndhæves længere, men de lister og valg, som personer har foretaget, gemmes og gælder igen, hvis du slår det til igen. Hvilke profiloplysninger som personerne i hver community ser, håndhæves uanset; systemadministratorer og personen selv ser altid alt.
Sessions and tokens
- Session lengths and idle timeout: see Sign-in and accounts. Shorter sessions mean a lost laptop or phone stays signed in for less time.
- Aktivér personlige adgangstokens (
ServiceSettings.EnableUserAccessTokens, slukket) giver personer mulighed for at oprette API-tokens; Maksimal levetid for personlige adgangstokens (dage) begrænser dem. Begge findes i Systemkonsol › Integrationer › Integrationshåndtering. - For at logge alle ud på én gang, f.eks. efter en mistænkt sikkerhedsbrud: Ophæv alle sessioner i Systemkonsol › Brugerstyring › Brugere.
- I Antimatters grænseflade advares personer om et nyt login til deres egen konto, mens de er tilsluttet, og de kan selv afbryde det (se Hvor du er logget ind). Systemadministratorer informeres ikke om andre personers logins.
Connections to outside services
Antimatter contacts no service run by Mattermost, Inc. It sends no telemetry, crash reports or security update checks, and fetches no product notices. A configuration brought over from Mattermost that still names one of Mattermost's services (its push services, its app marketplace, its notices or its STUN server for calls) doesn't make the server contact them: those addresses are ignored.
The server and the apps connect to other outside services only for the features that need them, and to the services you configure:
| Feature | Contacts | By default |
|---|---|---|
| Calls: finding public addresses with STUN. The server and each person joining a call send a request, which shows the STUN server their IP address and port. | Cloudflare's public STUN server, stun.cloudflare.com | til, mens appen Opkald er aktiveret. For at ændre det, se Opkald. |
Forudvisning af links: Serveren henter de sider, der er linket i beskeder (Aktivér forudvisning af links til websteder, ServiceSettings.EnableLinkPreviews) | de websteder, folk linker til | til. Slå fra med AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false. |
| Push-notifikationer til mobilappen | din egen push-proxy (Push-notifikationer) | fra, indtil du angiver dens adresse |
Den ekstern appmarkedsplass (PluginSettings.EnableRemoteMarketplace) | den Marketplace-URL, du har angivet | fra, og ingen adresse |
| din SMTP-server | standardserveren er localhost | |
| Modelforbindelser (omskrivning, opsummeringer, oversættelse, oplæsning, agenter og apps), communityadministratorers egne modelforbindelser | De AI-udbydere, der er tilføjet i Systemkonsol › AI › Modelforbindelser eller i en communitys indstillinger (AI) | ingen, indtil nogen tilføjer én |
| Single sign-on, AI-chatappens AI-tjenester, tale-til-tekst og oversættelse, udgående webhooks samt apps som Mail, Kalender, GitHub, GitLab eller Jira | de tjenester, du konfigurerer | fra, indtil du konfigurerer dem |
Som standard nægter serveren at forbinde til private og loopback-adresser for disse (link-oversigter, webhooks, apps, fællesskabs modelforbindelser), så en besked eller en integration ikke kan bruges til at nå dit interne netværk. Angiv de interne værter, det må nå, i Tillad upålidelige interne forbindelser til (ServiceSettings.AllowedUntrustedInternalConnections, i Systemkonsol › Miljø › Udvikler); webstedets compose-fil angiver gifs der.
Rapportering af en sårbarhed
Rapportér sikkerhedsproblemer privat, som beskrevet i Antimatters sikkerhedspolitik, ikke i offentlige issues.