Безпека

Перелік дій для захисту сервера 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Кластерний gossipЛише між вузлами кластера.
5432, 9000, 8080, 8066PostgreSQL, сховище файлів, служба GIF, проксі push-сповіщеньНіколи. Файли compose тримають їх на внутрішніх мережах без опублікованих портів.

Файл compose сайту також запускає всі контейнери з no-new-privileges, запускає Antimatter від імені непривілейованого користувача на образі distroless, а службу GIF — на файловій системі лише для читання. База даних, сховище та служба GIF перебувають у мережі без доступу в Інтернет.

Перевірка після встановлення

  1. Створіть акаунт першого адміністратора, перш ніж хтось інший зможе отримати доступ до сервера (Встановлення).
  2. Надавайте Antimatter лише через HTTPS і встановіть URL сайту на адресу https:// (Домен і HTTPS).
  3. Забезпечте доступ до .env, config.json та TLS-ключів лише для root (або користувача сервера): chmod 600 .env.
  4. Визначте, хто може створювати акаунти, тримайте Увімкнути відкритий сервер вимкненим, якщо спільнота не є публічною, і увімкніть Вимагати підтвердження адреси електронної пошти, коли електронна пошта запрацює (Увійти та акаунти).
  5. Ввімкніть багатоканальну автентифікацію та застосуйте її щонайменше для акаунтів адміністраторів, або використовуйте автентифікацію вашого провайдера ідентичності.
  6. Перевірте зовнішні з'єднання нижче, зокрема STUN-сервер, який за замовчуванням використовують дзвінки.
  7. Перед додаванням з'єднань із моделями встановіть ключ шифрування ШІ (AM_AI_ENCRYPTION_KEY) та зберігайте його окремо від резервних копій бази даних (ШІ).
  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)Environment › File Storage100 МБ. Зберігайте обмеження на розмір запиту проксі-сервера не меншим за це значення.
Максимальний розмір корисного навантаження (байт) (ServiceSettings.MaximumPayloadSizeBytes)Environment › Web Server300000: найбільший запит API, окрім завантаження файлів
Дозволити загальний доступ до файлів (FileSettings.EnableFileAttachments)Site Configuration › File Sharing and Downloadsувімкнено
Дозволити завантаження файлів на мобільний пристрій, Дозволити завантаження файлів на мобільному пристроїSite Configuration › File Sharing and Downloadsувімкнено
Увімкнути публічні посилання на файли (FileSettings.EnablePublicLink)Site Configuration › Public Linksвимкнено: якщо увімкнено, люди можуть ділитися файлом за допомогою посилання, яке працює без входу в систему
Увімкнути SVG (ServiceSettings.EnableSVGs)Site Configuration › Postsвимкнено на новому сервері: якщо увімкнено, зображення SVG відображаються в тексті

Antimatter не сканує завантажені файли на наявність шкідливого ПЗ.

Налаштування конфіденційності

У Системна консоль › Конфігурація сайту › Користувачі та команди:

НалаштуванняКлючТипове значенняПризначення
Показати електронну адресуPrivacySettings.ShowEmailAddressувімкненоВимкнено, адреси електронної пошти учасників приховані від усіх, крім адміністраторів. Вимкніть цю опцію на відкритих серверах.
Показати повне ім'яPrivacySettings.ShowFullNameувімкненоВимкнено, повні імена приховані, натомість відображаються імена користувачів.
Увімкнути ігнорування, блокування та запити на повідомленняPrivacySettings.EnableUserBlockingувімкненоДивіться нижче.
Дозвольте користувачам відкривати канали приватних повідомленьTeamSettings.RestrictDirectMessageБудь-яким користувачем на сервері AntimatterАбо Будь-який член команди: лише ті, хто належить до однієї спільноти.

Ігнорування, блокування та запити на повідомлення

Якщо опцію Увімкнути ігнорування, блокування та запити на повідомлення увімкнено (типово), люди можуть ігнорувати та блокувати одне одного, а також обирати отримувати приватні повідомлення від невідомих людей у вигляді запитів, які не надсилають сповіщень, доки їх не буде прийнято. Це підходить для відкритих спільнот. На робочому місці, де колеги завжди повинні мати змогу встановити з’єднання, вимкніть цю опцію (AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING=false): жодна з цих функцій більше не застосовується, але збережені списки та виборі людей залишаться і знову запрацюють, якщо ви знову увімкнете опцію.

