Сигурност

Чеклист за засилване на сървър на Antimatter: какво да се експонира, лимитите и настройките за поверителност, които трябва да се прегледат, външните услуги, които сървърът контактува, и как да се докладва за проблем със сигурността.

Какво да се експонира

ПортУслугаЕкспониране
443/tcp, 443/udp, 80/tcpВашият HTTPS прокси (Caddy или nginx)Публично: така хората достигат до Antimatter.
8443/udp и 8443/tcpМедия за обажданияПублично, ако хората използват обаждания от извън мрежата ви.
8065/tcpУеб сървърът на AntimatterСамо до прокси: публикувайте го на 127.0.0.1 (HTTP_PORT=127.0.0.1:8065).
8067/tcpМетрикиСамо в частна мрежа, когато е активирано. Без вход.
8074/tcp и udpГласуване в кластераСамо между възлите на кластера.
5432, 9000, 8080, 8066PostgreSQL, файлово хранилище, GIF услуга, пуш проксиНикога. Файловете за compose ги държат на вътрешни мрежи без публикуван порт.

Файлът за compose на сайта също изпълнява всеки контейнер с no-new-privileges, изпълнява Antimatter като непривилегирован потребител на образ без дистрибуция и изпълнява GIF услугата с само-четима файлова система. Базата данни, хранилището и GIF услугата са на мрежа без достъп до интернет.

Чеклист след инсталация

  1. Създайте първата администраторска сметка, преди някой друг да може да достигне до сървъра (Инсталиране).
  2. Сервирайте Antimatter само през HTTPS и задайте адреса на сайта на https:// адреса (Домен и HTTPS).
  3. Дръжте .env, config.json и TLS ключовете четими само от root (или потребителя на сървъра): chmod 600 .env.
  4. Определете кой може да създава акаунти, оставете Разреши отворен сървър изключено, освен ако общността не е публична, и включете Изисква потвърждаване по ел.поща, след като електронната поща заработи (Влизане и акаунти).
  5. Включете мултифакторна автентикация и я наложете поне за сметките на администраторите, или използвайте тази на вашия доставчик на идентичност.
  6. Прегледайте външните връзки по-долу, в частност STUN сървъра, който Обажданията използват по подразбиране.
  7. Преди да добавите връзки към модели, задайте ключа за криптиране на AI (AM_AI_ENCRYPTION_KEY) и го съхранявайте отделно от резервните копия на базата данни (AI).
  8. Направете резервно копие и тествайте възстановяване (Резервни копия и ъпгрейди).
  9. Поддържайте образите или пакетите актуализирани: корекциите за сигурност идват с нови версии.

Ограничаване на честотата

Сървърът може да ограничава броя на API заявките, които всеки клиент изпраща. По подразбиране е изключено. В Системна конзола › Обкръжение › Ограничаване на трафика:

НастройкаКлючПо подразбиране
Разреши ограничаване на трафикаRateLimitSettings.Enableизключено
Максимални заявки в секундаRateLimitSettings.PerSec10
Максимален размер на серияRateLimitSettings.MaxBurst100
Размер на хранилището в паметтаRateLimitSettings.MemoryStoreSize10000 проследявани клиенти
Променливо ограничение на трафика по отдалечен адресRateLimitSettings.VaryByRemoteAddrвключено
Променливо ограничение на трафика по потребителRateLimitSettings.VaryByUserизключено
Различно ограничение на трафика според HTTP заглавкатаRateLimitSettings.VaryByHeaderпразно

Когато има прокси, ограниченията по адрес действат само ако сървърът знае адреса на всеки клиент (ServiceSettings.TrustedProxyIPHeader и ServiceSettings.TrustedProxyIPs, вижте Адреси на клиенти зад прокси). В противен случай всяка заявка изглежда сякаш идва от прокси и всички споделят едно ограничение. Същото важи и за филтрирането по IP, и за адресите в одитните дневници.

Опитите за влизане се ограничават отделно: Максимални опити за влизане (10) блокира акаунта след толкова много неуспешни пароли.

