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

PortTjenesteEksponering
443/tcp, 443/udp, 80/tcpDin HTTPS-proxy (Caddy eller nginx)Offentlig: Dette er, hvordan folk når frem til Antimatter.
8443/udp og 8443/tcpMedie til opkaldOffentlig, hvis folk bruger opkald fra uden for dit netværk.
8065/tcpAntimatters webserverKun til proxyen: Udgiv den på 127.0.0.1 (HTTP_PORT=127.0.0.1:8065).
8067/tcpMålingerKun privat netværk, når det er aktiveret. Ingen login.
8074/tcp og udpCluster-gossipKun mellem cluster-noder.
5432, 9000, 8080, 8066PostgreSQL, filopbevaring, GIF-tjeneste, push-proxyAldrig. 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

  1. Opret den første administratorkonto, før andre kan nå serveren (Installation).
  2. Server Antimatter udelukkende over HTTPS, og sæt webstedets URL til https://-adressen (Domæne og HTTPS).
  3. Hold .env, config.json og TLS-nøgler læsbar kun for root (eller serverens bruger): chmod 600 .env.
  4. 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).
  5. Slå multifaktorautentificering til, og gennemtving den mindst for administratorers konti, eller brug din identitetsleverandørs.
  6. Gennemgå de eksterne forbindelser nedenfor, især STUN-serveren, som Opkald bruger som standard.
  7. Inden du tilføjer modelforbindelser, skal du indstille AI-krypteringsnøglen (AM_AI_ENCRYPTION_KEY) og gemme en kopi adskilt fra databasebackups (AI).
  8. Lav sikkerhedskopier, og test en gendannelse (Sikkerhedskopier og opgraderinger).
  9. 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:

IndstillingNøgleStandard
Aktivér Rate LimitingRateLimitSettings.EnableFra
Maksimalt antal forespørgsler pr. sekundRateLimitSettings.PerSec10
Maksimal burst-størrelseRateLimitSettings.MaxBurst100
Størrelse på hukommelseslagerRateLimitSettings.MemoryStoreSize10000 klienter spores
Varier ratelimiting efter fjernadresseRateLimitSettings.VaryByRemoteAddrtil
Varier ratelimiting efter brugerRateLimitSettings.VaryByUserFra
Varier ratelimiting efter HTTP-headerRateLimitSettings.VaryByHeadertom

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

IndstillingHvorStandard
Maksimal filstørrelse (FileSettings.MaxFileSize)Miljø › Filopbevaring100 MB. Hold proxyens anmodningsstørrelsesbegrænsning på mindst dette.
Maksimal payloadstørrelse (bytes) (ServiceSettings.MaximumPayloadSizeBytes)Miljø › Webserver300000: den største API-anmodning ud over filuploads
Tillad fildeling (FileSettings.EnableFileAttachments)Site Configuration › Fildeling og downloadstil
Tillad filupload på mobil, Tillad fildownloads på mobilSite Configuration › Fildeling og downloadstil
Aktivér offentlige filerlinks (FileSettings.EnablePublicLink)Site Configuration › Offentlige linksfra: 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ægfra på en ny server: når slået til, vises SVG-billeder inline
Aktivér filsøgning (ServiceSettings.EnableFileSearch)Site Configuration › Fildeling og downloadstil: 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 konfigurerettil: 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:

IndstillingNøgleStandardHvad den gør
Vis e-mailadressePrivacySettings.ShowEmailAddresstilSlået fra, medlemsers e-mailadresser er skjult for alle undtagen administratorer. Slå det fra på offentlige servere.
Vis fulde navnPrivacySettings.ShowFullNametilSlået fra, fulde navne er skjult, og brugernavne vises i stedet.
Aktivér ignorering, blokering og beskedanmodningerPrivacySettings.EnableUserBlockingtilSe nedenfor.
Gør det muligt for brugere at åbne kanaler for direkte beskeder medTeamSettings.RestrictDirectMessageAny user on the Antimatter serverEller 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:

FeatureContactsBy 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.comtil, 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 tiltil. Slå fra med AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false.
Push-notifikationer til mobilappendin egen push-proxy (Push-notifikationer)fra, indtil du angiver dens adresse
Den ekstern appmarkedsplass (PluginSettings.EnableRemoteMarketplace)den Marketplace-URL, du har angivetfra, og ingen adresse
E-maildin SMTP-serverstandardserveren er localhost
Modelforbindelser (omskrivning, opsummeringer, oversættelse, oplæsning, agenter og apps), communityadministratorers egne modelforbindelserDe 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 Jirade tjenester, du konfigurererfra, 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.