Сесії та токени

  • Тривалість сесій та тайм-аут простою: дивіться Вхід та акаунти. Коротші сесії означають, що втрачений ноутбук або телефон залишиться увімкненим менше часу.
  • Увімкніть персональні токени доступу (ServiceSettings.EnableUserAccessTokens, вимкнено) дозволяє користувачам створювати токени API; Максимальний термін дії особистого токена доступу (дні) обмежує їх. Обидва параметри розташовані в Системна консоль › Інтеграції › Управління інтеграцією.
  • Щоб одночасно завершити сесії всіх користувачів, наприклад, після підозри на порушення безпеки: Скасувати всі сесії у Системна консоль › Керування користувачами › Користувачі.

З’єднання з зовнішніми службами

Antimatter не встановлює жодних з’єднань із службами, які обслуговує Mattermost, Inc. Він не надсилає телеметрію, звіти про збої чи перевірки безпекових оновлень, а також не отримувати сповіщення про продукт. Конфігурація, перенесена з Mattermost, яка все ще вказує на одну з служб Mattermost (її push-служби, її маркетплейс додатків, її сповіщення або її STUN-сервер для дзвінків), не змушує сервер встановлювати з’єднання з ними: ці адреси ігноруються.

Сервер та додатки з’єднуються з іншими зовнішніми службами лише для функцій, які цього потребують, а також із службами, які ви налаштували:

ФункціяЗ’єднується зТипово
Дзвінки: пошук публічних адрес за допомогою STUN. Сервер та кожна людина, яка приєднується до дзвінка, надсилає запит, який показує STUN-серверу її IP-адресу та порт.Публічний STUN-сервер Cloudflare, stun.cloudflare.comувімкнено, доки додаток «Дзвінки» активний. Щоб змінити це, див. Дзвінки.
Попередній перегляд посилань: сервер отримувати сторінки, на які посилаються в повідомленнях (Увімкнути попередній перегляди вебсайтів, ServiceSettings.EnableLinkPreviews)сайти, на які посилаються користувачіувімкнено. Вимкніть за допомогою AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false.
Штовхальні сповіщення у мобільний додатокваш власний проксі-сервер штовхальних сповіщень (Штовхальні сповіщення)вимкнено, доки ви не вкажете його адресу
Віддалений маркетплейс додатків (PluginSettings.EnableRemoteMarketplace)URL-адреса магазину плагінів, яку ви встановиливимкнено, адреса не вказана
Електронна поштаваш SMTP-серверза замовчуванням сервер — localhost
з'єднання з моделями (перефразування, стислі підсумки, переклад, озвучування та додатки), власні з'єднання з моделями адміністраторів спільнотпровайдери ШІ, додані в Системна консоль › ШІ › З'єднання з моделями або в налаштуваннях спільноти (ШІ)жодного, доки хтось не додасть
автентифікація за допомогою єдиного входу, сервіси ШІ додатка «Агенти», розпізнавання мовлення та переклад, вихідні вебхуки, а також додатки, такі як Mail, Calendar, GitHub, GitLab або Jiraпослуги, які ви налаштуєтевимкнено, доки ви їх не налаштуєте

Типово сервер відмовляє у з'єднанні з приватними та петльбек-адресами для цих (попередні перегляди посилань, вебхуки, додатки, з'єднання з моделями спільнот), щоб повідомлення чи інтеграцію не можна було використати для доступу до вашої внутрішньої мережі. Перелік внутрішніх хостів, до яких дозволено доступ, вказуйте в Дозволити ненадійні внутрішні з'єднання (ServiceSettings.AllowedUntrustedInternalConnections, у Системна консоль › Середовище › Розробник); у compose-файлі сайту там вказано gifs.

Повідомлення про вразливість

Повідомляйте про проблеми безпеки приватно, як описано у політиці безпеки Antimatter, а не у публічних записках.