Keselamatan

Senarai semak untuk memperkukuh pelayan Antimatter: apa yang perlu didedahkan, had dan tetapan privasi yang perlu disemak, perkhidmatan luar yang dihubungi oleh pelayan, dan cara melaporkan masalah keselamatan.

Apa yang perlu didedahkan

PortPerkhidmatanPendedahan
443/tcp, 443/udp, 80/tcpProksi HTTPS anda (Caddy atau nginx)Awam: ini cara orang mengakses Antimatter.
8443/udp dan 8443/tcpMedia PanggilanAwam, jika orang menggunakan panggilan dari luar rangkaian anda.
8065/tcpPelayan web AntimatterHanya ke proksi: terbitkannya pada 127.0.0.1 (HTTP_PORT=127.0.0.1:8065).
8067/tcpMetrikRangkaian peribadi sahaja, jika diaktifkan. Tiada log masuk.
8074/tcp dan udpGosip klusterAntara nod kluster sahaja.
5432, 9000, 8080, 8066PostgreSQL, storan fail, perkhidmatan GIF, proksi tolakanTidak pernah. Fail compose menyimpannya pada rangkaian dalaman tanpa port yang diterbitkan.

Fail compose laman web juga menjalankan setiap kontena dengan no-new-privileges, menjalankan Antimatter sebagai pengguna tidak berkeistimewaan pada imej distroless, dan menjalankan perkhidmatan GIF dengan sistem fail sahaja-baca. Pangkalan data, storan dan perkhidmatan GIF terletak pada rangkaian tanpa akses Internet.

Senarai semak selepas pemasangan

  1. Cipta akaun pentadbir pertama sebelum sesiapa lain dapat mengakses pelayan (Pemasangan).
  2. Sajikan Antimatter melalui HTTPS sahaja, dan tetapkan URL laman web ke alamat https:// (Domain dan HTTPS).
  3. Simpan .env, config.json dan kunci TLS boleh dibaca oleh root (atau pengguna pelayan) sahaja: chmod 600 .env.
  4. Tentukan siapa yang boleh mencipta akaun, biarkan Aktifkan Pelayan Terbuka tidak diaktifkan melainkan komuniti adalah awam, dan aktifkan Wajibkan Pengesahan E-mel sebaik sahaja e-mel berfungsi (Log masuk dan akaun).
  5. Aktifkan pengesahan dua faktor, dan wajibkannya sekurang-kurangnya untuk akaun pentadbir, atau gunakan perkhidmatan pengenal pasti anda.
  6. Semak sambungan luar di bawah, terutamanya pelayan STUN yang digunakan oleh Panggilan secara lalai.
  7. Sebelum menambah sambungan model, tetapkan kunci penyulitan AI (AM_AI_ENCRYPTION_KEY) dan simpan salinannya berasingan daripada sandaran pangkalan data (AI).
  8. Buat sandaran, dan uji pemulihan (Sandaran dan kemas kini).
  9. Pastikan imej atau pakej sentiasa terkini: pembaikan keselamatan akan tiba bersama versi baharu.

Had kadar

Pelayan boleh mengehadkan bilangan permintaan API yang dibuat oleh setiap klien. Ia dimatikan secara lalai. Dalam Konsol Sistem › Persekitaran › Had Kadar:

TetapanKunciLalai
Bilakah Had KadarRateLimitSettings.EnableTutup
Pertanyaan Maksimum per SaatRateLimitSettings.PerSec10
Saiz Pecah MaksimumRateLimitSettings.MaxBurst100
Saiz Simpanan MemoriRateLimitSettings.MemoryStoreSize10000 klien dipantau
Ubah had kadar mengikut alamat jauhRateLimitSettings.VaryByRemoteAddrhidup
Ubah had kadar mengikut penggunaRateLimitSettings.VaryByUserTutup
Ubah had kadar mengikut pengepal HTTPRateLimitSettings.VaryByHeaderkosong

