Säkerhet
En checklista för att säkerhetsstärka en Antimatter-server: vad som ska exponeras, de gränser och sekretessinställningar som bör granskas, de externa tjänster servern kontaktar och hur man rapporterar ett säkerhetsproblem.
Vad som ska exponeras
| Port | Tjänst | Exponering |
|---|---|---|
| 443/tcp, 443/udp, 80/tcp | Din HTTPS-proxy (Caddy eller nginx) | Publik: så når folk Antimatter. |
| 8443/udp och 8443/tcp | Medier för samtal | Publik, om folk använder samtal från utanför ditt nätverk. |
| 8065/tcp | Antimatters webbserver | Endast till proxyn: publicera den på 127.0.0.1 (HTTP_PORT=127.0.0.1:8065). |
| 8067/tcp | Metriker | Endast privat nätverk, när det är aktiverat. Ingen inloggning. |
| 8074/tcp och udp | Cluster-gossip | Endast mellan noderna i clustret. |
| 5432, 9000, 8080, 8066 | PostgreSQL, filarkiv, GIF-tjänst, push-proxy | Aldrig. Compose-filerna håller dem på interna nätverk utan publicerad port. |
Webbplatsens compose-fil kör även varje behållare med no-new-privileges, kör Antimatter som en icke-privilegierad användare på en distroless-image och kör GIF-tjänsten med ett skrivskyddat filsystem. Databasen, arkivet och GIF-tjänsten ligger på ett nätverk utan internetåtkomst.
Checklista efter installation
- Skapa det första administratörskontot innan någon annan kan nå servern (Installation).
- Servera Antimatter enbart över HTTPS och ställ in webbplatsens URL till
https://-adressen (Domän och HTTPS). - Se till att
.env,config.jsonoch TLS-nycklar endast kan läsas av root (eller serverns användare):chmod 600 .env. - Avgör vem som kan skapa konton, håll Aktivera Open Server avstängd om inte communityn är offentlig, och aktivera Kräv e-postverifiering när e-posten fungerar (Inloggning och konton).
- Aktivera multifaktorautentisering och gör den obligatorisk åtminstone för administratörskonton, eller använd din identitetsleverantörs.
- Granska de externa anslutningarna nedan, särskilt STUN-servern som Samtal använder som standard.
- Innan du lägger till modellanslutningar, ställ in AI-krypteringsnyckeln (
AM_AI_ENCRYPTION_KEY) och spara en kopia separat från databasbackupen (AI). - Gör en säkerhetskopia och testar en återställning (Säkerhetskopior och uppgraderingar).
- Håll bilderna eller paketen uppdaterade: säkerhetskorrigeringar levereras med nya versioner.
Hastighetsbegränsning
Servern kan begränsa hur många API-anrop varje klient gör. Det är inaktiverat som standard. I Systemkonsol › Miljö › Rate limiting:
| Inställning | Nyckel | Standard |
|---|---|---|
| Aktivera begränsning | RateLimitSettings.Enable | Av |
| Maximum förfrågor per sekund | RateLimitSettings.PerSec | 10 |
| Maximum Burst Size | RateLimitSettings.MaxBurst | 100 |
| Minnesuttnyttjande | RateLimitSettings.MemoryStoreSize | 10 000 klienter spåras |
| Variera nivån med fjärranslutningsadress | RateLimitSettings.VaryByRemoteAddr | på |
| Variera begränsningen utifrån användare | RateLimitSettings.VaryByUser | Av |
| Variera begränsningen utifrån HTTP header | RateLimitSettings.VaryByHeader | tom |
Bakom en proxy fungerar begränsningar baserade på adress endast om servern känner till varje klients adress (ServiceSettings.TrustedProxyIPHeader och ServiceSettings.TrustedProxyIPs, se Klientadresser bakom en proxy). Annars verkar alla förfrågningar komma från proxyn, och alla delar samma begränsning. Detsamma gäller för IP-filter och för adresserna i revisionsloggarna.
Inloggningsförsök begränsas separat: Maximalt antal inloggningsförsök (10) låser ett konto efter så många felaktiga lösenord.
IP-filter
Systemkonsol › Site-konfiguration › IP-filtrering begränsar åtkomst till servern via IP-adress, med tillåt- och neka-regler (en adress eller ett CIDR-intervall vardera). Med Aktivera IP-filtrering på kan personer vars adress matchar en neka-regel, eller ingen tillåt-regel när det finns tillåt-regler, inte nå servern. Sidan vägrar regler som skulle blockera din egen adress. Bakom en proxy, konfigurera klientadresser först (Klientadresser bakom en proxy): annars verkar varje förfrågan komma från proxyn.
Uppladdningar och fildelning
| Inställning | Var | Standard |
|---|---|---|
Maximal filstorlek (FileSettings.MaxFileSize) | Miljö › File Storage | 100 MB. Håll proxyns begränsning för förfrågningsstorlek minst lika stor. |
Maximal storlek på nyttolasten (Bytes) (ServiceSettings.MaximumPayloadSizeBytes) | Miljö › Web Server | 300 000: det största API-anropet förutom filuppladdningar |
Tillåt fildelning (FileSettings.EnableFileAttachments) | Site Configuration › File Sharing and Downloads | på |
| Tillåt filuppladdning på mobil, Tillåt nedladdning av filer på mobil | Site Configuration › File Sharing and Downloads | på |
Aktivera publika fil-länkar (FileSettings.EnablePublicLink) | Site Configuration › Public Links | inaktiverat: när aktiverat kan personer dela en fil med en länk som fungerar utan inloggning |
Aktivera SVGs (ServiceSettings.EnableSVGs) | Site Configuration › Posts | inaktiverat på en ny server: när aktiverat visas SVG-bilder inline |
Antimatter skannar inte uppladdningar för skadlig programvara.
Integritetsinställningar
I Systemkonsol › Site-konfiguration › Användare och team:
| Inställning | Nyckel | Standard | Vad den gör |
|---|---|---|---|
| Visa e-postadress | PrivacySettings.ShowEmailAddress | på | Av, medlemmars e-postadresser är dolda för alla utom administratörer. Stäng av på publika servrar. |
| Visa fullständigt namn | PrivacySettings.ShowFullName | på | Av, fullständiga namn är dolda och användarnamn visas istället. |
| Aktivera ignorera, blockera och meddelandeförfrågningar | PrivacySettings.EnableUserBlocking | på | Se nedan. |
| Tillåt användare att öppna direktmeddelandekanaler med | TeamSettings.RestrictDirectMessage | Any user on the Antimatter server | Eller Vilken teammedlem som helst: endast personer som delar en community. |
Ignoring, blocking and message requests
Med Aktivera ignorera, blockera och meddelandeförfrågningar på (standardinställningen) kan personer ignorera och blockera varandra, och kan välja att ta emot direktmeddelanden från personer de inte känner som meddelandeförfrågningar, som inte avisera dem förrän de accepteras. Detta passar offentliga communityer. På en arbetsplats där kollegor alltid måste kunna nå varandra, stäng av det (AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING=false): inget av detta är längre tillämpat, men listorna och valen som personer gjorde bevaras, och tillämpas igen om du aktiverar det på nytt.
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.
- Aktivera Personliga Access-tokens (
ServiceSettings.EnableUserAccessTokens, av) låter användare skapa API-tokens; Maximal giltighetstid för personliga åtkomsttoken (dagar) sätter en övre gräns för dem. Båda finns i Systemkonsol › Integrationer › Hantera integrationer. - För att logga ut alla användare samtidigt, till exempel efter ett misstänkt intrång: Återkalla alla sessioner i Systemkonsol › Hantera användare › Användare.
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:
| Funktion | 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 | på, när appen Samtal är aktiverad. För att ändra det, se Samtal. |
Förhandsgranskning av länkar: servern hämtar sidorna som länkas till i meddelanden (Aktivera förhandsgranskning av webblänkar, ServiceSettings.EnableLinkPreviews) | de webbplatser som folk länkar till | på. Stäng av med AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false. |
| Pushaviseringar till mobilappen | din egen push-proxy (Push-aviseringar) | av, tills du har angivit dess adress |
den externa appmarknaden (PluginSettings.EnableRemoteMarketplace) | den Marketplace URL du har angivit | av, och ingen adress |
| E-post | din SMTP-server | standardservern är localhost |
| Modellanslutningar (omskrivning, sammanfattningar, översättning, uppläsning och appar), communityadministratörers egna modellanslutningar | de AI-leverantörer som har lagts till i Systemkonsol › AI › Modellanslutningar eller i en communitys inställningar (AI) | inga, förrän någon lägger till en |
| Enkel inloggning, appen Agents AI-tjänster, tal-till-text och översättning, utgående webhooks, och appar som Mail, Kalender, GitHub, GitLab eller Jira | de tjänster du konfigurerar | av, tills du har konfigurerat dem |
Som standard vägrar servern att ansluta till privata och loopback-adresser för dessa (länkförhandsvisningar, webhooks, appar, communitys modellanslutningar), så att ett meddelande eller en integration inte kan användas för att nå ditt interna nätverk. Ange de interna värdar den får nå i Tillåt osäkra interna anslutningar till (ServiceSettings.AllowedUntrustedInternalConnections, i Systemkonsol › Miljö › Utvecklare); webbplatsens compose-fil listar gifs där.
Rapportera en sårbarhet
Rapportera säkerhetsproblem privat, enligt beskrivningen i Antimatters säkerhetspolicy, inte i offentliga ärenden.