ความปลอดภัย

รายการตรวจสอบเพื่อเสริมความมั่นคงปลอดภัยของเซิร์ฟเวอร์ Antimatter: สิ่งที่ควรเปิด, ข้อจำกัดและการตั้งค่าความเป็นส่วนตัวที่ต้องตรวจสอบ, บริการภายนอกที่เซิร์ฟเวอร์ติดต่อ และวิธีรายงานปัญหาความปลอดภัย

สิ่งที่ต้องเปิด

พอร์ตบริการการเปิด
443/tcp, 443/udp, 80/tcpHTTPS proxy ของคุณ (Caddy หรือ nginx)สาธารณะ: นี่คือวิธีที่ผู้คนเข้าถึง Antimatter
8443/udp และ 8443/tcpสื่อสำหรับโทรสาธารณะ หากผู้คนใช้การโทรจากภายนอกเครือข่ายของคุณ
8065/tcpเซิร์ฟเวอร์เว็บของ Antimatterเฉพาะไปยัง proxy: เผยแพร่ที่ 127.0.0.1 (HTTP_PORT=127.0.0.1:8065)
8067/tcpตัวชี้วัดเฉพาะเครือข่ายส่วนตัว เมื่อเปิดใช้งาน ไม่ต้องเข้าสู่ระบบ
8074/tcp และ udpCluster gossipเฉพาะระหว่างโหนดในคลัสเตอร์
5432, 9000, 8080, 8066PostgreSQL, ที่เก็บไฟล์, บริการ GIF, push proxyห้ามเปิดเด็ดขาด ไฟล์ compose จะเก็บไว้ในเครือข่ายภายในโดยไม่มีพอร์ตที่เผยแพร่

ไฟล์ compose ของเว็บไซต์ยังรันทุกคอนเทนเนอร์ด้วย no-new-privileges, รัน Antimatter ด้วยผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบบนอิมเมจแบบ distroless และรันบริการ GIF ด้วยระบบไฟล์แบบอ่านอย่างเดียว ฐานข้อมูล ที่เก็บข้อมูล และบริการ GIF อยู่บนเครือข่ายที่ไม่มีอินเทอร์เน็ต

รายการตรวจสอบหลังติดตั้ง

  1. สร้างบัญชีผู้ดูแลระบบคนแรกก่อนที่ใครจะเข้าถึงเซิร์ฟเวอร์ได้ (การติดตั้ง)
  2. ให้บริการ Antimatter ผ่าน HTTPS เท่านั้น และตั้งค่า URL ของเว็บไซต์เป็นที่อยู่ https:// (โดเมนและ HTTPS)
  3. เก็บ .env, config.json และคีย์ TLS ให้ root (หรือผู้ใช้ของเซิร์ฟเวอร์) เท่านั้นที่อ่านได้: chmod 600 .env
  4. กำหนดว่าใครสามารถสร้างบัญชีได้ ปิด เปิดเซิรฟ์เวอร์สาธารณะ เว้นแต่ชุมชนจะเป็นสาธารณะ และเปิด กำหนดให้ต้องยืนยันอีเมล เมื่อระบบอีเมลทำงานแล้ว (การเข้าสู่ระบบและบัญชี)
  5. เปิดใช้การยืนยันตัวตนสองขั้นตอน และบังคับใช้สำหรับบัญชีผู้ดูแลระบบอย่างน้อย หรือใช้ของผู้ให้บริการตัวตนของคุณ
  6. ตรวจสอบการเชื่อมต่อภายนอกด้านล่าง โดยเฉพาะเซิร์ฟเวอร์ STUN ที่การโทรใช้โดยค่าเริ่มต้น
  7. ก่อนเพิ่มการเชื่อมต่อโมเดล ให้ตั้งคีย์การเข้ารหัส AI (AM_AI_ENCRYPTION_KEY) และเก็บสำเนาแยกจากสำรองข้อมูลฐานข้อมูล (AI)
  8. สำรองข้อมูล และทดสอบการกู้คืน (การสำรองข้อมูลและการอัปเกรด)
  9. อัปเดตรูปภาพหรือแพ็กเกจให้ทันสมัย: การแก้ไขความปลอดภัยจะมาถึงพร้อมกับเวอร์ชันใหม่

การจำกัดอัตรา

เซิร์ฟเวอร์สามารถจำกัดจำนวนคำขอ API ที่แต่ละไคลเอนต์ทำได้ ซึ่งปิดอยู่โดยค่าเริ่มต้น ใน คอนโซลระบบ › สภาพแวดล้อม › การจำกัดอัตรา:

การตั้งค่าคีย์ค่าเริ่มต้น
เปิด Rate LimitingRateLimitSettings.Enableปิด
จำนวนคำขอสูงสุดต่อวินาที (Maximum Queries per Second)RateLimitSettings.PerSec10
ขนาด Burst สูงสุดRateLimitSettings.MaxBurst100
ขนาด Memory StoreRateLimitSettings.MemoryStoreSizeติดตามไคลเอนต์ 10,000 ตัว
ปรับการจำกัดอัตราตามที่อยู่ระยะไกลRateLimitSettings.VaryByRemoteAddrเปิด
ปรับการจำกัดอัตราตามผู้ใช้RateLimitSettings.VaryByUserปิด
ปรับการจำกัดอัตราตาม HTTP headerRateLimitSettings.VaryByHeaderว่าง

เมื่ออยู่หลังพร็อกซี การจำกัดตามที่อยู่จะทำงานได้เฉพาะเมื่อเซิร์ฟเวอร์ทราบที่อยู่ของไคลเอนต์แต่ละตัว (ServiceSettings.TrustedProxyIPHeader และ ServiceSettings.TrustedProxyIPs ดู ที่อยู่ไคลเอนต์ที่อยู่หลังพร็อกซี) มิฉะนั้น คำขอทั้งหมดจะดูเหมือนมาจากพร็อกซี และทุกคนจะแชร์ขีดจำกัดเดียวกัน สิ่งเดียวกันนี้ใช้กับการกรอง IP และที่อยู่ในบันทึกการตรวจสอบ (audit logs) ด้วย

