Keamanan

Daftar periksa untuk memperkuat server Antimatter: apa yang harus dibuka, batas dan pengaturan privasi yang perlu ditinjau, layanan eksternal yang dihubungi server, dan cara melaporkan masalah keamanan.

Apa yang harus dibuka

PortLayananPembukaan
443/tcp, 443/udp, 80/tcpProksi HTTPS Anda (Caddy atau nginx)Publik: ini cara orang mengakses Antimatter.
8443/udp dan 8443/tcpMedia PanggilanPublik, jika orang menggunakan Panggilan dari luar jaringan Anda.
8065/tcpServer web AntimatterHanya ke proksi: terbitkan di 127.0.0.1 (HTTP_PORT=127.0.0.1:8065).
8067/tcpMetrikHanya jaringan privat, jika diaktifkan. Tanpa masuk.
8074/tcp dan udpGosip klusterHanya antara node kluster.
5432, 9000, 8080, 8066PostgreSQL, penyimpanan file, layanan GIF, proksi pushTidak pernah. File compose menjaganya di jaringan internal tanpa port yang diterbitkan.

File compose situs juga menjalankan setiap kontainer dengan no-new-privileges, menjalankan Antimatter sebagai pengguna tanpa privilese pada image distroless, dan menjalankan layanan GIF dengan sistem file hanya-baca. Basis data, penyimpanan, dan layanan GIF berada di jaringan tanpa akses Internet.

Daftar periksa setelah instalasi

  1. Buat akun administrator pertama sebelum orang lain dapat mengakses server (Instalasi).
  2. Sajikan Antimatter hanya melalui HTTPS, dan setel URL situs ke alamat https:// (Domain dan HTTPS).
  3. Jaga agar .env, config.json, dan kunci TLS hanya dapat dibaca oleh root (atau pengguna server): chmod 600 .env.
  4. Tentukan siapa yang dapat membuat akun, biarkan Aktifkan Server Terbuka nonaktif kecuali komunitas bersifat publik, dan aktifkan Wajibkan Verifikasi Email setelah email berfungsi (Masuk dan akun).
  5. Aktifkan autentikasi multi-faktor, dan terapkan minimal untuk akun administrator, atau gunakan milik penyedia identitas Anda.
  6. Tinjau koneksi eksternal di bawah, khususnya server STUN yang digunakan Panggilan secara default.
  7. Sebelum menambahkan koneksi model, atur kunci enkripsi AI (AM_AI_ENCRYPTION_KEY) dan simpan salinannya terpisah dari cadangan database (AI).
  8. Buat cadangan, dan uji pemulihan (Cadangan dan peningkatan).
  9. Jaga agar gambar atau paket tetap terkini: perbaikan keamanan hadir bersama versi baru.

Pembatasan laju

Server dapat membatasi jumlah permintaan API yang dibuat oleh setiap klien. Fitur ini nonaktif secara bawaan. Di Konsol Sistem › Lingkungan › Batas Laju:

PengaturanKunciBawaan
Aktifkan Pembatasan LajuRateLimitSettings.Enablenonaktif
Kueri Maksimum per DetikRateLimitSettings.PerSec10
Ukuran Burst MaksimumRateLimitSettings.MaxBurst100
Ukuran Penyimpanan MemoriRateLimitSettings.MemoryStoreSize10000 klien yang dilacak
Ubah batas laju berdasarkan alamat jarak jauhRateLimitSettings.VaryByRemoteAddron
Ubah batas laju berdasarkan penggunaRateLimitSettings.VaryByUsernonaktif
Ubah batas laju berdasarkan header HTTPRateLimitSettings.VaryByHeaderkosong

Di balik proxy, pembatasan berdasarkan alamat hanya berfungsi jika server mengetahui alamat masing-masing klien (ServiceSettings.TrustedProxyIPHeader dan ServiceSettings.TrustedProxyIPs, lihat Alamat klien di balik proxy). Jika tidak, semua permintaan tampak berasal dari proxy, dan semua orang berbagi satu batas. Hal yang sama berlaku untuk penyaringan IP dan untuk alamat dalam log audit.

