Bezpieczeństwo

Checklist wzmacniania serwera Antimatter: co udostępnić, jakie limity i ustawienia prywatności należy sprawdzić, z jakich zewnętrznych usług korzysta serwer oraz jak zgłosić problem bezpieczeństwa.

Co udostępnić

PortUsługaDostępność
443/tcp, 443/udp, 80/tcpTwój proxy HTTPS (Caddy lub nginx)Publiczna: to w ten sposób użytkownicy uzyskują dostęp do Antimatter.
8443/udp i 8443/tcpMedia do rozmówPubliczna, jeśli użytkownicy korzystają z rozmów spoza Twojej sieci.
8065/tcpSerwer WWW AntimatterTylko dla proxy: udostępnij go na adresie 127.0.0.1 (HTTP_PORT=127.0.0.1:8065).
8067/tcpMetrykiTylko w sieci prywatnej, gdy jest włączony. Bez logowania.
8074/tcp i udpGossip klastraTylko między węzłami klastra.
5432, 9000, 8080, 8066PostgreSQL, magazyn plików, usługa GIF, proxy pushNigdy. Pliki compose utrzymują je na wewnętrznych sieciach bez udostępnionych portów.

Plik compose witryny uruchamia również każdy kontener z opcją no-new-privileges, uruchamia Antimatter jako użytkownika bez przywilejów na obrazie distroless oraz uruchamia usługę GIF z tylko do odczytu systemem plików. Baza danych, magazyn i usługa GIF znajdują się w sieci bez dostępu do Internetu.

Checklist po instalacji

  1. Utwórz pierwsze konto administratora, zanim ktokolwiek inny uzyska dostęp do serwera (Instalacja).
  2. Serwuj Antimatter wyłącznie przez HTTPS i ustaw adres witryny na adres https:// (Domena i HTTPS).
  3. Utrzymuj pliki .env, config.json i klucze TLS jako czytelne tylko dla roota (lub użytkownika serwera): chmod 600 .env.
  4. Określ, kto może tworzyć konta, i wyłącz Włącz Open Server, chyba że społeczność jest publiczna. Włącz Wymagaj weryfikacji e-mail, gdy tylko konfiguracja poczty e-mail będzie działać (Logowanie i konta).
  5. Włącz uwierzytelnianie wieloskładnikowe i wymuś je co najmniej dla kont administratorów, lub użyj tego dostarczanego przez dostawcę tożsamości.
  6. Przeglądaj poniższe połączenia zewnętrzne, w szczególności serwer STUN, którego domyślnie używają Rozmowy.
  7. Zanim dodasz połączenia z modelami, ustaw klucz szyfrowania AI (AM_AI_ENCRYPTION_KEY) i przechowuj jego kopię osobno od kopii zapasowych bazy danych (AI).
  8. Twórz kopie zapasowe i testuj przywracanie (Kopie zapasowe i aktualizacje).
  9. Utrzymuj obrazy lub pakiety w aktualności: poprawki bezpieczeństwa pojawiają się w nowych wersjach.

Limitowanie żądań

Serwer może ograniczać liczbę żądań API wysyłanych przez każdego klienta. Funkcja jest domyślnie wyłączona. W Konsola systemu › Środowisko › Ograniczenia Prędkości:

UstawienieKluczDomyślnie
Włącz Ograniczenie PrędkościRateLimitSettings.EnableWyłączone
Maksymalna ilość zapytań na sekundęRateLimitSettings.PerSec10
Maksymalny rozmiar pakietuRateLimitSettings.MaxBurst100
Rozmiar magazynu pamięciRateLimitSettings.MemoryStoreSize10000 śledzonych klientów
Zmieniaj limit szybkości według adresu zdalnegoRateLimitSettings.VaryByRemoteAddrwłączone
Zmieniaj limit szybkości według użytkownikaRateLimitSettings.VaryByUserWyłączone
Ograniczenie prędkości według nagłówka HTTPRateLimitSettings.VaryByHeaderpusta

Za proxy ograniczenia według adresu działają tylko wtedy, gdy serwer zna adres każdego klienta (ServiceSettings.TrustedProxyIPHeader i ServiceSettings.TrustedProxyIPs, zob. Adresy klientów za proxy). W przeciwnym razie każde żądanie wydaje się pochodzić z proxy, a wszyscy dzielą jeden limit. Dotyczy to również filtrowania IP oraz adresów w dziennikach audytu.

