Ασφάλεια
Ένας κατάλογος ελέγχου για την ενίσχυση ενός server Antimatter: τι να εκτεθεί, τα όρια και οι ρυθμίσεις απορρήτου που πρέπει να ελεγχθούν, οι εξωτερικές υπηρεσίες με τις οποίες επικοινωνεί ο server και ο τρόπος αναφοράς ενός προβλήματος ασφαλείας.
Τι να εκτεθεί
| Θύρα | Υπηρεσία | Εκτέθεση |
|---|---|---|
| 443/tcp, 443/udp, 80/tcp | Το HTTPS proxy (Caddy ή nginx) | Δημόσια: αυτός είναι ο τρόπος με τον οποίο οι χρήστες φτάνουν στο Antimatter. |
| 8443/udp και 8443/tcp | Μέσα κλήσεων | Δημόσια, αν οι χρήστες κάνουν κλήσεις από εκτός δικτύου σας. |
| 8065/tcp | Ο web server του Antimatter | Μόνο στο proxy: δημοσιεύστε το σε 127.0.0.1 (HTTP_PORT=127.0.0.1:8065). |
| 8067/tcp | Μετρικές | Μόνο σε ιδιωτικό δίκτυο, όταν είναι ενεργοποιημένο. Χωρίς σύνδεση. |
| 8074/tcp και udp | Gossip συσσωρευτή | Μόνο μεταξύ κόμβων συσσωρευτή. |
| 5432, 9000, 8080, 8066 | PostgreSQL, αποθήκευση αρχείων, υπηρεσία GIF, proxy push | Ποτέ. Τα αρχεία compose τα διατηρούν σε εσωτερικά δίκτυα χωρίς δημοσιευμένη θύρα. |
Το αρχείο compose του χώρου εκτέλεσης εκτελεί επίσης κάθε container με no-new-privileges, εκτελεί το Antimatter ως μη προνομιούχο χρήστη σε εικόνα distroless και εκτελεί την υπηρεσία GIF με μόνο-αναγνωση σύστημα αρχείων. Η βάση δεδομένων, η αποθήκευση και η υπηρεσία GIF βρίσκονται σε δίκτυο χωρίς πρόσβαση στο Internet.
Κατάλογος ελέγχου μετά την εγκατάσταση
- Δημιουργήστε τον πρώτο λογαριασμό διαχειριστή πριν ο server γίνει προσβάσιμος από άλλους (Εγκατάσταση).
- Παρέχετε το Antimatter μόνο μέσω HTTPS και ορίστε τη διεύθυνση χώρου στο
https://(Δομένιο και HTTPS). - Διατηρήστε τα
.env,config.jsonκαι τα κλειδιά TLS αναγνώσιμα μόνο από τον root (ή τον χρήστη του server):chmod 600 .env. - Ορίστε ποιοι μπορούν να δημιουργήσουν λογαριασμούς, κρατήστε το Ενεργοποίηση ανοιχτού διακομιστή απενεργοποιημένο εκτός αν η κοινότητα είναι δημόσια, και ενεργοποιήστε το Απαιτείται επαλήθευση email μόλις λειτουργήσει το email (Σύνδεση και λογαριασμοί).
- Ενεργοποιήστε την αυθεντικοποίηση με πολλαπλούς παράγοντες και επιβάλετέ τουλάχιστον στους λογαριασμούς διαχειριστών, ή χρησιμοποιήστε την του πάροχου ταυτοποίησης σας.
- Ελέγξτε τις εξωτερικές συνδέσεις παρακάτω, ιδιαίτερα τον server STUN που χρησιμοποιούν οι κλήσεις από προεπιλογή.
- Πριν προσθέσετε συνδέσεις μοντέλων, ορίστε το κλειφρυπτογράφησης της Τέχνης (Τέχνη) (
AM_AI_ENCRYPTION_KEY) και διατηρήστε ένα αντίγραφο χωριστά από τα αντίγραφα ασφαλείας της βάσης δεδομένων (Τέχνη). - Κάντε αντίγραφα ασφαλείας και δοκιμάστε την αποκατάσταση (Αντίγραφα ασφαλείας και αναβαθμίσεις).
- Τηρείτε τις εικόνες ή τα πακέτα ενημερωμένα: οι διορθώσεις ασφαλείας φτάνουν με τις νέες εκδόσεις.
Περιορισμός ρυθμού
Ο διακομιστής μπορεί να περιορίζει τον αριθμό των αιτήσεων API που κάνει κάθε πελάτης. Είναι απενεργοποιημένο από προεπιλογή. Στο Κονσόλα συστήματος › Περιβάλλον › Περιορισμός ρυθμού:
| Ρύθμιση | Κλειδί | Προεπιλογή |
|---|---|---|
| Ενεργοποίηση περιορισμού ρυθμού | RateLimitSettings.Enable | απενεργοποιημένη |
| Μέγιστα ερωτήματα ανά δευτερόλεπτο | RateLimitSettings.PerSec | 10 |
| Μέγιστο μέγεθος burst | RateLimitSettings.MaxBurst | 100 |
| Μέγεθος αποθήκης μνήμης | RateLimitSettings.MemoryStoreSize | 10000 πελάτες παρακολουθούνται |
| Διαφοροποίηση ορίου ρυθμού ανά απομακρυσμένη διεύθυνση | RateLimitSettings.VaryByRemoteAddr | ενεργοποιημένο |
| Διαφοροποίηση ορίου ρυθμού ανά χρήστη | RateLimitSettings.VaryByUser | απενεργοποιημένη |
| Διαφοροποίηση ορίου ρυθμού ανά κεφαλίδα HTTP | RateLimitSettings.VaryByHeader | κενό |
Πίσω από έναν proxy, οι περιορισμοί βάσει διεύθυνσης λειτουργούν μόνο αν ο διακομιστής γνωρίζει τη διεύθυνση κάθε πελάτη (ServiceSettings.TrustedProxyIPHeader και ServiceSettings.TrustedProxyIPs, δείτε Διευθύνσεις πελατών πίσω από proxy). Αλλιώς, κάθε αίτημα φαίνεται να προέρχεται από τον proxy και όλοι μοιράζονται έναν περιορισμό. Το ίδιο ισχύει για τη φιλτράρισμα IP και για τις διευθύνσεις στα αρχεία ελέγχου.
Οι προσπάθειες σύνδεσης περιορίζονται ξεχωριστά: το Μέγιστος αριθμός προσπαθειών σύνδεσης (10) κλειδώνει έναν λογαριασμό μετά από τόσες αποτυχημένες κωδικές.
Φιλτράρισμα IP
Το Κονσόλα συστήματος › Διαμόρφωση Ιστοτόπου › Φιλτράρισμα IP περιορίζει την πρόσβαση στον διακομιστή με βάση τη διεύθυνση IP, με κανόνες επιτρεπόμενης και απαγορευμένης πρόσβασης (κάθε κανόνας μπορεί να είναι μια διεύθυνση ή ένα εύρος CIDR). Όταν το Ενεργοποίηση φιλτραρίσματος IP είναι ενεργοποιημένο, οι χρήστες cuya διεύθυνση ταιριάζει με έναν κανόνα απαγόρευσης, ή δεν ταιριάζει με κανέναν κανόνα επιτρεπόμενης πρόσβασης (εφόσον υπάρχουν τέτοιοι κανόνες), δεν μπορούν να φτάσουν στον διακομιστή. Η σελίδα απορρίπτει κανόνες που θα μπλόκαραν τη δική σας διεύθυνση. Αν χρησιμοποιείτε proxy, ρυθμίστε πρώτα τις διευθύνσεις των πελατών (Διευθύνσεις πελατών πίσω από proxy): αλλιώς κάθε αίτημα φαίνεται να προέρχεται από το proxy.
Ανέβασματα και κοινή χρήση αρχείων
| Ρύθμιση | Πού | Προεπιλογή |
|---|---|---|
Μέγιστο μέγεθος αρχείου (FileSettings.MaxFileSize) | Περιβάλλον › Αποθήκευση αρχείων | 100 MB. Κρατήστε το όριο μεγέθους αιτήματος του proxy τουλάχιστον σε αυτή την τιμή. |
Μέγιστο μέγεθος φορτίου (bytes) (ServiceSettings.MaximumPayloadSizeBytes) | Περιβάλλον › Διακομιστής web | 300000: το μεγαλύτερο αίτημα API εκτός από τα ανέβασματα αρχείων |
Επιτρεπόμενη κοινή χρήση αρχείων (FileSettings.EnableFileAttachments) | Ρυθμίσεις τοποθεσίας › Κοινή χρήση και λήψη αρχείων | ενεργοποιημένο |
| Επιτρέπει ανέβασμα αρχείων σε κινητές συσκευές, Επιτρεπόμενες λήψεις αρχείων σε κινητά | Ρυθμίσεις τοποθεσίας › Κοινή χρήση και λήψη αρχείων | ενεργοποιημένο |
Ενεργοποίηση δημόσιων συνδέσμων αρχείων (FileSettings.EnablePublicLink) | Ρυθμίσεις τοποθεσίας › Δημόσιοι σύνδεσμοι | απενεργοποιημένο: όταν είναι ενεργοποιημένο, τα άτομα μπορούν να μοιραστούν ένα αρχείο με έναν σύνδεσμο που λειτουργεί χωρίς σύνδεση |
Ενεργοποίηση SVG (ServiceSettings.EnableSVGs) | Ρυθμίσεις τοποθεσίας › Δημοσιεύσεις | απενεργοποιημένο σε έναν νέο διακομιστή: όταν είναι ενεργοποιημένο, οι εικόνες SVG εμφανίζονται εντός της σελίδας |
Ενεργοποίηση αναζήτησης αρχείων (ServiceSettings.EnableFileSearch) | Ρυθμίσεις τοποθεσίας › Κοινή χρήση και λήψη αρχείων | Ενεργό: Απενεργοποιημένο αποκρύπτει την αναζήτηση αρχείων από την καρτέλα Αρχεία των αποτελεσμάτων αναζήτησης, τόσο στην κλασική εφαρμογή web όσο και στο Fusion |
Ενεργοποίηση δεικτοδότησης αρχείων (ElasticsearchSettings.EnableFileIndexing) | Περιβάλλον › Elasticsearch, με ρυθμισμένο Elasticsearch ή OpenSearch | Ενεργό: Απενεργοποιημένο σταματά τη δεικτοδότηση νέων ή τροποποιημένων αρχείων, αλλά τα αρχεία που έχουν δεικτοδοτηθεί προηγουμένως παραμένουν αναζητήσιμα |
Το Antimatter δεν σαρώνει τα ανέβασματα για κακόβουλο λογισμικό.
Ρυθμίσεις απορρήτου
Στη Κονσόλα συστήματος › Διαμόρφωση Ιστοτόπου › Χρήστες και ομάδες:
| Ρύθμιση | Κλειδί | Προεπιλογή | Λειτουργία |
|---|---|---|---|
| Εμφάνιση διεύθυνσης email | PrivacySettings.ShowEmailAddress | ενεργοποιημένο | Αν είναι απενεργοποιημένη, οι διευθύνσεις ηλεκτρονικού ταχυδρομείου των μελών είναι κρυφές από όλους εκτός από τους διαχειριστές. Απενεργοποιήστε την σε δημόσιους διακομιστές. |
| Εμφάνιση πλήρους ονόματος | PrivacySettings.ShowFullName | ενεργοποιημένο | Αν είναι απενεργοποιημένη, τα πλήρη ονόματα είναι κρυφά και εμφανίζονται αντί για αυτά τα ονόματα χρηστών. |
| Ενεργοποίηση αγνοήσεων, μπλοκ και αιτημάτων μηνύματος | PrivacySettings.EnableUserBlocking | ενεργοποιημένο | Δείτε παρακάτω. |
| Ενεργοποίηση άνοιξης καναλιών άμεσων μηνυμάτων με | TeamSettings.RestrictDirectMessage | Οποιονδήποτε χρήστη στον διακομιστή Antimatter | Ή Οποιοδήποτε μέλος της ομάδας: μόνο άτομα που μοιράζονται μια κοινότητα. |
Αγνοήσεις, αποκλεισμοί και αιτήσεις μηνυμάτων
Με ενεργοποιημένη την επιλογή Ενεργοποίηση αγνοήσεων, μπλοκ και αιτημάτων μηνύματος (η προεπιλογή), οι χρήστες μπορούν να αγνοούν και να μπλοκάρουν ο ένας τον άλλον, και να επιλέγουν εάν τα άμεσα μηνύματα από αγνώστους θα φτάνουν κανονικά, θα περιμένουν ως αιτήματα μηνύματος ή θα απορρίπτονται outright (κάποιος που έχει απορριφθεί δεν μπορεί να ξεκινήσει άμεσο ή ομαδικό μήνυμα μαζί τους, ούτε να γράψει σε ένα που δεν έχει γίνει ακόμα δεκτό). Κάθε επιλογή μπορεί να διαφέρει ανά κοινότητα και ισχύει η πιο αυστηρή από τις κοινότητες που μοιράζονται οι χρήστες. Αυτό ταιριάζει σε δημόσιες κοινότητες. Σε έναν χώρο εργασίας όπου οι συνάδελφοι πρέπει πάντα να μπορούν να επικοινωνούν μεταξύ τους, απενεργοποιήστε το (AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING=false): καμία από αυτές τις επιλογές για άμεσα μηνύματα δεν εφαρμόζεται πλέον, αλλά οι λίστες και οι επιλογές που έχουν κάνει οι χρήστες διατηρούνται και εφαρμόζονται ξανά αν το ενεργοποιήσετε εκ νέου. Τα στοιχεία προφίλ που βλέπουν οι χρήστες κάθε κοινότητας εφαρμόζονται και στις δύο περιπτώσεις. Οι διαχειριστές συστήματος και ο ίδιος ο χρήστης βλέπουν πάντα τα πάντα.
Συνεδρίες και διακρίβια
- Διάρκεια συνεδριών και χρονικό όριο αδράνειας: δείτε Σύνδεση και λογαριασμοί. Μικρότερες συνεδρίες σημαίνουν ότι ένα χαμένο φορητό υπολογιστή ή κινητό παραμένει συνδεδεμένο για λιγότερο χρόνο.
- Το Ενεργοποίηση προσωπικών διαπιστευτηρίων πρόσβασης (
ServiceSettings.EnableUserAccessTokens, απενεργοποιημένο) επιτρέπει στους χρήστες να δημιουργούν tokens API· το Μέγιστη διάρκεια ζωής προσωπικού token πρόσβασης (ημέρες) τα περιορίζει. Και τα δύο βρίσκονται στη Κονσόλα συστήματος › Ολοκληρώσεις › Διαχείριση ολοκληρώσεων. - Για να αποσυνδέσετε όλους ταυτόχρονα, για παράδειγμα μετά από υποψία παραβίασης: Ανακάλωση όλων των συνεδριών στο Κονσόλα συστήματος › Διαχείριση χρηστών › Χρήστες.
- Στο περιβάλλον του Antimatter, οι χρήστες λαμβάνουν προειδοποίηση για νέα σύνδεση στον λογαριασμό τους ενώ είναι συνδεδεμένοι και μπορούν να την αποσυνδέσουν μόνοι τους (δείτε Πού είστε συνδεδεμένοι). Οι διαχειριστές συστήματος δεν ειδοποιούνται για τις συνδέσεις άλλων χρηστών.
Συνδέσεις με εξωτερικές υπηρεσίες
Το Antimatter δεν επικοινωνεί με καμία υπηρεσία που εκτελείται από τη Mattermost, Inc. Δεν στέλνει telemetria, αναφορές σφαλμάτων ή ελέγχους ασφαλείας ενημερώσεων, και δεν ανακτήει ειδοποιήσεις προϊόντος. Μια ρύθμιση που μεταφέρθηκε από το Mattermost και αναφέρει ακόμα μία από τις υπηρεσίες της Mattermost (τις υπηρεσίες push, την αγορά εφαρμογών, τις ειδοποιήσεις ή τον διακομιστή STUN για κλήσεις) δεν κάνει τον διακομιστή να επικοινωνήσει με αυτές: οι διευθύνσεις αυτές αγνοούνται.
Ο διακομιστής και οι εφαρμογές συνδέονται με άλλες εξωτερικές υπηρεσίες μόνο για τις λειτουργίες που τις απαιτούν, και με τις υπηρεσίες που ρυθμίζετε:
| Χαρακτηριστικό | Επικοινωνίες | Κατά προεπιλογή |
|---|---|---|
| Κλήσεις: εύρεση δημόσιων διευθύνσεων με STUN. Ο διακομιστής και κάθε άτομο που συμμετέχει σε μια κλήση στέλνουν ένα αίτημα, το οποίο δείχνει στον διακομιστή STUN τη διεύθυνση IP και την θύρα του. | Ο δημόσιος διακομιστής STUN της Cloudflare, stun.cloudflare.com | ενεργή, εφόσον η εφαρμογή Κλήσεων είναι ενεργοποιημένη. Για να το αλλάξετε, δείτε Κλήσεις. |
Προεπισκοπήσεις συνδέσμων: ο διακομιστής ανακτά τις σελίδες που συνδέονται στα μηνύματα (Ενεργοποίηση προεπισκοπήσεων συνδέσμων ιστοτόπων, ServiceSettings.EnableLinkPreviews) | τις ιστοσελίδες στις οποίες συνδέονται οι χρήστες | ενεργή. Απενεργοποιήστε με AM_SERVICESETTINGS_ENABLELINKPREVIEWS=false. |
| Ειδοποιήσεις push στην κινητή εφαρμογή | το δικό σας proxy push (Ειδοποιήσεις push) | ανενεργή, έως ότου ορίσετε τη διεύθυνσή της |
Η απομακρυσμένη αγορά εφαρμογών (PluginSettings.EnableRemoteMarketplace) | τη Διεύθυνση Marketplace που ορίζετε | ανενεργή, και χωρίς διεύθυνση |
| Ηλεκτρονικό ταχυδρομείο | τον SMTP διακομιστή σας | ο προεπιλεγμένος διακομιστής είναι localhost |
| Συνδέσεις μοντέλων (αναδιατύπωση, περίληψη, μετάφραση, εκφώνηση, πράκτορες και εφαρμογές), οι δικές τους συνδέσεις μοντέλων των διαχειριστών κοινότητας | οι πάροχοι AI που προστέθηκαν στο Κονσόλα συστήματος › AI › Συνδέσεις μοντέλων ή στις ρυθμίσεις μιας κοινότητας (AI) | κανένα, μέχρι κάποιος να προσθέσει ένα |
| Ενιαία σύνδεση (Single sign-on), οι υπηρεσίες AI της εφαρμογής συνομιλίας AI, μετατροπή ομιλίας σε κείμενο και μετάφραση, εξερχόμενα webhooks και εφαρμογές όπως Mail, Ημερολόγιο, GitHub, GitLab ή Jira | τις υπηρεσίες που διαμορφώνετε | ανενεργές, έως ότου τις διαμορφώσετε |
Εξ ορισμού, ο διακομιστής αρνείται να συνδέεται με ιδιωτικές και loopback διευθύνσεις για αυτά (προεπισκόπησης συνδέσμων, webhooks, εφαρμογές, συνδέσεις μοντέλων κοινότητας), ώστε ένα μήνυμα ή μια ολοκλήρωση να μην μπορεί να χρησιμοποιηθεί για να φτάσει στο εσωτερικό σας δίκτυο. Καταγράψτε τους εσωτερικούς υπολογιστές στους οποίους επιτρέπεται να φτάσει στο Επιτρέπει μη αξιόπιστες εσωτερικές συνδέσεις προς (ServiceSettings.AllowedUntrustedInternalConnections, στο Κονσόλα συστήματος › Περιβάλλον › Ανάπτυξη); το αρχείο compose του χώρου εργασίας καταγράφει το gifs εκεί.
Αναφορά ευπάθειας
Αναφέρετε τα προβλήματα ασφαλείας ιδιωτικά, όπως εξηγείται στην πολιτική ασφαλείας του Antimatter, και όχι σε δημόσια θέματα.