Η συσκευή μπορεί να εκπέμπει αρχεία καταγραφής, ο συλλέκτης βρίσκεται στην άλλη άκρη του διαδικτύου και η πρώτη ερώτηση που κάνουν όλοι είναι ποιο τούνελ να στηθεί. Αυτή η διατύπωση ξεκινά από λάθος σημείο. Η μεταφορά καθορίζεται από τη μορφή που μπορεί να παράγει η συσκευή, την πιστοποίηση που θα δεχτεί ο συλλέκτης και το τι πρέπει να σημαίνει «παραδόθηκε» όταν πέσει η ζεύξη. Γράψτε αυτές τις τρεις απαντήσεις και η μεταφορά συνήθως επιλέγει μόνη της.

Ξεκινήστε από ό,τι μπορεί να εκπέμψει η συσκευή

Στην πράξη υπάρχουν μόνο τρεις μορφές. Μεμονωμένα συμβάντα syslog μέσω UDP ή TCP, ένα πιστοποιημένο ανέβασμα HTTPS ενσωματωμένο στο προϊόν, ή ολόκληρα αρχεία γραμμένα στον δίσκο που πρέπει να μετακινηθούν. Ένα τείχος προστασίας που μπορεί να στέλνει μόνο syslog μέσω UDP δεν θα γίνει αποστολέας TLS επειδή προσθέσατε τούνελ· θα εξακολουθεί να στέλνει μη επιβεβαιωμένα αυτοδύναμα πακέτα, τώρα μέσα σε κρυπτογραφημένο φάκελο.

Άρα πρώτα καταγράψτε τον αποστολέα: πρωτόκολλο, υποστήριξη TLS και ποια βιβλιοθήκη TLS, αν μπορεί να επικυρώσει το πιστοποιητικό του συλλέκτη, αν μπορεί να παρουσιάσει πιστοποιητικό πελάτη και αν το προσωρινή μνήμη αποστολής επιβιώνει από επανεκκίνηση. Ό,τι δεν μπορεί να κάνει η συσκευή πρέπει να το κάνει κάτι άλλο στη διαδρομή, και αυτό το κάτι γίνεται μέρος του σχεδίου σας.

TLS syslog: η συντομότερη διαδρομή όταν το μιλούν και οι δύο πλευρές

Αν η συσκευή υποστηρίζει syslog μέσω TLS και ο συλλέκτης το τερματίζει, χρησιμοποιήστε το και σταματήστε. Το πρωτόκολλο εφαρμογής προστατεύει τον εαυτό του, ο συλλέκτης πιστοποιεί τον αποστολέα και δεν υπάρχει επιπλέον άλμα του οποίου τη διαθεσιμότητα κατέχετε τώρα. Η παγίδα είναι ότι το «TLS syslog» καλύπτει μεγάλο εύρος υλοποιήσεων και οι τρέχουσες οδηγίες για ασφαλές syslog έχουν προχωρήσει πέρα από τις λίστες κρυπτογράφησης σε παλιότερα μαθήματα, γι' αυτό ένας λειτουργικός προωθητής σπάει μετά από αναβάθμιση βιβλιοθήκης.

Στο rsyslog, το όνομα του άρθρωμα μεταφοράς και μόνο σας λέει σε ποια εποχή είστε: το lmnsd_gtls τυλίγει το GnuTLS, ενώ το lmnsd_ossl τυλίγει το OpenSSL και αυτό παρέχουν τα τρέχοντα πακέτα 8.x. Μια ενέργεια προώθησης με επικύρωση πιστοποιητικού μοιάζει περίπου έτσι, και αξίζει να ελέγξετε τα ακριβή ονόματα παραμέτρων με την εγκατεστημένη έκδοση:

action(type="omfwd" target="collector.example" port="6514" protocol="tcp"
       StreamDriver.Name="ossl" StreamDriver.Mode="1" StreamDriver.AuthMode="x509/name"
       StreamDriver.CAFile="/etc/pki/ca.pem"
       queue.type="LinkedList" queue.filename="fwdq" queue.maxDiskSpace="1g"
       queue.saveOnShutdown="on" action.resumeRetryCount="-1")

Επαληθεύστε το τελικό σημείο πριν αποσφαλματώσετε τον αποστολέα. Το openssl s_client -connect collector.example:6514 -servername collector.example -CAfile /etc/pki/ca.pem -verify_return_error είτε ολοκληρώνει χειραψία με έγκυρη αλυσίδα είτε σας λέει ακριβώς ποιος έλεγχος απέτυχε. Δοκιμάστε από τη συσκευή, όχι από το φορητό σας, γιατί το αποθετήριο εμπιστοσύνης της συσκευής είναι αυτό που μετράει.

SFTP: καλό για αρχεία, λάθος για ροές

Η παράδοση με βάση αρχεία ταιριάζει σε συσκευές που γράφουν κυλιόμενα αρχεία καταγραφής και τίποτα άλλο. Η μεταφορά μέσω SSH σας δίνει κλειδιά υπολογιστή, κλειδιά ανά λογαριασμό και ένα σύστημα αρχείων που μπορείτε να ελέγξετε, μια λογική ιστορία εμπιστοσύνης για συσκευή που δεν μπορεί καθόλου TLS. Είναι κακή επιλογή για ροές συμβάντων, όπου το «το αρχείο γράφεται κάθε ώρα» σημαίνει ότι μια διακοπή σας κοστίζει την ουρά της τρέχουσας ώρας.

