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
| Port | Layanan | Pembukaan |
|---|---|---|
| 443/tcp, 443/udp, 80/tcp | Proksi HTTPS Anda (Caddy atau nginx) | Publik: ini cara orang mengakses Antimatter. |
| 8443/udp dan 8443/tcp | Media Panggilan | Publik, jika orang menggunakan Panggilan dari luar jaringan Anda. |
| 8065/tcp | Server web Antimatter | Hanya ke proksi: terbitkan di 127.0.0.1 (HTTP_PORT=127.0.0.1:8065). |
| 8067/tcp | Metrik | Hanya jaringan privat, jika diaktifkan. Tanpa masuk. |
| 8074/tcp dan udp | Gosip kluster | Hanya antara node kluster. |
| 5432, 9000, 8080, 8066 | PostgreSQL, penyimpanan file, layanan GIF, proksi push | Tidak 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
- Buat akun administrator pertama sebelum orang lain dapat mengakses server (Instalasi).
- Sajikan Antimatter hanya melalui HTTPS, dan setel URL situs ke alamat
https://(Domain dan HTTPS). - Jaga agar
.env,config.json, dan kunci TLS hanya dapat dibaca oleh root (atau pengguna server):chmod 600 .env. - 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).
- Aktifkan autentikasi multi-faktor, dan terapkan minimal untuk akun administrator, atau gunakan milik penyedia identitas Anda.
- Tinjau koneksi eksternal di bawah, khususnya server STUN yang digunakan Panggilan secara default.
- Sebelum menambahkan koneksi model, atur kunci enkripsi AI (
AM_AI_ENCRYPTION_KEY) dan simpan salinannya terpisah dari cadangan database (AI). - Buat cadangan, dan uji pemulihan (Cadangan dan peningkatan).
- 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:
| Pengaturan | Kunci | Bawaan |
|---|---|---|
| Aktifkan Pembatasan Laju | RateLimitSettings.Enable | nonaktif |
| Kueri Maksimum per Detik | RateLimitSettings.PerSec | 10 |
| Ukuran Burst Maksimum | RateLimitSettings.MaxBurst | 100 |
| Ukuran Penyimpanan Memori | RateLimitSettings.MemoryStoreSize | 10000 klien yang dilacak |
| Ubah batas laju berdasarkan alamat jarak jauh | RateLimitSettings.VaryByRemoteAddr | on |
| Ubah batas laju berdasarkan pengguna | RateLimitSettings.VaryByUser | nonaktif |
| Ubah batas laju berdasarkan header HTTP | RateLimitSettings.VaryByHeader | kosong |
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
| Pengaturan | Di mana | Bawaan |
|---|---|---|
Ukuran File Maksimum (FileSettings.MaxFileSize) | Lingkungan › Penyimpanan Berkas | 100 MB. Pertahankan batas ukuran permintaan proxy setidaknya sebesar ini. |
Ukuran Muatan Maksimal (Bita) (ServiceSettings.MaximumPayloadSizeBytes) | Lingkungan › Server Web | 300000: permintaan API terbesar selain unggahan berkas |
Izikan Berbagi Berkas (FileSettings.EnableFileAttachments) | Konfigurasi Situs › Berbagi dan Unduhan Berkas | on |
| Izikan Unggahan Berkas di Perangkat Mobile, Izikan Unduhan Berkas di Seluler | Konfigurasi Situs › Berbagi dan Unduhan Berkas | on |
Aktifkan Tautan File Publik (FileSettings.EnablePublicLink) | Konfigurasi Situs › Tautan Publik | nonaktif: ketika diaktifkan, orang dapat membagikan berkas dengan tautan yang berfungsi tanpa masuk |
Aktifkan SVG (ServiceSettings.EnableSVGs) | Konfigurasi Situs › Postingan | nonaktif 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:
| Pengaturan | Kunci | Bawaan | Fungsinya |
|---|---|---|---|
| Tampilkan Alamat Email | PrivacySettings.ShowEmailAddress | on | Nonaktif, alamat email anggota disembunyikan dari semua orang kecuali admin. Matikan ini di server publik. |
| Tampilkan Nama Lengkap | PrivacySettings.ShowFullName | on | Nonaktif, nama lengkap disembunyikan dan nama pengguna ditampilkan sebagai gantinya. |
| Aktifkan pengabaian, pemblokiran, dan permintaan pesan | PrivacySettings.EnableUserBlocking | on | Lihat di bawah. |
| Aktifkan pengguna untuk membuka kanal Pesan Langsung dengan | TeamSettings.RestrictDirectMessage | Pengguna mana pun di server Antimatter | Atau 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:
| Fitur | Kontak | Secara 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.com | aktif, 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 pengguna | aktif. Matikan dengan AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false. |
| Notifikasi push ke aplikasi seluler | proxy push Anda sendiri (Notifikasi push) | nonaktif sampai Anda mengatur alamatnya |
marketplace aplikasi jarak jauh (PluginSettings.EnableRemoteMarketplace) | URL Marketplace yang Anda atur | nonaktif, dan tidak ada alamat |
| server SMTP Anda | server default adalah localhost | |
| Koneksi model (penulisan ulang, ringkasan, terjemahan, baca keras, dan aplikasi), koneksi model milik admin komunitas | penyedia 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 Jira | layanan yang Anda konfigurasi | nonaktif 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.