Beveiliging

Een checklist om een Antimatter-server te versterken: wat u opent, de limieten en privacyinstellingen die u moet controleren, de externe diensten waarmee de server communiceert en hoe u een beveiligingsprobleem meldt.

Wat u opent

PoortServiceBereikbaarheid
443/tcp, 443/udp, 80/tcpUw HTTPS-proxy (Caddy of nginx)Publiek: zo bereiken mensen Antimatter.
8443/udp en 8443/tcpMedia voor gesprekkenPubliek, als mensen gesprekken voeren vanuit buiten uw netwerk.
8065/tcpDe webserver van AntimatterAlleen voor de proxy: publiceer deze op 127.0.0.1 (HTTP_PORT=127.0.0.1:8065).
8067/tcpMetriekenAlleen voor het interne netwerk, indien ingeschakeld. Geen inloggen.
8074/tcp en udpCluster-gossipAlleen tussen de knooppunten van het cluster.
5432, 9000, 8080, 8066PostgreSQL, opslag, GIF-dienst, push-proxyNooit. De compose-bestanden houden deze op interne netwerken zonder gepubliceerde poort.

Het compose-bestand van de site voert bovendien elke container uit met no-new-privileges, voert Antimatter uit als een niet-geprivilegieerde gebruiker op een distroless-image en voert de GIF-dienst uit met een alleen-lezen bestandssysteem. De database, de opslag en de GIF-dienst zitten op een netwerk zonder internettoegang.

Checklist na installatie

  1. Maak het eerste beheerdersaccount aan voordat iemand anders de server kan bereiken (Installeren).
  2. Bied Antimatter alleen aan via HTTPS en stel de site-URL in op het https://-adres (Domein en HTTPS).
  3. Houd .env, config.json en de TLS-sleutels alleen leesbaar voor root (of de gebruiker van de server): chmod 600 .env.
  4. Bepaal wie accounts kan aanmaken, houd Open server activeren uit tenzij de community publiek is, en schakel Vereist e-mail verificatie in zodra de e-mail werkt (Aanmelden en accounts).
  5. Schakel tweestapsverificatie in en maak deze verplicht voor beheerdersaccounts, of gebruik die van uw identiteitsprovider.
  6. Controleer de externe verbindingen hieronder, met name de STUN-server die gesprekken standaard gebruiken.
  7. Voordat u modelverbindingen toevoegt, stelt u de AI-versleutelingssleutel in (AM_AI_ENCRYPTION_KEY) en bewaart u een kopie apart van de databasiskopieën (AI).
  8. Maak back-ups en test een herstel (Back-ups en upgrades).
  9. Houd de afbeeldingen of pakketten up-to-date: beveiligingscorrecties worden geleverd met nieuwe versies.

Rate limiting

De server kan beperken hoeveel API-aanvragen elke client doet. Dit is standaard uit. In Systeemconsole › Omgeving › Snelheidsbeperking:

InstellingSleutelStandaardwaarde
Snelheidsbeperkingen inschakelenRateLimitSettings.EnableUit
Maximaal Queries per SecondeRateLimitSettings.PerSec10
Maximumgrootte van burstRateLimitSettings.MaxBurst100
Geheugen opslag grootteRateLimitSettings.MemoryStoreSize10000 clients bijgehouden
Snelheidslimiet variëren per extern adresRateLimitSettings.VaryByRemoteAddraan
Snelheidslimiet variëren per gebruikerRateLimitSettings.VaryByUserUit
Limietsnelheid per HTTP-headerRateLimitSettings.VaryByHeaderleeg

Achter een proxy werken beperkingen op adres alleen als de server het adres van elke client kent (ServiceSettings.TrustedProxyIPHeader en ServiceSettings.TrustedProxyIPs, zie Client-adressen achter een proxy). Anders lijkt het alsof alle aanvragen van de proxy komen, en delen alle gebruikers dezelfde limiet. Hetzelfde geldt voor IP-filtering en voor de adressen in de auditlogs.

Aanmeldingspogingen worden afzonderlijk beperkt: Maximum aantal aanmeldingspogingen (10) vergrendelt een account na dat aantal mislukte wachtwoorden.

IP-filtering

Systeemconsole › Site Configuratie › IP-filtering beperkt de toegang tot de server op IP-adres, met toelatings- en weigeringsregels (elk een adres of een CIDR-bereik). Met IP-filtering inschakelen ingeschakeld, kunnen mensen wier adres overeenkomt met een weigeringsregel, of geen toelatingsregel wanneer er toelatingsregels zijn, de server niet bereiken. De pagina weigert regels die uw eigen adres zouden blokkeren. Achter een proxy, stelt u eerst de client-adressen in (Client-adressen achter een proxy): anders lijkt elke aanvraag te komen van de proxy.

Uploads en bestanddelen

InstellingWaarStandaardwaarde
Maximale bestandsgrootte (FileSettings.MaxFileSize)Omgeving › File Storage100 MB. Houd de limiet voor de grootte van proxy-aanvragen op minstens dit niveau.
Maximale grootte van de payload (bytes) (ServiceSettings.MaximumPayloadSizeBytes)Omgeving › Web Server300000: de grootste API-aanvraag, behalve bestanduploads
Bestanden delen toestaan (FileSettings.EnableFileAttachments)Site Configuration › File Sharing and Downloadsaan
Bestandsuploads toestaan op mobiel, Bestanddownloads op mobiel toestaanSite Configuration › File Sharing and Downloadsaan
Inschakelen publieke bestand links (FileSettings.EnablePublicLink)Site Configuration › Public Linksuit: als aan, kunnen personen een bestand delen met een link die werkt zonder aan te melden
SVG's inschakelen (ServiceSettings.EnableSVGs)Site Configuration › Postsuit op een nieuwe server: als aan, worden SVG-afbeeldingen inline weergegeven

