Πώς να χρησιμοποιήσετε την τελευταία εντολή στο Linux

Ποιος, πότε και από πού; Οι καλές πρακτικές ασφαλείας λένε ότι πρέπει να γνωρίζετε ποιος έχει πρόσβαση στον υπολογιστή σας Linux. Σας δείχνουμε πώς.

Το αρχείο wtmp

Το Linux και άλλα λειτουργικά συστήματα παρόμοια με το Unix, όπως το MacOS, είναι πολύ καλά στην καταγραφή. Κάπου στα έγκατα του συστήματος, υπάρχει ένα αρχείο καταγραφής για σχεδόν όλα όσα μπορείτε να σκεφτείτε. Το αρχείο καταγραφής που μας ενδιαφέρει ονομάζεται wtmp. Το “w” μπορεί να σημαίνει “when” ή “who” – κανείς δεν φαίνεται να συμφωνεί. Το τμήμα “tmp” πιθανώς σημαίνει “προσωρινό”, αλλά μπορεί επίσης να σημαίνει “χρονοσήμανση”.

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

Σε αντίθεση με πολλά από τα αρχεία καταγραφής που βασίζονται σε κείμενο στο Linux, το wtmp είναι ένα δυαδικό αρχείο. Για να αποκτήσουμε πρόσβαση στα δεδομένα μέσα σε αυτό, πρέπει να χρησιμοποιήσουμε ένα εργαλείο σχεδιασμένο για αυτήν την εργασία.

Αυτό το εργαλείο είναι η τελευταία εντολή.

Η τελευταία εντολή

Η τελευταία εντολή διαβάζει δεδομένα από το αρχείο καταγραφής wtmp και τα εμφανίζει σε ένα παράθυρο τερματικού.

Αν πληκτρολογήσετε τελευταίο και πατήσετε Enter, θα γίνει εμφάνιση όλων των εγγραφών από το αρχείο καταγραφής.

last

Κάθε εγγραφή από το wtmp εμφανίζεται στο παράθυρο τερματικού.

Από αριστερά προς τα δεξιά, κάθε γραμμή περιέχει:

Το όνομα χρήστη του ατόμου που συνδέθηκε.
Το τερματικό στο οποίο είχαν συνδεθεί. Μια καταχώρηση τερματικού :0 σημαίνει ότι ήταν συνδεδεμένοι στον ίδιο τον υπολογιστή Linux.
Η διεύθυνση IP του μηχανήματος στο οποίο είχαν συνδεθεί.
Η σφραγίδα ώρας και ημερομηνίας σύνδεσης.
Η διάρκεια της συνεδρίας.

  Πώς να διορθώσετε έναν υπολογιστή Linux που δεν εκκινεί

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

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

Εμφάνιση συγκεκριμένου αριθμού γραμμών

Η χρήση της τελευταίας εντολής από μόνη της δημιουργεί μια απόθεση ολόκληρου του αρχείου καταγραφής με το μεγαλύτερο μέρος του να περνά από το παράθυρο του τερματικού. Το τμήμα που παραμένει ορατό είναι τα παλαιότερα δεδομένα στο αρχείο καταγραφής. Αυτό μάλλον δεν είναι αυτό που θέλατε να δείτε.

Μπορείτε να πείτε τελευταίο να σας δώσει έναν συγκεκριμένο αριθμό γραμμών εξόδου. Κάντε αυτό παρέχοντας τον αριθμό των γραμμών που θέλετε στη γραμμή εντολών. Σημειώστε την παύλα. Για να δείτε πέντε γραμμές, πρέπει να πληκτρολογήσετε -5 και όχι 5:

last -5

Αυτό δίνει τις πρώτες πέντε γραμμές από το αρχείο καταγραφής, που είναι τα πιο πρόσφατα δεδομένα.

Εμφάνιση ονομάτων δικτύου για απομακρυσμένους χρήστες

