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
| Poort | Service | Bereikbaarheid |
|---|---|---|
| 443/tcp, 443/udp, 80/tcp | Uw HTTPS-proxy (Caddy of nginx) | Publiek: zo bereiken mensen Antimatter. |
| 8443/udp en 8443/tcp | Media voor gesprekken | Publiek, als mensen gesprekken voeren vanuit buiten uw netwerk. |
| 8065/tcp | De webserver van Antimatter | Alleen voor de proxy: publiceer deze op 127.0.0.1 (HTTP_PORT=127.0.0.1:8065). |
| 8067/tcp | Metrieken | Alleen voor het interne netwerk, indien ingeschakeld. Geen inloggen. |
| 8074/tcp en udp | Cluster-gossip | Alleen tussen de knooppunten van het cluster. |
| 5432, 9000, 8080, 8066 | PostgreSQL, opslag, GIF-dienst, push-proxy | Nooit. 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
- Maak het eerste beheerdersaccount aan voordat iemand anders de server kan bereiken (Installeren).
- Bied Antimatter alleen aan via HTTPS en stel de site-URL in op het
https://-adres (Domein en HTTPS). - Houd
.env,config.jsonen de TLS-sleutels alleen leesbaar voor root (of de gebruiker van de server):chmod 600 .env. - 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).
- Schakel tweestapsverificatie in en maak deze verplicht voor beheerdersaccounts, of gebruik die van uw identiteitsprovider.
- Controleer de externe verbindingen hieronder, met name de STUN-server die gesprekken standaard gebruiken.
- 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). - Maak back-ups en test een herstel (Back-ups en upgrades).
- 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:
| Instelling | Sleutel | Standaardwaarde |
|---|---|---|
| Snelheidsbeperkingen inschakelen | RateLimitSettings.Enable | Uit |
| Maximaal Queries per Seconde | RateLimitSettings.PerSec | 10 |
| Maximumgrootte van burst | RateLimitSettings.MaxBurst | 100 |
| Geheugen opslag grootte | RateLimitSettings.MemoryStoreSize | 10000 clients bijgehouden |
| Snelheidslimiet variëren per extern adres | RateLimitSettings.VaryByRemoteAddr | aan |
| Snelheidslimiet variëren per gebruiker | RateLimitSettings.VaryByUser | Uit |
| Limietsnelheid per HTTP-header | RateLimitSettings.VaryByHeader | leeg |
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
| Instelling | Waar | Standaardwaarde |
|---|---|---|
Maximale bestandsgrootte (FileSettings.MaxFileSize) | Omgeving › File Storage | 100 MB. Houd de limiet voor de grootte van proxy-aanvragen op minstens dit niveau. |
Maximale grootte van de payload (bytes) (ServiceSettings.MaximumPayloadSizeBytes) | Omgeving › Web Server | 300000: de grootste API-aanvraag, behalve bestanduploads |
Bestanden delen toestaan (FileSettings.EnableFileAttachments) | Site Configuration › File Sharing and Downloads | aan |
| Bestandsuploads toestaan op mobiel, Bestanddownloads op mobiel toestaan | Site Configuration › File Sharing and Downloads | aan |
Inschakelen publieke bestand links (FileSettings.EnablePublicLink) | Site Configuration › Public Links | uit: als aan, kunnen personen een bestand delen met een link die werkt zonder aan te melden |
SVG's inschakelen (ServiceSettings.EnableSVGs) | Site Configuration › Posts | uit 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:
| Instelling | Sleutel | Standaardwaarde | Wat het doet |
|---|---|---|---|
| Toon e-mail adres | PrivacySettings.ShowEmailAddress | aan | Uit, de e-mailadressen van leden zijn verborgen voor iedereen behalve beheerders. Zet dit uit op publieke servers. |
| Toon de volledige naam | PrivacySettings.ShowFullName | aan | Uit, volledige namen zijn verborgen en gebruikersnamen worden in plaats daarvan weergegeven. |
| Negeren, blokkeren en berichtverzoeken inschakelen | PrivacySettings.EnableUserBlocking | aan | Zie hieronder. |
| Sta gebruikers to om Direct Message kanalen te openen met | TeamSettings.RestrictDirectMessage | Any user on the Antimatter server | Of 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:
| Functie | Contacteert | Standaard |
|---|---|---|
| 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.com | aan, 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 linken | aan. Schakel uit met AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false. |
| Pushmeldingen naar de mobiele app | uw eigen push-proxy (Pushmeldingen) | uit, totdat u het adres heeft ingesteld |
De externe appmarketplace (PluginSettings.EnableRemoteMarketplace) | de Marktplaats URL die u heeft ingesteld | uit, en geen adres |
| uw SMTP-server | de standaardserver is localhost | |
| modelverbindingen (herformuleren, samenvatten, vertalen, voorlezen en apps), de eigen modelverbindingen van beheerders van gemeenschappen | de 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 Jira | de services die u configureert | uit, 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.