Antimatter scant uploads niet op malware.

Privacy-instellingen

In Systeemconsole › Site Configuratie › Gebruikers en Teams:

InstellingSleutelStandaardwaardeWat het doet
Toon e-mail adresPrivacySettings.ShowEmailAddressaanUit, de e-mailadressen van leden zijn verborgen voor iedereen behalve beheerders. Zet dit uit op publieke servers.
Toon de volledige naamPrivacySettings.ShowFullNameaanUit, volledige namen zijn verborgen en gebruikersnamen worden in plaats daarvan weergegeven.
Negeren, blokkeren en berichtverzoeken inschakelenPrivacySettings.EnableUserBlockingaanZie hieronder.
Sta gebruikers to om Direct Message kanalen te openen metTeamSettings.RestrictDirectMessageAny user on the Antimatter serverOf Elke gebruiker van het team: alleen mensen die een community delen.

Negeren, blokkeren en berichtverzoeken

Wanneer Negeren, blokkeren en berichtverzoeken inschakelen is ingeschakeld (de standaardinstelling), kunnen gebruikers elkaar negeren en blokkeren. Ze kunnen er ook voor kiezen om privéberichten van onbekende personen te ontvangen als berichtverzoeken, die geen melding geven totdat ze zijn geaccepteerd. Dit is geschikt voor publieke gemeenschappen. In een werkplek waar collega's altijd bereikbaar moeten zijn, schakelt u deze functie uit (AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING=false): de afdwinging stopt, maar de lijsten en keuzes die gebruikers hebben gemaakt, worden behouden en gelden weer als u de functie opnieuw inschakelt.

Sessies en tokens

  • Sessieduur en inactiviteitstimeout: zie Aanmelden en accounts. Kortere sessies betekenen dat een verloren laptop of telefoon minder lang ingelogd blijft.
  • Persoonlijke toegangstokens inschakelen (ServiceSettings.EnableUserAccessTokens, uit) stelt gebruikers in staat API-tokens te maken; Maximale levensduur persoonlijke toegangstokens (dagen) beperkt de geldigheidsduur. Beide opties vindt u in Systeem console › Integraties › Integratiebeheer.
  • Om iedereen tegelijk af te melden, bijvoorbeeld na een vermoedelijke inbreuk: Alle Sessies Intrekken in Systeem console › Gebruikersbeheer › Gebruikers.

Verbindingen met externe services

Antimatter maakt geen contact met services die door Mattermost, Inc. worden beheerd. Het verzendt geen telemetrie, crashrapporten of beveiligingscontroles en haalt geen productmeldingen op. Een configuratie die is overgenomen van Mattermost en nog steeds een van de services van Mattermost noemt (diens push-services, diens app-marktplaats, diens meldingen of diens STUN-server voor gesprekken) zorgt er niet voor dat de server contact maakt met deze services: die adressen worden genegeerd.

De server en de apps maken alleen contact met andere externe services voor de functies die ze nodig hebben, en met de services die u configureert:

FunctieContacteertStandaard
Gesprekken: het vinden van publieke adressen met STUN. De server en elke persoon die aan een gesprek deelneemt, sturen een verzoek, waardoor de STUN-server hun IP-adres en poort ziet.De publieke STUN-server van Cloudflare, stun.cloudflare.comaan, zolang de app Gesprekken is ingeschakeld. Zie Gesprekken om dit te wijzigen.
Linkpreviews: de server haalt de pagina's op die in berichten zijn gelinkt (Previews van links naar websites inschakelen, ServiceSettings.EnableLinkPreviews)de websites waarnaar mensen linkenaan. Schakel uit met AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false.
Pushmeldingen naar de mobiele appuw eigen push-proxy (Pushmeldingen)uit, totdat u het adres heeft ingesteld
De externe appmarketplace (PluginSettings.EnableRemoteMarketplace)de Marktplaats URL die u heeft ingestelduit, en geen adres
E-mailuw SMTP-serverde standaardserver is localhost
modelverbindingen (herformuleren, samenvatten, vertalen, voorlezen en apps), de eigen modelverbindingen van beheerders van gemeenschappende AI-aanbieders die zijn toegevoegd in Systeem console › AI › Modelverbindingen of in de instellingen van een gemeenschap (AI)geen, totdat iemand er een toevoegt
enkele aanmelding, de AI-diensten van de Agents-app, spraak-naar-tekst en vertaling, uitgaande webhooks, en apps zoals Mail, Agenda, GitHub, GitLab of Jirade services die u configureertuit, totdat u ze configureert

Standaard weigert de server verbindingen met privé- en loopback-adressen voor deze doeleinden (linkpreviews, webhooks, apps, modelverbindingen van gemeenschappen), zodat een bericht of integratie niet kan worden gebruikt om toegang te krijgen tot uw interne netwerk. Stel de interne hosts waarnaar verbinding mag worden gemaakt in Niet-vertrouwde interne verbindingen toestaan naar (ServiceSettings.AllowedUntrustedInternalConnections, in Systeem console › Omgeving › Ontwikkelaar); de compose-bestand van de site vermeldt daar gifs.

Een kwetsbaarheid melden

Meld beveiligingsproblemen privé, zoals beschreven in het Antimatter-beveiligingsbeleid, en niet in openbare issues.