Percobaan masuk dibatasi secara terpisah: Jumlah Percobaan Masuk Maksimum (10) mengunci akun setelah sebanyak itu kata sandi gagal.

Penyaringan IP

Konsol Sistem › Konfigurasi Situs › Penyaringan IP membatasi akses ke server berdasarkan alamat IP, dengan aturan izinkan dan tolak (masing-masing berupa alamat atau rentang CIDR). Dengan Aktifkan Penyaringan IP diaktifkan, orang-orang yang alamatnya cocok dengan aturan tolak, atau tidak cocok dengan aturan izinkan ketika ada aturan izinkan, tidak dapat mengakses server. Halaman ini menolak aturan yang akan memblokir alamat Anda sendiri. Di balik proxy, atur alamat klien terlebih dahulu (Alamat klien di balik proxy): jika tidak, semua permintaan tampak berasal dari proxy.

Unggahan dan berbagi berkas

PengaturanDi manaBawaan
Ukuran File Maksimum (FileSettings.MaxFileSize)Lingkungan › Penyimpanan Berkas100 MB. Pertahankan batas ukuran permintaan proxy setidaknya sebesar ini.
Ukuran Muatan Maksimal (Bita) (ServiceSettings.MaximumPayloadSizeBytes)Lingkungan › Server Web300000: permintaan API terbesar selain unggahan berkas
Izikan Berbagi Berkas (FileSettings.EnableFileAttachments)Konfigurasi Situs › Berbagi dan Unduhan Berkason
Izikan Unggahan Berkas di Perangkat Mobile, Izikan Unduhan Berkas di SelulerKonfigurasi Situs › Berbagi dan Unduhan Berkason
Aktifkan Tautan File Publik (FileSettings.EnablePublicLink)Konfigurasi Situs › Tautan Publiknonaktif: ketika diaktifkan, orang dapat membagikan berkas dengan tautan yang berfungsi tanpa masuk
Aktifkan SVG (ServiceSettings.EnableSVGs)Konfigurasi Situs › Postingannonaktif di server baru: ketika diaktifkan, gambar SVG ditampilkan secara inline

Antimatter tidak memindai unggahan untuk malware.

Pengaturan privasi

Di Konsol Sistem › Konfigurasi Situs › Pengguna dan Tim:

PengaturanKunciBawaanFungsinya
Tampilkan Alamat EmailPrivacySettings.ShowEmailAddressonNonaktif, alamat email anggota disembunyikan dari semua orang kecuali admin. Matikan ini di server publik.
Tampilkan Nama LengkapPrivacySettings.ShowFullNameonNonaktif, nama lengkap disembunyikan dan nama pengguna ditampilkan sebagai gantinya.
Aktifkan pengabaian, pemblokiran, dan permintaan pesanPrivacySettings.EnableUserBlockingonLihat di bawah.
Aktifkan pengguna untuk membuka kanal Pesan Langsung denganTeamSettings.RestrictDirectMessagePengguna mana pun di server AntimatterAtau Anggota tim mana pun: hanya orang-orang yang berbagi komunitas.

Pengabaian, pemblokiran, dan permintaan pesan

Dengan Aktifkan pengabaian, pemblokiran, dan permintaan pesan aktif (standar), orang dapat mengabaikan dan memblokir satu sama lain, dan dapat memilih untuk menerima pesan langsung dari orang yang tidak mereka kenal sebagai permintaan pesan, yang tidak memberi notifikasi sampai diterima. Ini cocok untuk komunitas publik. Di tempat kerja di mana rekan kerja harus selalu dapat menghubungi satu sama lain, matikan (AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING=false): tidak ada yang lagi-lagi dipaksakan, tetapi daftar dan pilihan yang dibuat orang tetap dipertahankan, dan berlaku lagi jika Anda mengaktifkannya kembali.