Η επιλογή -d (Domain Name System) λέει στο τελευταίο να προσπαθήσει να επιλύσει τις διευθύνσεις IP απομακρυσμένων χρηστών σε ένα όνομα μηχανήματος ή δικτύου.

last -d

Δεν είναι πάντα δυνατή η μετατροπή της διεύθυνσης IP σε όνομα δικτύου, αλλά η εντολή θα το κάνει όταν μπορεί.

Απόκρυψη διευθύνσεων IP και ονομάτων δικτύου

Εάν δεν σας ενδιαφέρει η διεύθυνση IP ή το όνομα δικτύου, χρησιμοποιήστε την επιλογή -R (χωρίς όνομα κεντρικού υπολογιστή) για να καταργήσετε αυτό το πεδίο.

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

Επιλογή Εγγραφών κατά Ημερομηνία

Μπορείτε να χρησιμοποιήσετε την επιλογή -s (since) για να περιορίσετε την έξοδο ώστε να εμφανίζει μόνο συμβάντα σύνδεσης που πραγματοποιήθηκαν από μια συγκεκριμένη ημερομηνία.

Εάν θέλατε να δείτε μόνο συμβάντα σύνδεσης που πραγματοποιήθηκαν από τις 26 Μαΐου 2019, θα χρησιμοποιούσατε την ακόλουθη εντολή:

last -R -s 2019-05-26

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

  Πώς να επεξεργαστείτε το αρχείο Hosts στο Linux

Αναζήτηση μέχρι την ημερομηνία λήξης

Μπορείτε να χρησιμοποιήσετε το -t (μέχρι) για να καθορίσετε μια ημερομηνία λήξης. Αυτό σας επιτρέπει να επιλέξετε ένα σύνολο εγγραφών σύνδεσης που πραγματοποιήθηκαν μεταξύ δύο ημερομηνιών ενδιαφέροντος.

Αυτή η εντολή ζητά την τελευταία ανάκτηση και εμφάνιση των εγγραφών σύνδεσης από τις 00:00 (αυγή) της 26ης έως την ώρα 00:00 (αυγή) στις 27. Αυτό περιορίζει τη λίστα σε περιόδους σύνδεσης που πραγματοποιήθηκαν μόνο την 26η.

Μορφές ώρας και ημερομηνίας

Μπορείτε να χρησιμοποιήσετε χρόνους καθώς και ημερομηνίες με τις επιλογές -s και -t.

Οι διαφορετικές μορφές ώρας που μπορούν να χρησιμοποιηθούν με τις τελευταίες επιλογές που χρησιμοποιούν ημερομηνίες και ώρες είναι (υποτίθεται ότι):

ΕΕΕΕΜΜΗΧμμς
ΕΕΕΕ-ΜΜ-ΗΗ ωω:λλ:δδ
ΕΕΕΕ-ΜΜ-ΗΗ ωω:μμ – τα δευτερόλεπτα έχουν ρυθμιστεί στο 00
ΕΕΕΕ-ΜΜ-ΗΗ – η ώρα έχει οριστεί στις 00:00:00
ωω:μμ:δδ – η ημερομηνία έχει οριστεί σήμερα
ωω:λλ – η ημερομηνία θα οριστεί σήμερα, δευτερόλεπτα έως το 00
τώρα
χθες – η ώρα έχει οριστεί στις 00:00:00
σήμερα – η ώρα έχει οριστεί στις 00:00:00
αύριο – η ώρα έχει οριστεί στις 00:00:00
+5 λεπτά
-5 μέρες

Γιατί «δήθεν»;

Η δεύτερη και η τρίτη μορφή στη λίστα δεν λειτούργησαν κατά τη διάρκεια της έρευνας για αυτό το άρθρο. Αυτές οι εντολές δοκιμάστηκαν σε διανομές Ubuntu, Fedora και Manjaro. Αυτά είναι παράγωγα των διανομών Debian, RedHat και Arch, αντίστοιχα. Αυτό καλύπτει όλες τις κύριες οικογένειες διανομής Linux.