การพยายามเข้าสู่ระบบถูกจำกัดแยกต่างหาก: จำนวนครั้งสูงสุดในการเข้าสู่ระบบ (10) จะล็อกบัญชีหลังจากพาสเวิร์ดไม่ถูกต้องหลายครั้ง

การกรอง IP

คอนโซลระบบ › การตั้งค่าไซต์ › การกรอง IP จำกัดการเข้าถึงเซิร์ฟเวอร์ตามที่อยู่ IP ด้วยกฎอนุญาตและปฏิเสธ (แต่ละกฎเป็นที่อยู่หรือช่วง CIDR) เมื่อเปิด เปิดการกรอง IP ผู้คนที่มีที่อยู่ตรงกับกฎปฏิเสธ หรือไม่มีกฎอนุญาตเมื่อมีกฎอนุญาตอยู่ จะไม่สามารถเข้าถึงเซิร์ฟเวอร์ได้ หน้านี้จะปฏิเสธกฎที่จะบล็อกที่อยู่ของคุณเอง หากอยู่หลังพร็อกซี ให้ตั้งค่าที่อยู่ไคลเอนต์ก่อน (ที่อยู่ไคลเอนต์หลังพร็อกซี): มิฉะนั้นคำขอทั้งหมดจะดูเหมือนมาจากพร็อกซี

การอัปโหลดและการแชร์ไฟล์

การตั้งค่าตำแหน่งค่าเริ่มต้น
ขนาดไฟล์สูงสุด (FileSettings.MaxFileSize)Environment › File Storage100 MB. ให้อัตราส่วนขนาดคำขอของพร็อกซีอย่างน้อยเท่านี้
ขนาด Payload ที่มากที่สุด (ไบต์) (ServiceSettings.MaximumPayloadSizeBytes)Environment › Web Server300000: คำขอ 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 เซิร์ฟเวอร์และแต่ละคนที่เข้าร่วมการโทรจะส่งคำขอ ซึ่งแสดงที่อยู่ IP และพอร์ตของเซิร์ฟเวอร์ STUNเซิร์ฟเวอร์ STUN สาธารณะของ Cloudflare, stun.cloudflare.comเปิดใช้งานอยู่ ขณะแอปการโทรเปิดใช้งานอยู่ หากต้องการเปลี่ยน ให้ดูที่ การโทร
ตัวอย่างลิงก์: เซิร์ฟเวอร์จะดึงหน้าเว็บที่แนบในข้อความ (เปิดใช้งานตัวอย่างลิงก์เว็บไซต์, ServiceSettings.EnableLinkPreviews)เว็บไซต์ที่ผู้คนแนบไว้เปิดใช้งานอยู่ ปิดด้วย AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false
การแจงเตือนผาน push สู่แอปบนโทรศัพทพร็อกซีการแจ้งเตือนแบบพุชของคุณเอง (การแจ้งเตือนแบบพุช)ปิดอยู่ จนกว่าคุณจะตั้งค่าที่อยู่
ตลาดแอประยะไกล (PluginSettings.EnableRemoteMarketplace)URL ของ Marketplace ที่คุณตั้งค่าไว้ปิดอยู่ และไม่มีที่อยู่
อีเมลเซิร์ฟเวอร์ SMTP ของคุณเซิร์ฟเวอร์เริ่มต้นคือ localhost
การเชื่อมต่อโมเดล (การเขียนใหม่, สรุป, การแปล, การอ่านออกเสียง และแอปพลิเคชัน), การเชื่อมต่อโมเดลของผู้ดูแลชุมชนผู้ให้บริการ AI ที่เพิ่มใน คอนโซลระบบ › AI › การเชื่อมต่อโมเดล หรือในการตั้งค่าของชุมชน (AI)ไม่มี จนกว่าจะมีผู้ใดเพิ่ม
การเข้าสู่ระบบแบบ Single sign-on, บริการ AI ของแอปพลิเคชัน Agents, การแปลงเสียงเป็นข้อความและการแปล, เว็บฮุคขาออก และแอปพลิเคชันเช่น Mail, Calendar, GitHub, GitLab หรือ Jiraบริการที่คุณตั้งค่าปิดอยู่ จนกว่าคุณจะตั้งค่า

โดยค่าเริ่มต้น เซิร์ฟเวอร์จะปฏิเสธการเชื่อมต่อไปยังที่อยู่ส่วนตัวและ loopback对于这些 (ลิงก์ตัวอย่าง, เว็บฮุค, แอปพลิเคชัน, การเชื่อมต่อโมเดลของชุมชน) เพื่อให้ข้อความหรืออินทิเกรชันไม่สามารถถูกใช้เพื่อเข้าถึงเครือข่ายภายในของคุณได้ ระบุโฮสต์ภายในที่อนุญาตให้เข้าถึงได้ใน อนุญาติการเช่ือมต่อนภายในท่ีไม่ไว้วางใจถิง (ServiceSettings.AllowedUntrustedInternalConnections, ใน คอนโซลระบบ › สภาพแวดล้อม › นักพัฒนา); ไฟล์ compose ของไซต์ระบุ gifs ไว้ที่นั่น

การรายงานช่องโหว่

รายงานปัญหาความปลอดภัยเป็นการส่วนตัว ตามที่อธิบายไว้ใน นโยบายความปลอดภัยของ Antimatter แทนที่จะรายงานในปัญหาสาธารณะ