Sesi dan token

  • Durasi sesi dan batas waktu tidak aktif: lihat Masuk dan akun. Sesi yang lebih singkat berarti laptop atau ponsel yang hilang tetap masuk selama waktu yang lebih singkat.
  • Aktifkan Token Akses Pribadi (ServiceSettings.EnableUserAccessTokens, nonaktif) memungkinkan orang membuat token API; Masa Berlaku Maksimum Token Akses Pribadi (hari) membatasinya. Keduanya ada di Konsol Sistem › Integrasi › Manajemen Integrasi.
  • Untuk mengeluarkan semua orang sekaligus, misalnya setelah dugaan pelanggaran: Cabut Semua Sesi di Konsol Sistem › Manajemen Pengguna › Pengguna.

Koneksi ke layanan eksternal

Antimatter tidak menghubungi layanan yang dijalankan oleh Mattermost, Inc. Tidak ada telemetri, laporan crash, atau pemeriksaan pembaruan keamanan yang dikirim, dan tidak ada pemberitahuan produk yang diambil. Konfigurasi yang dibawa dari Mattermost yang masih menyebut salah satu layanan Mattermost (layanan push-nya, pasar aplikasi-nya, pemberitahuan-nya, atau server STUN-nya untuk panggilan) tidak membuat server menghubungi mereka: alamat-alamat tersebut diabaikan.

Server dan aplikasi hanya terhubung ke layanan eksternal lain untuk fitur yang membutuhkannya, dan ke layanan yang Anda konfigurasikan:

FiturKontakSecara default
Panggilan: menemukan alamat publik dengan STUN. Server dan setiap orang yang bergabung dalam panggilan mengirim permintaan, yang menunjukkan alamat IP dan port mereka ke server STUN.Server STUN publik Cloudflare, stun.cloudflare.comaktif, selama aplikasi Panggilan diaktifkan. Untuk mengubahnya, lihat Panggilan.
Pratinjau tautan: server mengambil halaman yang ditautkan dalam pesan (Aktifkan pratinjau tautan situs web, ServiceSettings.EnableLinkPreviews)situs web yang ditautkan oleh penggunaaktif. Matikan dengan AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false.
Notifikasi push ke aplikasi selulerproxy push Anda sendiri (Notifikasi push)nonaktif sampai Anda mengatur alamatnya
marketplace aplikasi jarak jauh (PluginSettings.EnableRemoteMarketplace)URL Marketplace yang Anda aturnonaktif, dan tidak ada alamat
Emailserver SMTP Andaserver default adalah localhost
Koneksi model (penulisan ulang, ringkasan, terjemahan, baca keras, dan aplikasi), koneksi model milik admin komunitaspenyedia AI yang ditambahkan di Konsol Sistem › AI › Koneksi model atau di pengaturan komunitas (AI)tidak ada sampai seseorang menambahkan satu
Single sign-on, layanan AI aplikasi Agen, transkripsi suara ke teks dan terjemahan, webhook keluar, dan aplikasi seperti Mail, Kalender, GitHub, GitLab, atau Jiralayanan yang Anda konfigurasinonaktif sampai Anda mengonfigurasinya

Secara bawaan, server menolak koneksi ke alamat privat dan loopback untuk hal-hal ini (pratinjau tautan, webhook, aplikasi, koneksi model komunitas), sehingga pesan atau integrasi tidak dapat digunakan untuk menjangkau jaringan internal Anda. Daftarkan host internal yang boleh dijangkau di Izinkan koneksi internal yang tidak tepercaya ke (ServiceSettings.AllowedUntrustedInternalConnections, di Konsol Sistem › Lingkungan › Pengembang); file compose situs mencantumkan gifs di sana.

Melaporkan kerentanan

Laporkan masalah keamanan secara privat, seperti dijelaskan dalam kebijakan keamanan Antimatter, bukan di masalah publik.