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

Γιατί η καταγραφή καταγράφει τον εαυτό της

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

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

Χτίστε την εξαίρεση ως μία ομάδα

Ξεκινήστε από το πώς ο απομακρυσμένος κεντρικός υπολογιστής βλέπει τη συνεδρία σας, όχι από τη διεύθυνση στο τοπικό σας τερματικό. Ένας κεντρικός υπολογιστής αναπήδησης ή μια συσκευή NAT μπορούν να κάνουν τον απέναντι κάτι που δεν πληκτρολογήσατε ποτέ, γι' αυτό διαβάστε τη διεύθυνση από την οπτική της απομακρυσμένης πλευράς. Στη συνέχεια ομαδοποιήστε τον κεντρικό υπολογιστή και τη θύρα μαζί, ώστε η άρνηση να ισχύει για το ζεύγος.

tcpdump -ni eth0 '(net 10.60.0.0/24) and not (host 203.0.113.77 and tcp port 2222)'

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

Το φίλτρο που φαίνεται σωστό και κρατά τα πάντα

Το λάθος φίλτρο είναι αυτό που διαβάζεται φυσικά: η πηγή δεν είναι ο απέναντι ή ο προορισμός δεν είναι ο απέναντι. Για ένα πακέτο από τον σταθμό εργασίας σας το πρώτο τεστ είναι αληθές· για την απάντηση το δεύτερο. Η ένωσή τους με or κρατά και τις δύο κατευθύνσεις, που είναι ακριβώς αυτό που θέλατε να απορρίψετε.

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

Αποφασίστε με βάση τι πρέπει να αποδείξει η καταγραφή

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

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

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