Kaligtasan
Isang checklist upang patibayin ang isang Antimatter server: ano ang ipapakita, ang mga limitasyon at setting sa privacy na dapat suriin, ang mga serbisyo sa labas na tinutukoy ng server, at kung paano mag-uulat ng isang problema sa kaligtasan.
Ano ang ipapakita
| Port | Service | Pagpapalabas |
|---|---|---|
| 443/tcp, 443/udp, 80/tcp | Ang HTTPS proxy (Caddy o nginx) | Pampubliko: ito ang paraan ng pag-abot ng mga tao sa Antimatter. |
| 8443/udp at 8443/tcp | Media ng Tawag | Pampubliko, kung gumagamit ng Tawag ang mga tao mula sa labas ng iyong network. |
| 8065/tcp | Web server ng Antimatter | Sa proxy lamang: ipakita ito sa 127.0.0.1 (HTTP_PORT=127.0.0.1:8065). |
| 8067/tcp | Metrics | Pribadong network lamang, kapag pinagana. Walang sign-in. |
| 8074/tcp at udp | Gossip ng cluster | Sa pagitan ng mga node ng cluster lamang. |
| 5432, 9000, 8080, 8066 | PostgreSQL, file storage, GIF service, push proxy | Hindi kailanman. Ang mga compose file ay nagpapanatili ng mga ito sa mga internal network na walang published port. |
Ang compose file ng site ay nagpapatakbo rin ng bawat container gamit ang no-new-privileges, nagpapatakbo ng Antimatter bilang isang unprivileged user sa isang distroless image, at nagpapatakbo ng GIF service gamit ang isang read-only file system. Ang database, ang storage, at ang GIF service ay nasa network na walang access sa Internet.
Checklist pagkatapos mag-install
- Gumawa ng unang administrator account bago maabot ng iba ang server (Pag-install).
- I-serve ang Antimatter sa pamamagitan ng HTTPS lamang, at itakda ang site URL sa
https://address (Domain at HTTPS). - Panatilihing mababasa ng root (o user ng server) lamang ang
.env,config.json, at mga TLS key:chmod 600 .env. - Magdesisyon kung sino ang makakagawa ng account, itigil ang Pahintulutan ang Open Server maliban kung pampubliko ang komunidad, at i-on ang Kinakailangan ng Email Verification kapag gumana na ang email (Sign-in at mga account).
- I-on ang multi-factor authentication, at ipilit ito sa mga account ng administrator kahit sa minimum, o gamitin ang ng iyong identity provider.
- Suriin ang mga koneksyon sa labas sa ibaba, lalo na ang STUN server na ginagamit ng Tawag bilang default.
- Bago magdagdag ng mga koneksyon ng model, itakda ang AI encryption key (
AM_AI_ENCRYPTION_KEY) at mag-ingat ng isang kopya na hiwalay sa mga backup ng database (AI). - Gawing backup, at subukang i-restore (Mga backup at upgrade).
- Panatilihing up-to-date ang mga image o package: ang mga security fix ay dumating kasama ang mga bagong bersyon.
Rate limiting
Maaaring limitahan ng server ang bilang ng API requests na ginagawa ng bawat client. Sa default, ito ay naka-off. Sa System Console › Environment › Rate Limiting:
| Setting | Susi | Default |
|---|---|---|
| Paganahin ang Rate Limiting | RateLimitSettings.Enable | Off |
| Pinakamataas na Queries bawat Segundo | RateLimitSettings.PerSec | 10 |
| Pinakamataas na Burst Size | RateLimitSettings.MaxBurst | 100 |
| Memory Store Size | RateLimitSettings.MemoryStoreSize | 10000 clients tracked |
| Mag-iba ang rate limit ayon sa remote address | RateLimitSettings.VaryByRemoteAddr | on |
| Mag-iba ang rate limit ayon sa user | RateLimitSettings.VaryByUser | Off |
| Mag-iba ang rate limit ayon sa HTTP header | RateLimitSettings.VaryByHeader | walang laman |
Kung nasa likod ng proxy, ang mga limitasyon base sa address ay gumagana lamang kung alam ng server ang address ng bawat client (ServiceSettings.TrustedProxyIPHeader at ServiceSettings.TrustedProxyIPs, tingnan ang Client addresses behind a proxy). Kung hindi, tila mula sa proxy ang lahat ng request, at iisang limit lang ang ibinahagi ng lahat. Ito rin ang nangyayari sa IP filtering at sa mga address sa audit logs.
Ilimitado nang hiwalay ang mga pagtatangkang mag-sign in: ang Maximum Login Attempts (10) ay naglo-lock ng account pagkatapos ng ganun kalaking maling password.
IP filtering
System Console › Konfigurasyon ng Site › IP Filtering ay naglilimita ng access sa server ayon sa IP address, gamit ang mga allow at deny rule (bawat isa ay isang address o CIDR range). Kapag on ang I-enable ang IP Filtering, hindi makakapunta sa server ang mga taong ang address nila ay tumutugma sa isang deny rule, o walang tumutugma sa allow rule kung mayroon nang mga allow rule. Tinatanggi ng pahina ang mga rule na pindot ang sarili mong address. Kung nasa likod ng proxy, i-configure muna ang mga client address (Mga client address sa likod ng proxy): kung hindi, tila galing sa proxy ang lahat ng request.
Mga upload at pagbabahagi ng file
| Setting | Saan | Default |
|---|---|---|
Pinakamataas na Laki ng File (FileSettings.MaxFileSize) | Environment › File Storage | 100 MB. Panatilihing hindi bababa sa ito ang request size limit ng proxy. |
Maximum Payload Size (Bytes) (ServiceSettings.MaximumPayloadSizeBytes) | Environment › Web Server | 300000: ang pinakamalaking API request maliban sa mga file upload |
Pahintulutan ang File Sharing (FileSettings.EnableFileAttachments) | Site Configuration › File Sharing and Downloads | on |
| Pahintulutan ang File Upload sa Mobile, Pahintulutan ang File Downloads sa Mobile | Site Configuration › File Sharing and Downloads | on |
Paganahin ang Mga Public File Link (FileSettings.EnablePublicLink) | Site Configuration › Public Links | off: kapag naka-on, maaaring ibahagi ng isang tao ang file gamit ang link na gumagana nang hindi kailangang mag-sign in |
Pahintulutan ang SVGs (ServiceSettings.EnableSVGs) | Site Configuration › Posts | off sa bagong server: kapag naka-on, ipinapakita nang inline ang mga SVG image |
Paganahin ang paghahanap ng file (ServiceSettings.EnableFileSearch) | Site Configuration › File Sharing and Downloads | on: ang off ay nagtatago ng paghahanap ng file sa Files tab ng mga resulta ng paghahanap, sa parehong classic web app at sa Fusion |
Paganahin ang pag-index ng file (ElasticsearchSettings.EnableFileIndexing) | Environment › Elasticsearch, na may naka-set up na Elasticsearch o OpenSearch | on: ang off ay humihinto sa pag-index ng mga bagong o nabagong file, ngunit ang mga file na na-index na dati ay nananatiling maaaring hanapin |
Hindi sinuscan ng Antimatter ang mga upload para sa malware.
Mga setting sa privacy
Sa System Console › Konfigurasyon ng Site › Mga User at Team:
| Setting | Susi | Default | Ginagawa nito |
|---|---|---|---|
| Ipakita ang Email Address | PrivacySettings.ShowEmailAddress | on | Kung Off, ang mga email address ng mga miyembro ay nakatago sa lahat maliban sa mga admin. It-off ito sa mga pampublikong server. |
| Ipakita ang Buong Pangalan | PrivacySettings.ShowFullName | on | Kung Off, ang mga buong pangalan ay nakatago at ipapakita ang mga username sa halip. |
| Paganahin ang pag-i-ignore, pag-block, at mga message request | PrivacySettings.EnableUserBlocking | on | Tingnan sa ibaba. |
| Pahintulutan ang mga user na buksan ang mga Direct Message channel sa | TeamSettings.RestrictDirectMessage | Anumang user sa Antimatter server | O Anumang miyembro ng team: mga taong nagbabahagi ng komunidad lamang. |
Pag-iignore, pag-block, at mga hiling sa mensahe
Kapag naka-on ang Paganahin ang pag-i-ignore, pag-block, at mga message request (ang default), maaaring i-ignore at i-block ng mga tao ang isa't isa, at piliin kung ang mga Direct Message mula sa mga taong hindi nila kakilala ay darating nang normal, maghihintay bilang mga message request, o tatanggihan agad (ang taong tinanggihan ay hindi makakapagsimula ng Direct Message o mensahe ng grupo sa kanila, o makapagsulat sa isa pa hindi pa tinatanggap); ang bawat pagpili ay maaaring magkaiba bawat community, at ang pinakamapagpilita sa mga community na pinagsasaluhan ng mga tao ang mananalo. Angkop ito sa mga pampublikong community. Sa isang workplace kung saan ang mga katrabaho ay dapat laging makapag-ugnayan, isara ito (AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING=false): wala na sa mga pagpiling ito para sa Direct Message ang ipinapatupad, ngunit ang mga listahan at pagpiling ginawa ng mga tao ay pinapanatili, at muling ipinapatupad kung babalikan mo ito. Ang mga detalye ng Profile na nakikita ng mga tao sa bawat community ay ipinapatupad pa rin; ang mga system admin at ang sarili ng tao ay laging nakakakita ng lahat.
Mga session at token
- Habang ng session at idle timeout: tingnan sa Sign-in and accounts. Mas maikling session nangangahulugang ang nawalang laptop o phone ay mas maikli ang panahon na naka-sign in.
- I-enable ang mga Personal Access Tokens (
ServiceSettings.EnableUserAccessTokens, off) ay nagpapahintulot sa mga tao na gumawa ng API token; Pinakamataas na Tagal ng Validity ng Personal Access Token (araw) ang naglilimita sa kanila. Parehong nasa System Console › Mga Integration › Pamamahala ng Integration. - Para palabasin ang lahat nang sabay-sabay, halimbawa pagkatapos ng posibleng paglabag: Burahin ang Lahat ng Session sa System Console › Pamamahala ng Mga User › Mga User.
- Sa interface ng Antimatter, binabalaan ang mga tao tungkol sa bagong pag-sign in sa kanilang sariling account habang sila ay konektado, at maaari nilang idiskonekta ito mismo (tingnan ang Kung saan ka naka-sign in). Ang mga system admin ay hindi binibigyan ng balita tungkol sa pag-sign in ng ibang tao.
Mga koneksyon sa mga serbisyo sa labas
Hindi nakikipag-ugnayan ang Antimatter sa anumang serbisyo na pinapatakbo ng Mattermost, Inc. Hindi nagpapadala ng telemetry, crash reports, o security update checks, at hindi humihingi ng mga product notices. Ang isang configuration na dala mula sa Mattermost na nagpapakita pa rin ng isa sa mga serbisyo ng Mattermost (ang mga push service nito, app marketplace, notices, o STUN server para sa mga tawag) ay hindi nagpapagawa ng server na makikipag-ugnayan sa kanila: ang mga address na iyon ay pinagbabalewala.
Ang server at mga app ay nakikipag-ugnayan sa ibang mga serbisyo sa labas lamang para sa mga feature na nangangailangan nito, at sa mga serbisyo na iyong inuugnay:
| Feature | Nakikipag-ugnayan | Sa default |
|---|---|---|
| Mga tawag: paghahanap ng mga pampublikong address gamit ang STUN. Ang server at bawat tao na sumasali sa tawag ay nagpapadala ng isang hiling, na ipinapakita sa STUN server ang IP address at port nito. | Pampublikong STUN server ng Cloudflare, stun.cloudflare.com | on, habang aktibo ang Calls app. Para baguhin ito, tingnan ang Calls. |
Link previews: hahakot ng server ang mga pahina na nakatalik sa mga mensahe (Pahintulutan ang website link previews, ServiceSettings.EnableLinkPreviews) | ang mga website na nilalangkaw ng mga tao | on. I-off gamit ang AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false. |
| Mga push notification sa mobile app | ang sarili mong push proxy (Push notifications) | off hangga't hindi mo pa itinakda ang address nito |
Ang remote app marketplace (PluginSettings.EnableRemoteMarketplace) | ang Marketplace URL na itinakda mo | off, at walang address |
| ang SMTP server mo | ang default na server ay localhost | |
| Mga model connection (rewrite, recaps, translation, read aloud, agents at apps), mga sariling model connection ng mga community admin | ang mga AI provider na idinagdag sa System Console › AI › Mga model connection o sa mga setting ng isang community (AI) | walang nandoon hangga't may magdagdag |
| Single sign-on, mga serbisyo ng AI ng AI chat app, speech-to-text at translation, mga outgoing webhook, at mga app tulad ng Mail, Kalendaryo, GitHub, GitLab o Jira | ang mga serbisyo na iyong ikakalkula | off hangga't hindi mo pa ito ikakalkula |
Sa default, tumatanggi ang server na makonekta sa mga private at loopback address para sa mga ito (link previews, webhooks, apps, mga koneksyon ng model ng community), kaya hindi maaaring gamitin ang isang mensahe o integrasyon upang maabot ang iyong internal network. Ilista ang mga internal host na maaaring maabot sa Pahintulutan ang mga untrusted internal connections sa (ServiceSettings.AllowedUntrustedInternalConnections, sa System Console › Environment › Developer); ang compose file ng site ay nakalista ang gifs doon.
Pag-uulat ng vulnerability
Uulat ng mga problema sa seguridad nang pribado, ayon sa paliwanag sa Antimatter security policy, hindi sa mga public na issue.