Próby logowania są ograniczane osobno: Maksymalna liczba prób logowania (10) blokuje konto po tylu nieudanych hasłach.

Filtrowanie IP

Konsola systemu › Konfiguracja strony › Filtrowanie adresów IP umożliwia ograniczanie dostępu do serwera na podstawie adresu IP za pomocą reguł zezwalających i blokujących (każda reguła dotyczy pojedynczego adresu lub zakresu CIDR). Gdy Włącz filtrowanie adresów IP jest włączone, osoby, których adres pasuje do reguły blokującej, lub które nie pasują do żadnej reguły zezwalającej (jeśli takie istnieją), nie mogą uzyskać dostępu do serwera. Strona odrzuca reguły, które zablokowałyby Twój własny adres. W przypadku pracy za proxy najpierw skonfiguruj adresy klientów (Adresy klientów za proxy); w przeciwnym razie każde żądanie będzie wydawać się przychodzące z proxy.

Przesyłanie i udostępnianie plików

UstawienieGdzieDomyślnie
Maksymalny rozmiar pliku (FileSettings.MaxFileSize)Środowisko › Magazyn plików100 MB. Utrzymuj limit rozmiaru żądań proxy na poziomie co najmniej tym.
Maksymalny rozmiar ładunku (bajty) (ServiceSettings.MaximumPayloadSizeBytes)Środowisko › Serwer WWW300000: największe żądanie API inne niż przesyłanie plików
Zezwól na udostępnianie plików (FileSettings.EnableFileAttachments)Konfiguracja witryny › Udostępnianie i pobieranie plikówwłączone
Zezwalaj na przesyłanie plików na urządzeniach mobilnych, Zezwalaj na pobieranie plików na urządzenia mobilneKonfiguracja witryny › Udostępnianie i pobieranie plikówwłączone
Włącz publiczne linki do plików (FileSettings.EnablePublicLink)Konfiguracja witryny › Linki publicznewyłączone: gdy włączone, osoby mogą udostępniać plik za pomocą linku, który działa bez logowania
Włącz SVGs (ServiceSettings.EnableSVGs)Konfiguracja witryny › Postywyłączone na nowym serwerze: gdy włączone, obrazy SVG są wyświetlane inline

Antimatter nie skanuje przesyłanych plików pod kątem złośliwego oprogramowania.

Ustawienia prywatności

W Konsola systemu › Konfiguracja strony › Użytkownicy i zespoły:

UstawienieKluczDomyślnieOpis
Pokaż adres e-mailPrivacySettings.ShowEmailAddresswłączoneWyłączona, adresy e-mail członków są ukryte przed wszystkimi, z wyjątkiem administratorów. Wyłącz tę opcję na serwerach publicznych.
Pokaż pełną nazwęPrivacySettings.ShowFullNamewłączoneWyłączona, pełne imiona i nazwiska są ukryte, a zamiast nich wyświetlane są nazwy użytkowników.
Włącz ignorowanie, blokowanie i prośby o wiadomośćPrivacySettings.EnableUserBlockingwłączoneZobacz poniżej.
Zezwalaj użytkownikom na otwieranie kanałów prywatnych wiadomości zTeamSettings.RestrictDirectMessageDowolnym użytkownikiem na serwerze AntimatterLub Dowolny uczestnik zespołu: tylko osoby należące do tej samej społeczności.

Ignorowanie, blokowanie i żądania wiadomości

Gdy Włącz ignorowanie, blokowanie i prośby o wiadomość jest włączone (ustawienie domyślne), użytkownicy mogą ignorować i blokować innych oraz wybrać, aby otrzymywać wiadomości bezpośrednie od nieznanych osób jako prośby o wiadomość, które nie generują powiadomień, dopóki nie zostaną zaakceptowane. Jest to odpowiednie dla publicznych społeczności. W miejscu pracy, gdzie współpracownicy muszą zawsze mieć możliwość nawiązania kontaktu, wyłącz tę opcję (AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING=false): żadne z tych mechanizmów nie będzie już egzekwowane, ale listy i wybory dokonane przez użytkowników zostaną zachowane i będą ponownie obowiązywać po ponownym włączeniu opcji.

