سیکیورٹی
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 | میٹرکس | صرف ذاتی نیٹ ورک، جب فعال ہو۔ لاگ ان کی ضرورت نہیں۔ |
| 8074/tcp اور udp | کلسٹر گوسپ | صرف کلسٹر کے نڈز کے درمیان۔ |
| 5432, 9000, 8080, 8066 | PostgreSQL، فائل اسٹوریج، GIF سروس، پش پراکسی | کبھی نہیں۔ کمپوز فائلز انہیں اندرونی نیٹ ورکس پر رکھتی ہیں جس میں کوئی شائع شدہ پورٹ نہیں ہوتا۔ |
سائٹ کی کمپوز فائل ہر کنٹینر کو no-new-privileges کے ساتھ چلاتی ہے، Antimatter کو ایک غیر امتیازی صارف کے طور پر ایک ڈسٹرولس امیج پر چلاتی ہے، اور GIF سروس کو ریڈ-انلی فائل سسٹم کے ساتھ چلاتی ہے۔ ڈیٹا بیس، اسٹوریج اور GIF سروس انٹرنیٹ تک رسائی کے بغیر نیٹ ورک پر ہیں۔
نصب کے بعد چیک لسٹ
- کسی اور کے سرور تک رسائی حاصل کرنے سے پہلے پہلا ایڈمن اسٹریٹر اکاؤنٹ بنائیں (نصب)۔
- Antimatter کو صرف HTTPS کے ذریعے فراہم کریں، اور سائٹ URL کو
https://پتے پر سیٹ کریں (ڈومین اور HTTPS)۔ .env،config.jsonاور TLS کیز کو صرف روٹ (یا سرور کے صارف) کے لیے قابلِ مطالعہ رکھیں: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) | ماحولیات › فائل اسٹوریج | 100 MB۔ پروکسی کی درخواست سائز کی حد کو کم از کم اس کے برابر رکھیں۔ |
Maximum Payload Size (Bytes) (ServiceSettings.MaximumPayloadSizeBytes) | ماحولیات › ویب سروسر | 300000: فائل اپ لوڈز کے علاوہ سب سے بڑی API درخواست |
فائل شیئرنگ کی اجازت دیں (FileSettings.EnableFileAttachments) | سائٹ کنفیگریشن › فائل شیئرنگ اور ڈاؤن لوڈز | آن |
| موبائل پر فائلوں کے اپ لوڈ کی اجازت دیں، موبائل پر فائل ڈاؤن لوڈز کی اجازت دیں | سائٹ کنفیگریشن › فائل شیئرنگ اور ڈاؤن لوڈز | آن |
عوامی فائل لنکس فعال کریں (FileSettings.EnablePublicLink) | سائٹ کنفیگریشن › عوامی لنکس | بند: جب آن ہو، تو لوگ فائل کو ایسے لنک کے ذریعے شیئر کر سکتے ہیں جو سائن ان کے بغیر بھی کام کرتا ہے |
SVGs فعال کریں (ServiceSettings.EnableSVGs) | سائٹ کنفیگریشن › پوسٹس | نئے سروسر پر بند: جب آن ہو، تو 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 سیکیورٹی پالیسی میں بیان کیے گئے طریقے سے خفیہ طور پر رپورٹ کریں، عوامی مسائل میں نہیں۔