Филтриране по IP

Системна конзола › Конфигурация на сайта › IP филтриране ограничава достъпа до сървъра по IP адрес, с правила за разрешаване и отказ (адрес или CIDR диапазон). Когато Разрешаване на IP филтрирането е включено, хората, чийто адрес съвпада с правило за отказ, или нямат правило за разрешаване, когато съществуват такива, не могат да достигнат до сървъра. Страницата отхвърля правила, които биха блокирали вашия собствен адрес. При работа зад прокси първо настройте адресите на клиентите (Адреси на клиентите зад прокси): иначе всяка заявка изглежда, че идва от прокси.

Качвания и споделяне на файлове

НастройкаКъдеПо подразбиране
Максимален размер на файла (FileSettings.MaxFileSize)Околна среда › Файлово хранилище100 MB. Запазете ограничението за размера на заявките на прокси поне толкова.
Максимален размер на полезния товар (байтове) (ServiceSettings.MaximumPayloadSizeBytes)Околна среда › Уеб сървър300000: най-голямата API заявка, освен качвания на файлове
Разреши споделяне на файлове (FileSettings.EnableFileAttachments)Конфигурация на сайта › Споделяне и изтегляне на файловевключено
Разрешаване на качване на файлове от мобилни устройства, Разрешаване на изтегляния на файлове на мобилни устройстваКонфигурация на сайта › Споделяне и изтегляне на файловевключено
Разреши публични връзки към файлове (FileSettings.EnablePublicLink)Конфигурация на сайта › Публични връзкиизключено: когато е включено, хората могат да споделят файл с връзка, която работи без вход
Разрешаване на SVG (ServiceSettings.EnableSVGs)Конфигурация на сайта › Публикацииизключено на нов сървър: когато е включено, SVG изображенията се показват в текстовия поток
Активиране на търсенето на файлове (ServiceSettings.EnableFileSearch)Конфигурация на сайта › Споделяне и изтегляне на файловевключено: изключването скрива търсенето на файлове от раздела „Файлове“ в резултатите от търсенето както в класическето уеб приложение, така и във Fusion
Активиране на индексирането на файлове (ElasticsearchSettings.EnableFileIndexing)Средна среда › Elasticsearch, при настроен Elasticsearch или OpenSearchвключено: изключването спира индексирането на нови или променени файлове, но вече индексираните файлове остават достъпни за търсене

Antimatter не сканира качванията за зловреден софтуер.

Настройки за поверителност

В Системна конзола › Конфигурация на сайта › Потребители и екипи:

НастройкаКлючПо подразбиранеКакво прави
Показване адреса за ел.пощаPrivacySettings.ShowEmailAddressвключеноИзключено, имейл адресите на членовете са скрити от всички, освен от администраторите. Изключете го на публичните сървъри.
Показване на пълното имеPrivacySettings.ShowFullNameвключеноИзключено, пълните имена са скрити и вместо тях се показват потребителските имена.
Активиране на игнориране, блокиране и заявки за съобщенияPrivacySettings.EnableUserBlockingвключеноВижте по-долу.
Разрешете на потребителите да отварят канали за директно съобщение сTeamSettings.RestrictDirectMessageВсякакви потребители на сървъра на AntimatterИли Всеки член на екипа: само хора, които споделят общност.

Игнориране, блокиране и заявки за съобщения

Когато опцията Активиране на игнориране, блокиране и заявки за съобщения е включена (по подразбиране), потребителите могат да игнорират и блокират един друг и да избират дали директните съобщения от непознати да пристигат нормално, да чакат като заявки за съобщения или да бъдат отказани напълно (отказан потребител не може да започне директно или групово съобщение с тях, нито да пише в такова, което все още не е прието); изборът може да бъде различен за всяка общност и се прилага най-ограничаващото правило от общностите, които потребителите споделят. Това е подходящо за публични общности. В работна среда, където колегите трябва винаги да могат да се достигнат, изключете тази опция (AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING=false): тези избори за директни съобщения вече не се прилагат, но списъците и изборите, направени от потребителите, се запазват и отново се прилагат, ако функцията бъде включена отново. Кои детайли от профила виждат потребителите във всяка общност, се прилага независимо от тази настройка; системните администратори и самият потребител винаги виждат всичко.