Sesje i tokeny

  • Czas trwania sesji i limit bezczynności: zobacz Logowanie i konta. Krótsze sesje oznaczają, że zgubiony laptop lub telefon pozostanie zalogowany przez krótszy czas.
  • Włącz osobiste tokeny dostępu (ServiceSettings.EnableUserAccessTokens, domyślnie wyłączone) pozwala użytkownikom tworzyć tokeny API, a Maksymalny okres ważności osobistego tokenu dostępu (dni) ogranicza ich czas ważności. Oba ustawienia znajdują się w Konsola systemu › Integracje › Zarządzanie Integracjami.
  • Aby wylogować wszystkich naraz, na przykład po podejrzeniu naruszenia bezpieczeństwa: Odwołaj wszystkie sesje w Konsola systemu › Zarządzanie użytkownikiem › Użytkownicy.

Połączenia z zewnętrznymi usługami

Antimatter nie kontaktuje się z żadną usługą prowadzoną przez Mattermost, Inc. Nie wysyła telemetrii, raportów o awariach ani nie sprawdza aktualizacji bezpieczeństwa, a także nie pobiera powiadomień produktowych. Konfiguracja przeniesiona z Mattermosta, która nadal odwołuje się do jednej z usług Mattermosta (usługi push, marketplace aplikacji, powiadomienia lub serwer STUN do rozmów), nie powoduje, aby serwer nawiązywał z nimi kontakt: te adresy są ignorowane.

Serwer i aplikacje łączą się z innymi zewnętrznymi usługami tylko w zakresie funkcji, które tego wymagają, oraz z usługami, które skonfigurujesz:

FunkcjaKontaktyDomyślnie
Rozmowy: znajdowanie adresów publicznych za pomocą STUN. Serwer oraz każda osoba dołączająca do rozmowy wysyłają żądanie, które pokazuje serwerowi STUN jej adres IP i port.Publiczny serwer STUN firmy Cloudflare, stun.cloudflare.comwłączone, gdy aplikacja Rozmowy jest włączona. Aby to zmienić, zobacz Rozmowy.
Podgląd linków: serwer pobiera strony powiązane z wiadomościami (Włącz podgląd linków do stron internetowych, ServiceSettings.EnableLinkPreviews)witryny, do których ludzie dodają linkiwłączone. Wyłącz za pomocą AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false.
Powiadomienia push do aplikacji mobilnejwłasny serwer pośredniczący w powiadomieniach push (Powiadomienia push)wyłączone, dopóki nie ustawisz jego adresu
Zdalny sklep z aplikacjami (PluginSettings.EnableRemoteMarketplace)ustawiony przez Ciebie Adres URL sklepu z wtyczkamiwyłączone, bez adresu
Poczta e-mailserwer SMTPdomyślnym serwerem jest localhost
Połączenia z modelami (przepisywanie, podsumowania, tłumaczenie, odczyt na głos i aplikacje), własne połączenia z modelami administratorów społecznościdostawcy AI dodani w Konsola systemu › AI › Połączenia z modelami lub w ustawieniach społeczności (AI)żadne, dopóki ktoś ich nie doda
Logowanie jednokrotne (SSO), usługi AI aplikacji Agents, transkrypcja mowy i tłumaczenie, wychodzące webhooks oraz aplikacje, takie jak Mail, Kalendarz, GitHub, GitLab czy Jirausługi, które skonfigurujeszwyłączone, dopóki ich nie skonfigurujesz

Domyślnie serwer odmawia nawiązywania połączeń z adresami prywatnymi i pętli dla tych elementów (podglądy linków, webhooks, aplikacje, połączenia z modelami społeczności), dzięki czemu wiadomość lub integracja nie może zostać wykorzystana do uzyskania dostępu do wewnętrznej sieci. W polu Pozwól na niezaufane połączenia wewnętrzne do (ServiceSettings.AllowedUntrustedInternalConnections, w Konsola systemu › Środowisko › Programista) wymień wewnętrzne hosty, do których może nawiązywać połączenia; w pliku compose witryny znajduje się tam wpis gifs.

Zgłaszanie podatności

Zgłaszaj problemy bezpieczeństwa prywatnie, zgodnie z instrukcjami w polityce bezpieczeństwa Antimatter, a nie w publicznych zgłoszeniach (issues).