last -R -s 2019-05-26 11:00 -t 2019-05-27 13:00

Όπως μπορείτε να δείτε, η εντολή δεν επέστρεψε καμία εγγραφή.

Η χρήση της πρώτης μορφής ημερομηνίας και ώρας από τη λίστα με την ίδια ημερομηνία και ώρα με την προηγούμενη εντολή επιστρέφει εγγραφές:

last -R -s 20190526110000 -t 20190527130000

Αναζήτηση κατά συγγενείς μονάδες

Καθορίζετε επίσης χρονικές περιόδους που μετρώνται σε λεπτά ή ημέρες, σε σχέση με την τρέχουσα ημερομηνία και ώρα. Εδώ ζητάμε δίσκους από πριν δύο μέρες μέχρι και πριν μια μέρα.

last -R -s -2days -t -1days

Χθες, Σήμερα και Τώρα

Μπορείτε να χρησιμοποιήσετε το χθες και το αύριο ως συντομογραφία για τη χθεσινή ημερομηνία και τη σημερινή ημερομηνία.

last -R -s yesterday -t today

Όχι ότι αυτό δεν θα περιλαμβάνει κανένα ρεκόρ για σήμερα. Αυτή είναι η αναμενόμενη συμπεριφορά. Η εντολή ζητά εγγραφές από την ημερομηνία έναρξης μέχρι την ημερομηνία λήξης. Δεν περιλαμβάνει εγγραφές εντός της ημερομηνίας λήξης.

  Πώς να ασφαλίσετε τον διακομιστή σας Linux με το fail2ban

Η επιλογή τώρα είναι συντομογραφία για το “σήμερα την τρέχουσα ώρα”. Για να δείτε τα συμβάντα σύνδεσης που έχουν λάβει χώρα από τις 00:00 (το ξημέρωμα) μέχρι τη στιγμή που θα εκδώσετε την εντολή χρησιμοποιήστε αυτήν την εντολή:

last -R -s today -t now

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

Η παρούσα Επιλογή

Η επιλογή -p (παρών) σάς επιτρέπει να μάθετε ποιος ήταν συνδεδεμένος σε μια χρονική στιγμή.

Δεν έχει σημασία πότε συνδέθηκαν ή αποχώρησαν, αλλά αν ήταν συνδεδεμένοι στον υπολογιστή τη στιγμή που καθορίσατε, θα συμπεριληφθούν στην καταχώριση.

Εάν καθορίσετε μια ώρα χωρίς ημερομηνία τελευταία, προϋποθέτει ότι εννοείτε “σήμερα”.

last -R -p 09:30

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

Εάν χρησιμοποιείτε τη συντομογραφία τώρα με την επιλογή -p (παρών), μπορείτε να μάθετε ποιος είναι συνδεδεμένος τη στιγμή που εκδώσατε την εντολή.

last -R -p now

Αυτός είναι ένας κάπως μακροπρόθεσμος τρόπος για να επιτύχετε αυτό που μπορεί να επιτευχθεί χρησιμοποιώντας την εντολή who.

Η τελευταία εντολή

Αξίζει να αναφερθεί η εντολή lastb. Διαβάζει δεδομένα από ένα αρχείο καταγραφής που ονομάζεται btmp. Υπάρχει λίγη περισσότερη συναίνεση σχετικά με αυτό το όνομα αρχείου καταγραφής. Το «b» σημαίνει κακό, αλλά το μέρος «tmp» εξακολουθεί να είναι αντικείμενο συζήτησης.

Το lastb παραθέτει τις κακές (αποτυχημένες) προσπάθειες σύνδεσης. Δέχεται τις ίδιες επιλογές με την προηγούμενη. Επειδή ήταν αποτυχημένες προσπάθειες σύνδεσης, όλες οι καταχωρίσεις θα έχουν διάρκεια 00:00.

Πρέπει να χρησιμοποιήσετε το sudo με το lastb.

sudo lastb -R

Η τελευταία λέξη για το θέμα

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