Güvenlik
Bir Antimatter sunucusunu güçlendirmek için bir kontrol listesi: nelerin açılacağı, gözden geçirilmesi gereken sınırlar ve gizlilik ayarları, sunucunun iletişim kurduğu dış hizmetler ve bir güvenlik sorununun nasıl bildirileceği.
Nelerin açılacağı
| Port | Hizmet | Erişim |
|---|---|---|
| 443/tcp, 443/udp, 80/tcp | HTTPS vekiliniz (Caddy veya nginx) | Herkese açık: İnsanlar Antimatter'a bu yolla erişir. |
| 8443/udp ve 8443/tcp | Arama medyası | Ağınızın dışından arama kullanılıyorsa herkese açık. |
| 8065/tcp | Antimatter'ın web sunucusu | Yalnızca vekile: 127.0.0.1 üzerinde yayınlayın (HTTP_PORT=127.0.0.1:8065). |
| 8067/tcp | Metrikler | Etkinleştirildiğinde yalnızca özel ağda. Giriş yapılmaz. |
| 8074/tcp ve udp | Küme sohbeti (gossip) | Yalnızca küme düğümleri arasında. |
| 5432, 9000, 8080, 8066 | PostgreSQL, dosya depolama, GIF hizmeti, itme vekili | Asla. Compose dosyaları bunları yayınlanmış portu olmayan iç ağlarda tutar. |
Sitein compose dosyası ayrıca her konteyneri no-new-privileges ile çalıştırır, Antimatter'ı distroless bir görüntü üzerinde ayrıcalıksız bir kullanıcıyla çalıştırır ve GIF hizmetini salt okunur bir dosya sistemiyle çalıştırır. Veritabanı, depolama ve GIF hizmeti, İnternet erişimi olmayan bir ağda bulunur.
Kurulumdan sonra kontrol listesi
- Sunucuya başka birinin erişmesinden önce ilk yönetici hesabını oluşturun (Kurulum).
- Antimatter'ı yalnızca HTTPS üzerinden sunun ve site URL'ini
https://adresine ayarlayın (Alan adı ve HTTPS). .env,config.jsonve TLS anahtarlarını yalnızca root (veya sunucunun kullanıcısı) tarafından okunabilir tutun:chmod 600 .env.- Hesap oluşturabilecek kişileri belirleyin, topluluk herkese açık olmadıkça Açık sunucu kullanılsın seçeneğini kapalı bırakın ve e-posta çalışmaya başladığında E-posta adresinin doğrulanması istensin seçeneğini açın (Oturum açma ve hesaplar).
- Çok faktörlü kimlik doğrulamayı etkinleştirin ve en azından yönetici hesapları için zorunlu kılın veya kimlik sağlayıcınızınkini kullanın.
- Aşağıdaki dış bağlantıları gözden geçirin, özellikle Arama'nın varsayılan olarak kullandığı STUN sunucusunu.
- Model bağlantıları eklemeden önce, AI şifreleme anahtarını (
AM_AI_ENCRYPTION_KEY) ayarlayın ve veritabanı yedeklerinden ayrı bir kopyasını saklayın (AI). - Yedek alın ve bir geri yükleme testi yapın (Yedekler ve yükseltmeler).
- Görselleri veya paketleri güncel tutun: güvenlik düzeltmeleri yeni sürümlerle birlikte gelir.
Hız sınırlaması
Sunucu, her istemcinin yapabileceği API isteklerinin sayısını sınırlayabilir. Bu özellik varsayılan olarak kapalıdır. Sistem Konsolu › Ortam › Hız sınırlaması bölümünde:
| Ayar | Anahtar | Varsayılan |
|---|---|---|
| Hız sınırlaması kullanılsın | RateLimitSettings.Enable | kapalı |
| Bir saniyedeki en fazla sorgu sayısı | RateLimitSettings.PerSec | 10 |
| En fazla art arda istek sayısı | RateLimitSettings.MaxBurst | 100 |
| Bellek depolama alanı boyutu | RateLimitSettings.MemoryStoreSize | 10000 istemci izlenir |
| Hız sınırlaması uzak adrese göre belirlensin | RateLimitSettings.VaryByRemoteAddr | açık |
| Hız sınırlaması kullanıcıya göre belirlensin | RateLimitSettings.VaryByUser | kapalı |
| HTTP üst bilgisine göre hız sınırlaması | RateLimitSettings.VaryByHeader | boş |
Bir vekilin arkasında, adres bazlı sınırlar yalnızca sunucunun her istemcinin adresini bildiği durumlarda (ServiceSettings.TrustedProxyIPHeader ve ServiceSettings.TrustedProxyIPs, bkz. Vekil arkasındaki istemci adresleri) çalışır. Aksi halde tüm istekler vekilden geliyormuş gibi görünür ve herkes tek bir sınırı paylaşır. IP filtreleme ve denetim günlüklerindeki adresler için de aynı durum geçerlidir.
Oturum açma girişimleri ayrı olarak sınırlanır: En fazla oturum açma girişimi (10) değeri, bu kadar başarısız şifre denemesi yapıldıktan sonra hesabı kilitler.
IP filtreleme
Sistem Konsolu › Site yapılandırması › IP süzme bölümü, IP adresine göre sunucuya erişimi izin ve engelleme kurallarıyla (her biri bir adres veya CIDR aralığı) sınırlar. IP süzmeyi aç seçeneği açıkken, engelleme kuralına uyan veya izin kuralları varken hiçbir izin kuralına uymayan kişiler sunucuya erişemez. Sayfa, kendi adresinizi engelleyecek kuralları reddeder. Bir vekil sunucunun arkasındaysanız, önce istemci adreslerini yapılandırın (Vekil sunucu arkasındaki istemci adresleri); aksi halde tüm istekler vekil sunucudan geliyormuş gibi görünür.
Yükleme ve dosya paylaşımı
| Ayar | Nerede | Varsayılan |
|---|---|---|
En büyük dosya boyutu (FileSettings.MaxFileSize) | Ortam › Dosya Depolama | 100 MB. Vekilin istek boyutu sınırını en az bu değerde tutun. |
En büyük yük boyutu (Bayt) (ServiceSettings.MaximumPayloadSizeBytes) | Ortam › Web Sunucusu | 300000: dosya yüklemeleri dışındaki en büyük API isteği |
Dosya paylaşılabilsin (FileSettings.EnableFileAttachments) | Site Yapılandırması › Dosya Paylaşımı ve İndirme | açık |
| Mobil uygulamalardan dosya yüklenebilsin, Mobil uygulamalardan dosya indirilebilsin | Site Yapılandırması › Dosya Paylaşımı ve İndirme | açık |
Herkese açık dosya bağlantıları kullanılsın (FileSettings.EnablePublicLink) | Site Yapılandırması › Herkese Açık Bağlantılar | kapalı: açıkken, kullanıcılar dosyayı giriş yapmadan çalışan bir bağlantıyla paylaşabilir |
SVG dosyaları görüntülensin (ServiceSettings.EnableSVGs) | Site Yapılandırması › Gönderiler | yeni bir sunucuda kapalı: açıkken, SVG görüntüleri satır içi gösterilir |
Antimatter, yüklemeleri kötü amaçlı yazılım açısından taramaz.
Gizlilik ayarları
Sistem Konsolu › Site yapılandırması › Kullanıcılar ve takımlar bölümünde:
| Ayar | Anahtar | Varsayılan | Ne işe yarar |
|---|---|---|---|
| E-posta adresi görüntülensin | PrivacySettings.ShowEmailAddress | açık | Kapalı olduğunda, üyelerin e-posta adresleri yöneticiler hariç herkes tarafından gizlenir. Halka açık sunucularda kapalı tutun. |
| Tam ad görüntülensin | PrivacySettings.ShowFullName | açık | Kapalı olduğunda, tam adlar gizlenir ve bunun yerine kullanıcı adları gösterilir. |
| Yok sayma, engelleme ve iletme isteklerini etkinleştir | PrivacySettings.EnableUserBlocking | açık | Aşağıya bakın. |
| Kullanıcılar şununla doğrudan ileti kanalı açabilsin | TeamSettings.RestrictDirectMessage | Antimatter sunucusundaki herhangi bir kullanıcı | Ya da Takımdaki herhangi bir kullanıcı: yalnızca aynı topluluğu paylaşan kişiler. |
Yoksayma, engelleme ve iletme istekleri
Yok sayma, engelleme ve iletme isteklerini etkinleştir seçeneği açıkken (varsayılan), kullanıcılar birbirlerini yok sayabilir ve engelleyebilir; tanımadıkları kişilerden gelen doğrudan iletileri, kabul edilene kadar bildirim göndermeyen iletme istekleri olarak almayı seçebilir. Bu, herkese açık topluluklar için uygundur. Meslektaşların birbirine her zaman ulaşabilmesi gereken bir iş yerindeyse bu seçeneği kapatın (AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING=false): bu durumda hiçbir kural zorunlu olarak uygulanmaz, ancak kullanıcıların oluşturduğu listeler ve yaptıkları seçimler korunur ve seçeneği tekrar açtığınızda yeniden devreye girer.
Oturumlar ve jetonlar
- Oturum süreleri ve boşta kalma zaman aşımı: Oturum açma ve hesaplar bölümüne bakın. Daha kısa oturumlar, kaybolan bir dizüstü bilgisayarın veya telefonun daha az süreyle oturum açılmış kalması anlamına gelir.
- Kişisel erişim kodları kullanılsın (
ServiceSettings.EnableUserAccessTokens, kapalı) seçeneği, kullanıcıların API jetonları oluşturmasına olanak tanır; Maksimum Kişisel Erişim Jetonu Geçerlilik Süresi (gün) bu jetonların ömrünü sınırlar. Her ikisi de Sistem Konsolu › Bütünleştirmeler › Bütünleştirme yönetimi bölümünde yer alır. - Örneğin şüpheli bir güvenlik ihlali sonrasında herkesi aynı anda oturumdan çıkarmak için: Sistem Konsolu › Kullanıcı yönetimi › Kullanıcılar bölümündeki Tüm oturumları kapat seçeneğini kullanın.
Dış hizmetlere bağlantılar
Antimatter, Mattermost, Inc. tarafından işletilen hiçbir hizmetle iletişim kurmaz. Telemetri, çökme raporları veya güvenlik güncelleme denetimleri göndermez ve ürün bildirimlerini çekmez. Mattermost'tan devralınan ve Mattermost'un hizmetlerinden birini (itme hizmetleri, uygulama mağazası, bildirimleri veya aramalar için STUN sunucusu) adlandıran bir yapılandırma, sunucunun bu hizmetlerle iletişim kurmasına neden olmaz: bu adresler yok sayılır.
Sunucu ve uygulamalar, yalnızca buna ihtiyaç duyan özellikler için ve yapılandırdığınız hizmetlere dış hizmetlerle bağlantı kurar:
| Özellik | İletişimler | Varsayılan olarak |
|---|---|---|
| Aramalar: STUN ile herkese açık adreslerin bulunması. Sunucu ve aramaya katılan her kişi, IP adresini ve portunu STUN sunucusuna gösteren bir istek gönderir. | Cloudflare'ın herkese açık STUN sunucusu, stun.cloudflare.com | açık, Calls uygulaması etkinleştirildiğinde. Değiştirmek için bkz. Calls. |
Bağlantı ön izlemeleri: sunucu, iletilerde paylaşılan bağlantıların hedeflediği sayfaları alır (Bağlantı ön izlemeleri kullanılsın, ServiceSettings.EnableLinkPreviews) | kullanıcıların bağlantı verdiği web siteleri | açık. AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false ile kapatın. |
| Mobil uygulamaya itme bildirimleri | kendi itme vekil sunucunuz (Push notifications) | adresi ayarlayana kadar kapalı |
Uzaktan uygulama mağazası (PluginSettings.EnableRemoteMarketplace) | ayarladığınız Mağaza adresi | kapalı ve adres yok |
| E-posta | SMTP sunucunuz | varsayılan sunucu localhost |
| Model bağlantıları (yeniden yazma, özetler, çeviri, sesli okuma ve uygulamalar), topluluk yöneticilerinin kendi model bağlantıları | Sistem Konsolu › AI › Model bağlantıları bölümünde veya bir topluluğun ayarlarında eklenen AI sağlayıcıları (AI) | Birisi ekleyene kadar yok |
| Tek oturum açma, Agents uygulamasının AI hizmetleri, metinden sese ve çeviri, giden webhook'lar ve Mail, Calendar, GitHub, GitLab veya Jira gibi uygulamalar | yapılandırdığınız hizmetler | yapılandırana kadar kapalı |
Varsayılan olarak sunucu, bunlar için (bağlantı önizlemeleri, webhook'lar, uygulamalar, topluluk model bağlantıları) özel ve döngü adreslerine bağlanmayı reddeder; böylece bir ileti veya entegrasyon iç ağınıza erişmek için kullanılamaz. Erişmesine izin verilecek iç ana bilgisayarları Şuraya yapılan güvenilmemiş iç bağlantılara izin verilsin (ServiceSettings.AllowedUntrustedInternalConnections, Sistem Konsolu › Ortam › Geliştirici bölümünde) altında listeleyin; sitenin compose dosyası bu alana gifs değerini ekler.
Güvenlik açığı bildirme
Güvenlik sorunlarını, Antimatter güvenlik politikasında açıklandığı gibi özel olarak bildirin, herkese açık sorunlarda değil.