सुरक्षा
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 | Metrics | केवल निजी नेटवर्क, यदि सक्षम किया गया हो। साइन-इन की आवश्यकता नहीं। |
| 8074/tcp और udp | क्लस्टर गॉसिप | केवल क्लस्टर नोड्स के बीच। |
| 5432, 9000, 8080, 8066 | PostgreSQL, फ़ाइल स्टोरेज, GIF सेवा, पुश प्रॉक्सी | कभी नहीं। कंपोज़ फ़ाइलें इन्हें पब्लिश किए गए पोर्ट के बिना आंतरिक नेटवर्क पर रखती हैं। |
साइट की कंपोज़ फ़ाइल सभी कंटेनरों को no-new-privileges के साथ चलाती है, Antimatter को डिस्ट्रोलेस इमेज पर एक अनप्रिविलेज्ड यूज़र के रूप में चलाती है, और GIF सेवा को रीड-ओनली फ़ाइल सिस्टम के साथ चलाती है। डेटाबेस, स्टोरेज और GIF सेवा इंटरनेट एक्सेस के बिना एक नेटवर्क पर स्थित हैं।
इंस्टॉलेशन के बाद चेकलिस्ट
- किसी अन्य व्यक्ति के सर्वर तक पहुँचने से पहले पहले एडमिन अकाउंट बनाएं (इंस्टॉलेशन)।
- Antimatter को केवल HTTPS के माध्यम से सर्व करें, और साइट URL को
https://पता से सेट करें (डोमेन और HTTPS)। .env,config.jsonऔर TLS कीज़ को केवल root (या सर्वर के यूज़र) द्वारा पढ़ने योग्य रखें:chmod 600 .env।- निर्णय करें कि कौन खाते बना सकता है, और जब तक समुदाय सार्वजनिक न हो, ओपन सर्वर सक्षम करें बंद ही रखें; और जब ईमेल सही ढंग से काम करने लगे, तब ईमेल सत्यापन आवश्यक चालू कर दें (साइन-इन और खाते)।
- मल्टी-फैक्टर ऑथेंटिकेशन चालू करें, और कम से कम एडमिन अकाउंट्स के लिए इसे अनिवार्य करें, या अपने आइडेंटिटी प्रोवाइडर का उपयोग करें।
- नीचे दिए गए बाहरी कनेक्शन की समीक्षा करें, विशेष रूप से कॉल द्वारा डिफ़ॉल्ट रूप से उपयोग किए जाने वाले STUN सर्वर की।
- मॉडल कनेक्शन जोडने से पहले, AI एन्क्रिप्शन की (
AM_AI_ENCRYPTION_KEY) सेट करें और डेटाबेस बैकअप के अलावा इसकी एक कॉपी सुरक्षित रखें (AI). - बैकअप लें, और रीस्टोर का परीक्षण करें (बैकअप और अपग्रेड)।
- इमेजेस या पैकेज अप-टू-डेट रखें: सुरक्षा सुधार नए वर्ज़न के साथ आते हैं।
रेट लिमिटिंग
सर्वर यह सीमा लगा सकता है कि प्रत्येक क्लाइंट कितनी API रिक्वेस्ट भेज सकता है। यह डिफ़ॉल्ट रूप से बंद होता है। सिस्टम कंसोल › पर्यावरण › रेट लिमिटिंग में:
| सेटिंग | कुंजी | डिफ़ॉल्ट |
|---|---|---|
| रेट लिमिटिंग सक्षम करें | RateLimitSettings.Enable | बंद |
| अधिकतम क्वेरीज़ प्रति सेकंड | RateLimitSettings.PerSec | 10 |
| अधिकतम बर्स्ट साइज़ | RateLimitSettings.MaxBurst | 100 |
| मेमोरी स्टोर साइज़ | RateLimitSettings.MemoryStoreSize | 10000 क्लाइंट ट्रैक किए जाते हैं |
| रिमोट एड्रेस के अनुसार रेट लिमिट में भिन्नता लाएँ | RateLimitSettings.VaryByRemoteAddr | चालू |
| यूज़र के अनुसार रेट लिमिट में भिन्नता लाएँ | RateLimitSettings.VaryByUser | बंद |
| HTTP हेडर के अनुसार रेट लिमिट में भिन्नता लाएँ | RateLimitSettings.VaryByHeader | खाली |
प्रॉक्सी के पीछे, केवल एड्रेस के आधार पर सीमाएँ तब ही काम करती हैं जब सर्वर प्रत्येक क्लाइंट का एड्रेस जानता हो (ServiceSettings.TrustedProxyIPHeader और ServiceSettings.TrustedProxyIPs, देखें प्रॉक्सी के पीछे क्लाइंट एड्रेस)। अन्यथा, प्रत्येक अनुरोध प्रॉक्सी से आया हुआ प्रतीत होता है, और सभी एक ही सीमा साझा करते हैं। IP फ़िल्टरिंग और ऑडिट लॉग में एड्रेस के लिए भी यही बात लागू होती है।
साइन-इन प्रयास अलग से सीमित किए जाते हैं: अधिकतम लॉगिन प्रयास (10) तब अकाउंट लॉक कर देता है जब उतने बार पासवर्ड गलत दर्ज किए जाते हैं।
IP फ़िल्टरिंग
सिस्टम कंसोल › साइट कॉन्फ़िगरेशन › IP फ़िल्टरिंग IP पते के आधार पर सर्वर तक पहुँच को नियंत्रित करता है, जिसमें allow और deny नियम होते हैं (प्रत्येक में एक पता या CIDR रेंज)। IP फ़िल्टरिंग सक्षम करें चालू होने पर, वे लोग जिनका पता किसी deny नियम से मेल खाता है, या जिनका पता allow नियमों की उपस्थिति में किसी allow नियम से नहीं मेल खाता, सर्वर तक नहीं पहुँच सकते। यह पेज ऐसे नियमों को अस्वीकार कर देता है जो आपके अपने पते को ब्लॉक कर दें। प्रॉक्सी के पीछे, पहले क्लाइंट पते सेट करें (प्रॉक्सी के पीछे क्लाइंट पते): अन्यथा हर रिक्वेस्ट प्रॉक्सी से आती हुई दिखेगी।
अपलोड और फ़ाइल शेयरिंग
| सेटिंग | कहाँ | डिफ़ॉल्ट |
|---|---|---|
अधिकतम फ़ाइल आकार (FileSettings.MaxFileSize) | Environment › File Storage | 100 MB। प्रॉक्सी के अनुरोध साइज़ लिमिट को कम से कम इतना ही रखें। |
अधिकतम पेयलोड आकार (बाइट) (ServiceSettings.MaximumPayloadSizeBytes) | Environment › Web Server | 300000: फ़ाइल अपलोड के अलावा सबसे बड़ा 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 की किसी सेवा (इसकी पुश सेवाएं, इसका ऐप मार्केटप्लेस, इसकी नोटिस या कॉल के लिए इसका STUN सर्वर) का नाम रखता है, सर्वर को उनसे संपर्क करने के लिए बाध्य नहीं करता: उन पताओं को अनदेखा कर दिया जाता है।
सर्वर और ऐप्स केवल उन सुविधाओं के लिए बाहरी सेवाओं से कनेक्ट करते हैं जिनकी उन्हें आवश्यकता होती है, और उन सेवाओं से जो आप कन्फ़िगर करते हैं:
| फीचर | संपर्क | डिफ़ॉल्ट रूप से |
|---|---|---|
| कॉल: STUN के माध्यम से सार्वजनिक पता खोजना। सर्वर और कॉल में शामिल हर व्यक्ति एक अनुरोध भेजता है, जो STUN सर्वर को अपना IP पता और पोर्ट दिखाता है। | Cloudflare का सार्वजनिक STUN सर्वर, stun.cloudflare.com | चालू, जब कॉल्स ऐप सक्षम हो। इसे बदलने के लिए, कॉल्स देखें। |
लिंक पुरवावलोकन: सर्वर संदेशों में दिए गए लिंक वाले पेजों को फ़ेच करता है (वेबसाइट लिंक पुरवावलोकन सक्रिय करें, ServiceSettings.EnableLinkPreviews) | वे वेबसाइटें जिनके लिंक लोग देते हैं | चालू। इसे बंद करने के लिए AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false का उपयोग करें। |
| मोबाइल ऐप तक पुश सूचनएं | आपका अपना पुश प्रॉक्सी (पुश सूचनाएँ) | बंद, जब तक आप उसका पता सेट न करें |
रिमोट ऐप मार्केटप्लेस (PluginSettings.EnableRemoteMarketplace) | आपके द्वारा सेट किया गया मार्केटप्लेस URL | बंद, और कोई पता नहीं |
| ईमेल | आपका SMTP सर्वर | डिफ़ॉल्ट सर्वर localhost है |
| मॉडल कनेक्शन (रिवाइट, रिकैप्स, अनुवाद, रीड अलाउड और ऐप्स), कम्युनिटी एडमिन के अपने मॉडल कनेक्शन | सिस्टम कंसोल › AI › मॉडल कनेक्शन या किसी कम्युनिटी की सेटिंग्स में जोड़े गए AI प्रोवाइडर (AI) | कोई नहीं, जब तक कोई न जोड़े |
| सिंगल साइन-ऑन, एजेंट्स ऐप के AI सर्विस, स्पीच-टू-टेक्स्ट और अनुवाद, आउटगोइंग वेबहुक, और Mail, Calendar, GitHub, GitLab या Jira जैसे ऐप्स | वे सेवाएँ जो आप कॉन्फ़िगर करते हैं | बंद, जब तक आप उन्हें कॉन्फ़िगर न करें |
डिफ़ॉल्ट रूप से, सर्वर इनके लिए (लिंक प्रीव्यू, वेबहुक, ऐप्स, कम्युनिटी मॉडल कनेक्शन) निजी और लूपबैक एड्रेस से कनेक्ट करने से इनकार कर देता है, ताकि कोई संदेश या इंटीग्रेशन आपके आंतरिक नेटवर्क तक पहुँच न सके। अविश्वसनिय आंतरिक कनेक्शन की अनुमति दें (ServiceSettings.AllowedUntrustedInternalConnections, सिस्टम कंसोल › पर्यावरण › डेवलपर में) में वे आंतरिक होस्ट सूचीबद्ध करें जिनसे यह कनेक्ट कर सके; साइट का कॉम्पोज़ फ़ाइल gifs को वहाँ सूचीबद्ध करती है।
सुरक्षा कमज़ोरी की रिपोर्ट करना
सुरक्षा संबंधी समस्याओं की गोपनीयता से रिपोर्ट करें, जैसा कि Antimatter सुरक्षा नीति में बताया गया है, सार्वजनिक इश्यूज़ में नहीं।