Κρατήστε την επαλήθευση υπολογιστή ενεργή. Μια μαζική κλήση που την απενεργοποιεί για να αποφύγει μια προτροπή ακυρώνει τη μόνη πιστοποίηση που έχει η μεταφορά:

sftp -b /etc/logship/batch -o BatchMode=yes -o StrictHostKeyChecking=yes      -o IdentitiesOnly=yes -i /etc/logship/id_ed25519 [email protected]

Καρφιτσώστε το κλειδί υπολογιστή στο known_hosts του λογαριασμού κατά την προετοιμασία, περιορίστε τον λογαριασμό στον κατάλογο-στόχο και προτιμήστε το υποσύστημα internal-sftp με chroot. Σχεδιάστε και την ιστορία επαναποστολής: αν ένα αρχείο ξανασταλεί μετά από μερική αποτυχία, ο συλλέκτης πρέπει να ξεχωρίζει το διπλότυπο από ένα νέο αρχείο, συνήθως με όνομα και άθροισμα ελέγχου και όχι με χρόνο άφιξης.

Όταν μια τοπική πύλη ή ένα τούνελ είναι η έντιμη απάντηση

Ορισμένες συσκευές μπορούν να μιλούν μόνο μια μορφή που κανείς δεν θέλει να εκθέσει. Σε αυτή την περίπτωση ένας εξουσιοδοτημένος συλλέκτης στο δίκτυο της ίδιας της συσκευής λαμβάνει την εγγενή μορφή και τη διαβιβάζει περαιτέρω μέσω TLS. Είναι νόμιμο σχέδιο, αλλά να είστε ακριβείς για το τι αγοράζει: η κρυπτογράφηση που ξεκινά στην πύλη δεν προστατεύει αναδρομικά το τμήμα μεταξύ συσκευής και πύλης, άρα αυτό το άλμα χρειάζεται ακόμη το δικό του όριο εμπιστοσύνης και έλεγχο πρόσβασης.

Ένα δρομολογημένο τούνελ τοποθεσίας ή συσκευής είναι η βαρύτερη επιλογή και η σωστή όταν ο συλλέκτης πρέπει να κρατήσει ιδιωτική διεύθυνση και να μεταφέρει πολλές υπηρεσίες, όχι μόνο αρχεία καταγραφής. Φέρνει σχεδιασμό διευθύνσεων, κανόνες πρόσβασης, διαδρομές επιστροφής και τον κύκλο ζωής του τελικού σημείου του τούνελ. Δεν βελτιώνει ούτε το εσωτερικό πρωτόκολλο: το UDP syslog μέσα σε τούνελ IPsec παραμένει υπηρεσία αυτοδύναμων πακέτων χωρίς επιβεβαίωση παράδοσης.

Ό,τι κι αν επιλέξετε, κρατήστε την εξουσιοδότηση του συλλέκτη στενότερη από τη μεταφορά. Η ταυτότητα του τούνελ ανήκει σε ένα τελικό σημείο και δεν λέει τίποτα για το ποια κατώτερη συσκευή παρήγαγε ένα δεδομένο πεδίο ονόματος υπολογιστή σε ένα μήνυμα.

Γράψτε το συμβόλαιο παράδοσης πριν την αποστολή

Η κρυπτογράφηση, η πιστοποίηση και η διατήρηση απαντούν σε διαφορετικά ερωτήματα, και μια ουρά δεν είναι πολιτική διατήρησης. Πριν φύγει το πρώτο αρχείο καταγραφής από τη συσκευή, αποφασίστε τι σημαίνει πραγματικά μια επιβεβαίωση σε αυτόν τον συλλέκτη: παραλήφθηκε στο δίκτυο, έγινε δεκτό προς επεξεργασία ή γράφτηκε ανθεκτικά στον δίσκο. Αυτές είναι τρεις διαφορετικές εγγυήσεις και μόνο η τελευταία επιβιώνει από επανεκκίνηση του συλλέκτη.

Έπειτα απαντήστε γραπτώς στις επιχειρησιακές ερωτήσεις. Πού περιμένουν τα μη απεσταλμένα συμβάντα και επιβιώνει αυτό το προσωρινή μνήμη από διακοπή ρεύματος; Τι συμβαίνει όταν γεμίσει και ποιος ενημερώνεται; Πώς περιορίζονται οι επαναλήψεις και πώς αναγνωρίζονται τα διπλότυπα; Ποιο πεδίο αποδεικνύει την ταυτότητα του αποστολέα, δεδομένου ότι ένα άλμα προώθησης μπορεί να ξαναγράψει το όνομα υπολογιστή;

Κρατήστε το σχέδιο αρκετά μικρό ώστε να εξηγείται σε μία παράγραφο: η μικρότερη υποστηριζόμενη μεταφορά που μεταφέρει τα απαιτούμενα συμβάντα, μαζί με ρητή δήλωση των εγγυήσεων που δεν παρέχει. Αν η απάντηση χρειάζεται δύο άλματα, πείτε το στο runbook και δώστε σε κάθε άλμα έναν υπεύθυνο.

Σχετικά άρθρα