Di belakang proksi, had mengikut alamat sahaja berfungsi jika pelayar mengetahui alamat setiap klien (ServiceSettings.TrustedProxyIPHeader dan ServiceSettings.TrustedProxyIPs, lihat Alamat klien di belakang proksi). Jika tidak, setiap permintaan kelihatan datang dari proksi, dan semua orang berkongsi satu had. Perkara yang sama berlaku untuk penapisan IP dan untuk alamat dalam log audit.

Percubaan log masuk dihadkan secara berasingan: Bilangan Percubaan Log Masuk Maksimum (10) mengunci akaun selepas bilangan kata laluan yang gagal tersebut.

Penapisan IP

Konsol Sistem › Konfigurasi Laman › Penapisan IP mengehadkan akses ke pelayan mengikut alamat IP, dengan peraturan benarkan dan tolak (setiap satu ialah alamat atau julat CIDR). Dengan Dayakan Penapisan IP dihidupkan, orang yang alamatnya sepadan dengan peraturan tolak, atau tiada peraturan benarkan apabila terdapat peraturan benarkan, tidak dapat mencapai pelayan. Laman ini menolak peraturan yang akan memblokir alamat anda sendiri. Di belakang proksi, tetapkan alamat klien dahulu (Alamat klien di belakang proksi): jika tidak, setiap permintaan kelihatan datang dari proksi.

Muat naik dan perkongsian fail

TetapanDi manaLalai
Saiz Fail Maksimum (FileSettings.MaxFileSize)Persekitaran › Simpanan Fail100 MB. Kekalkan had saiz permintaan proksi sekurang-kurangnya ini.
Saiz Beban Maksimum (Bait) (ServiceSettings.MaximumPayloadSizeBytes)Persekitaran › Pelayan Web300000: permintaan API terbesar selain muat naik fail
Benarkan Perkongsian Fail (FileSettings.EnableFileAttachments)Konfigurasi Laman › Perkongsian dan Muat Turun Failhidup
Benarkan Muat Naik Fail pada Peranti Mudah Alih, Benarkan Muat Turun Fail pada Mudah AlihKonfigurasi Laman › Perkongsian dan Muat Turun Failhidup
Aktifkan Pautan Fail Awam (FileSettings.EnablePublicLink)Konfigurasi Laman › Pautan Awamdimatikan: apabila dihidupkan, orang boleh berkongsi fail dengan pautan yang berfungsi tanpa log masuk
Aktifkan SVG (ServiceSettings.EnableSVGs)Konfigurasi Laman › Hantarandimatikan pada pelayan baharu: apabila dihidupkan, imej SVG dipaparkan secara dalam baris

Antimatter tidak mengimbas muat naik untuk perisian rosak.

Tetapan privasi

Di Konsol Sistem › Konfigurasi Laman › Pengguna dan Pasukan:

TetapanKunciLalaiFungsinya
Tunjuk Alamat E-melPrivacySettings.ShowEmailAddresshidupLuar, alamat e-mel ahli disembunyikan daripada semua orang kecuali pentadbir. Matikan pada pelayan awam.
Tunjuk Nama PenuhPrivacySettings.ShowFullNamehidupLuar, nama penuh disembunyikan dan nama pengguna dipaparkan sebagai gantinya.
Aktifkan pengabaian, penyekatan dan permintaan mesejPrivacySettings.EnableUserBlockinghidupLihat di bawah.
Benarkan pengguna membuka saluran Mesej Terus denganTeamSettings.RestrictDirectMessageMana-mana pengguna pada pelayan AntimatterAtau Mana-mana ahli pasukan: hanya orang yang berkongsi komuniti.

Pengabaian, penyekatan dan permintaan mesej

Dengan Aktifkan pengabaian, penyekatan dan permintaan mesej dihidupkan (lalai), orang boleh mengabaikan dan menyekat antara satu sama lain, dan boleh memilih untuk menerima mesej terus daripada orang yang tidak mereka kenali sebagai permintaan mesej, yang tidak memberi pemberitahuan sehingga diterima. Ini sesuai untuk komuniti awam. Di tempat kerja di mana rakan sekerja mesti sentiasa dapat menghubungi antara satu sama lain, matikan (AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING=false): tiada satu pun lagi dikuatkuasakan, tetapi senarai dan pilihan yang dibuat oleh orang disimpan, dan terpakai semula jika anda menghidupkannya semula.