Сесии и токени

  • Продължителност на сесиите и таймаут при бездействие: вижте Вход и акаунти. По-късите сесии означават, че загубен лаптоп или телефон остава вписан за по-малко време.
  • Разреши маркери за личен достъп (ServiceSettings.EnableUserAccessTokens, изключено) позволява на потребителите да създават API маркери, а Максимален срок на валидност на личния достъпен токен (дни) ограничава срока им. И двете настройки се намират в Системна конзола › Интеграции › Управление на интеграциите.
  • За да излезете всички едновременно, например след предполагаемо нарушение: използвайте Отмени всички сесии в Системна конзола › Управление на потребители › Потребители.
  • В интерфейса на Antimatter потребителите получават предупреждение за ново влизане в собствения си акаунт, докато са свързани, и могат сами да прекратят сесията (вижте Къде сте влезли). Системните администратори не получават известие за влизанията на други потребители.

Връзки с външни услуги

Antimatter не контактува с нито една услуга, управлявана от Mattermost, Inc. Не изпраща телеметрия, отчети за сривове или проверки за сигурностни обновления и не извлича продуктови известия. Конфигурация, пренесена от Mattermost, която все още посочва една от услугите на Mattermost (неговите push услуги, неговия пазар на приложения, неговите известия или неговия STUN сървър за обаждания), не кара сървъра да ги контактува: тези адреси се игнорират.

Сървърът и приложенията се свързват с други външни услуги само за функциите, които ги изискват, и със услугите, които вие конфигурирате:

ФункцияКонтактиПо подразбиране
Обаждания: намиране на публични адреси чрез STUN. Сървърът и всеки, който се присъединява към обаждане, изпращат заявка, която показва на STUN сървъра неговия IP адрес и порт.Публичният STUN сървър на Cloudflare, stun.cloudflare.comвключено, докато приложението за обаждания е активирано. За да го промените, вижте Обаждания.
Визуализация на връзки: сървърът извлича страниците, към които водят връзките в съобщенията (Активиране визуализация на връзки, ServiceSettings.EnableLinkPreviews)уебсайтовете, към които хората поставят връзкивключено. Изключва се с AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false.
Push известия до мобилното приложениеваш собствен push прокси (Push известия)изключено, докато не зададете неговия адрес
Пазарът на отдалечени приложения (PluginSettings.EnableRemoteMarketplace)зададеният от вас URL адрес на Marketplaceизключено, без зададен адрес
Имейлвашият SMTP сървърсървърът по подразбиране е localhost
Връзки към модели (преписване, резюмета, превод, четене на глас, агенти и приложения), собствени връзки към модели на администраторите на общносттадоставчиците на изкуствен интелект, добавени в Системна конзола › Изкуствен интелект › Връзки с модели или в настройките на общност (Изкуствен интелект)няма, докато някой не добави такава
Единично влизане (SSO), AI услугите на приложението за чат с AI, преобразуване на реч в текст и превод, изходящи webhooks и приложения като Mail, Calendar, GitHub, GitLab или Jiraуслугите, които конфигуриратеизключено, докато не ги конфигурирате

По подразбиране сървърът отказва да се свързва към частни и loopback адреси за тези функции (преглед на връзки, webhooks, приложения, връзки към модели на общността), така че съобщение или интеграция не могат да се използват за достигане до вашата вътрешна мрежа. Избройте вътрешните хостове, до които той може да достигне, в Разрешаване на ненадеждни вътрешни връзки към (ServiceSettings.AllowedUntrustedInternalConnections, в Системна конзола › Обкръжение › Разработчик); compose файлът на сайта посочва gifs там.

Докладване за уязвимост

Докладвайте за сигурностни проблеми поверително, както е обяснено в политиката за сигурност на Antimatter, а не в публични проблеми.