Sesi dan token

  • Panjang sesi dan tamat masa tidak aktif: lihat Log masuk dan akaun. Sesi yang lebih singkat bermaksud laptop atau telefon yang hilang kekal log masuk untuk masa yang lebih singkat.
  • Dayakan Token Akses Peribadi (ServiceSettings.EnableUserAccessTokens, luar) membolehkan orang mencipta token API; Tempoh Hayat Maksimum Token Akses Peribadi (hari) mengehadkannya. Kedua-duanya berada di Konsol Sistem › Integrasi › Pengurusan Integrasi.
  • Untuk melog keluar semua orang sekaligus, contohnya selepas pelanggaran yang disyaki: Batal Semua Sesi di Konsol Sistem › Pengurusan Pengguna › Pengguna.

Sambungan ke perkhidmatan luar

Antimatter tidak menghubungi mana-mana perkhidmatan yang dikendalikan oleh Mattermost, Inc. Ia tidak menghantar telemetri, laporan kerosakan atau semakan kemas kini keselamatan, dan tidak mengambil notis produk. Konfigurasi yang dibawa dari Mattermost yang masih menamakan salah satu perkhidmatan Mattermost (perkhidmatan tolakan, kedai aplikasi, notis atau pelayan STUN untuk panggilan) tidak menyebabkan pelayan menghubungi mereka: alamat-alamat itu diabaikan.

Pelayan dan aplikasi bersambung ke perkhidmatan luar lain hanya untuk ciri yang memakainya, dan kepada perkhidmatan yang anda konfigurasi:

CiriHubunganSecara lalai
Panggilan: mencari alamat awam dengan STUN. Pelayan dan setiap orang yang menyertai panggilan menghantar permintaan, yang menunjukkan pelayan STUN alamat IP dan port mereka.Pelayan STUN awam Cloudflare, stun.cloudflare.comaktif, selagi aplikasi Panggilan diaktifkan. Untuk mengubahnya, lihat Panggilan.
Pratonton pautan: pelayan mengambil halaman yang dipautkan dalam mesej (Aktifkan pratonton pautan laman web, ServiceSettings.EnableLinkPreviews)laman web yang dipautkan oleh penggunaaktif. Matikan dengan AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false.
Pemberitahuan push ke aplikasi mudah alihproksi push anda sendiri (Pemberitahuan push)nonaktif sehingga anda menetapkan alamatnya
pasaran aplikasi jarak jauh (PluginSettings.EnableRemoteMarketplace)URL Pasaran yang anda tetapkannonaktif, dan tiada alamat
E-melpelayan SMTP andapelayan lalai ialah localhost
Sambungan model (penulisan semula, ringkasan, penterjemahan, pembacaan suara dan aplikasi), sambungan model peribadi pentadbir komunitipembekal AI yang ditambah dalam Konsol Sistem › AI › Sambungan model atau dalam tetapan komuniti (AI)tiada sehingga seseorang menambah satu
Log masuk tunggal, perkhidmatan AI aplikasi Ejen, pertukaran suara kepada teks dan penterjemahan, webhook keluar, dan aplikasi seperti Mail, Kalendar, GitHub, GitLab atau Jiraperkhidmatan yang anda konfigurasinonaktif sehingga anda mengkonfigurasikannya

Secara lalai, pelayan enggan menyambung ke alamat peribadi dan gelung balik untuk perkara ini (pratinjau pautan, webhook, aplikasi, sambungan model komuniti), supaya mesej atau integrasi tidak boleh digunakan untuk menjangkau rangkaian dalaman anda. Senaraikan hos dalaman yang boleh dijangkau dalam Benarkan sambungan dalaman tidak dipercayai kepada (ServiceSettings.AllowedUntrustedInternalConnections, dalam Konsol Sistem › Persekitaran › Pembangun); fail compose laman web ini menyenaraikan gifs di sana.

Melaporkan kerentanan

Laporkan masalah keselamatan secara peribadi, seperti yang diterangkan dalam dasar keselamatan Antimatter, bukan dalam isu awam.