Λάβετε ειδοποίηση μέσω email όταν κάποιος αποκτά πρόσβαση ως root από SSH

Όσοι από εμάς διαχειριζόμαστε διακομιστές πρέπει να διατηρήσουμε τον αυστηρότερο δυνατό έλεγχο όλων όσων συμβαίνουν στον διακομιστή, ένα από τα πράγματα που συχνά πρέπει να γνωρίζουμε είναι όταν ένας χρήστης συνδέεται μέσω SSH (περιλαμβάνεται root), για αυτό με ένα πακέτο και μια γραμμή θα έφτανα στις ειδοποιήσεις μέσω email.

Μπορείτε να φανταστείτε ότι κάθε φορά που κάποιος συνδέεται μέσω SSH με root λαμβάνει ένα email που λέει;

Με άλλα λόγια, θα λάβουν ένα email που θα έλεγε κάτι τέτοιο:

[miserver] Ειδοποίηση: Πρόσβαση στο τερματικό Root στις: 2014/01/21 (200.55.51.151)

Αυτό είναι:

[$ VPS_NAME] Ειδοποίηση: Πρόσβαση στο Root Terminal στις: $ DATE ($ IP_DE_WHO_S_CONNECT)

Για να το επιτύχουν πρέπει πρώτα να εγκαταστήσουν ένα πακέτο που ονομάζεται mailx.

Υποθέτοντας ότι ο διακομιστής σας χρησιμοποιεί το Debian ή κάποια διανομή βάσει αυτού (προτείνω μόνο το Debian, όχι το Ubuntu ή παρόμοιο για διακομιστές) θα ήταν:

apt-get install mailx

Σημείωση: Η προηγούμενη εντολή εκτελείται ως root απευθείας στον διακομιστή, καθώς είναι VPS, το sudo δεν πρέπει να χρησιμοποιείται εκτός εάν είναι απολύτως απαραίτητο.

Τότε πρέπει να βάλουμε την ακόλουθη γραμμή στο root .bashrc:

echo 'ALERTA - Acceso a Terminal de Root en:' `hostname` 'el:' `date +'%Y/%m/%d'` `who | grep -v localhost` | mail -s "[ `hostname` ] Alerta: Acceso a Terminal de Root el: `date +'%Y/%m/%d'` `who | grep -v localhost | awk {'print $5'}`" mi@email.com

Για να επεξεργαστείτε το /root/.bashrc χρησιμοποιήστε κάποιο πρόγραμμα επεξεργασίας στο τερματικό όπως το nano:

nano /root/.bashrc

Να θυμάστε ότι πρέπει να καθορίσετε το email σας στο τέλος της γραμμής, απλώς αλλάξτε το my@email.com στο email στο οποίο θέλετε να φτάσουν οι ειδοποιήσεις

Αφού βάλουμε (οπουδήποτε στο αρχείο) τη γραμμή που έβαλα πριν, αποθηκεύουμε το αρχείο με Ctrl + O (Ή αρκούδα) και το αφήσαμε Ctrl + X

Έτοιμο, κάθε φορά που κάποιος μπαίνει στο ριζικό τερματικό θα φορτώνεται το αρχείο .bashrc, κάτι που γίνεται πάντα από προεπιλογή και όταν φορτώνεται το αρχείο, θα εκτελείται η γραμμή που στέλνει το email, αφήνοντας κάτι στα εισερχόμενά μας. όπως και:

email-notification-ssh

Η εξήγηση της γραμμής είναι κάτι πολύ απλό:

  1. Μέσω mailx στέλνω το μήνυμα, με την παράμετρο -s «_____» καθορίζω το θέμα και το περνάω με ηχώ «____» και με σωλήνα το περιεχόμενο του σώματος.
  2. "hostname" με αυτό παίρνω το όνομα κεντρικού υπολογιστή ή το όνομα κεντρικού υπολογιστή, δηλαδή το όνομα του VPS.
  3. Η ημερομηνία "ημερομηνία + '% Y /% m /% d" η ημερομηνία μου δείχνει την ημερομηνία του συστήματος, ενώ τα υπόλοιπα γράμματα απλά δείχνουν πώς θέλω να εμφανίζεται η ημερομηνία.
  4. ποιος | grep -v localhost` Εάν εκτελέσετε ποιος στον υπολογιστή σας θα σας δείξει τους ενεργούς χρήστες, με ένα grep -v localhost βεβαιώνω ότι δείχνει μόνο εκείνους που έχουν συνδεθεί από διαφορετική τοποθεσία στον ίδιο τον διακομιστή, δηλαδή, βασικά SSH
  5. "ποιος | grep -v localhost | awk {'print $ 5'} "Αυτό που διαφοροποιεί αυτήν τη γραμμή από την προηγούμενη είναι η awk, μέσω της awk και η εκτύπωση της 5ης στήλης είναι ότι λαμβάνω την IP από όπου συνδέθηκαν στο SSH

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

Όπως πάντα, ελπίζω να το έχετε βρει ενδιαφέρον.

αφορά


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   μανουελπερεζφ dijo

    Μια ερώτηση, με ποιον διακομιστή αλληλογραφίας αποστέλλεται; Πρέπει να διαμορφώσετε έναν λογαριασμό αποστολής;

    1.    KZKG ^ Γκάρα dijo

      Πρέπει να έχετε εγκατεστημένο το πακέτο mailx 😉
      Μόλις γίνει αυτό, αποστέλλεται χωρίς να χρειάζεται να διαμορφώσετε οτιδήποτε άλλο στον διακομιστή.

      1.    μανουελπερεζφ dijo

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

        1.    yomismo dijo

          Χρησιμοποιώ το exim4 με λογαριασμό "gmail" για να στείλω email και λειτουργεί καλά
          - Εκτός από τις κεφαλίδες FROM TO και REPLY TO, το gmail βάζει ό, τι θέλει, αλλά φτάνει καλά -.
          Για να διαμορφώσετε το gmail με το exim4 χρησιμοποιήστε αυτές τις πληροφορίες:
          http://dajul.com/2009/06/08/configurar-exim4-con-gmail-o-google-apps/

          1.    KZKG ^ Γκάρα dijo

            Ενδιαφέρον, ευχαριστώ πολύ 🙂

      2.    Ισραήλ dijo

        Friend @ KZKG ^ Gaara Έχω εγκαταστήσει το πακέτο και έκανα το χειροκίνητο βήμα προς βήμα, το μόνο πράγμα που όταν το στέλνω έχω το τοπικό ταχυδρομείο, δεν έβγαλα ποτέ, μπορείτε να με βοηθήσετε με αυτό; …… καλά Χρειάζομαι πραγματικά να διαμορφώσω αυτό το θέμα στους διακομιστές μου, salu2s.

        1.    KZKG ^ Γκάρα dijo

          Από την IP σας υποθέτω ότι είστε από την ίδια χώρα 😉
          Το "πρόβλημα" με τα δίκτυά μας σπάνια έχουν πραγματικές IP ως τέτοιες, δηλαδή, είμαστε υποδικτύοι κάτω από ένα δίκτυο διακομιστή μεσολάβησης υπουργείου ή κάτι τέτοιο. Με άλλα λόγια, πιθανώς το πρόβλημα είναι ότι ο διακομιστής ιστού από μόνος του δεν μπορεί να λάβει email από το δίκτυο ή κάτι τέτοιο, ίσως χρειάζεστε αυτό: https://blog.desdelinux.net/enviar-emails-por-consola-con-sendmail/

  2.   truko22 dijo

    ενδιαφέρουσα και αν τοποθετηθεί στο "/ etc / profile" θα δώσει την προειδοποίηση όταν συνδεθεί κάποιος χρήστης;

    1.    KZKG ^ Γκάρα dijo

      Θα ήταν απαραίτητο να δοκιμάσω, δεν μου είχε συμβεί 😀

  3.   Nebuchadnezzar dijo

    Καλέστε με παρανοϊκό, αλλά βάλτε ένα σενάριο που ένας ξένος με προτείνει σε ένα σημαντικό μέρος του συστήματός μου όπου διατηρώ κωδικούς πρόσβασης λογαριασμού, δεδομένα όπως πιστοποιητικά γέννησης, προσωπικά έγγραφα και έγγραφα εργασίας (εκθέτοντας έτσι τους πελάτες μου) κ.λπ. κ.λπ., και αυτό συνεπάγεται επίσης την έκθεση του λογαριασμού μου στο email (!!!)… καλά, είναι κάτι επικίνδυνο, νομίζω.

    1.    yomismo dijo

      Ο κίνδυνος του σεναρίου είναι αντιστρόφως ανάλογος με την κατανόησή του.

      Και για παράνοια, σταματήστε να εγκαθιστάτε ΔΩΡΕΑΝ αποθετήρια, επειδή είναι πιθανό κάποιος να εισαγάγει έναν κακόβουλο κώδικα που κλέβει το καλάθι αγορών σας.

    2.    KZKG ^ Γκάρα dijo

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

  4.   Περιήγηση dijo

    Είναι ευπρόσδεκτη.

  5.   αυτό το όνομα είναι λάθος dijo

    Πολύ ενδιαφέρον.

    Ίσως τα αρχεία ~ / .bashrc ή / etc / profile δεν είναι τα πιο κατάλληλα στην περίπτωση που έχουμε πρόσβαση από SSH με έναν κανονικό χρήστη και εκτελούμε μια συγκεκριμένη εντολή ως root. Ή εάν εξάγουμε το X11 από το απομακρυσμένο VPS μας, κάθε φορά που ανοίγουμε ένα xterm θα έχουμε ένα νέο email.

    Για το hack mailx, νομίζω ότι πρέπει να χρησιμοποιήσουμε τα αρχεία ~ / .ssh / rc (μεμονωμένα σε κάθε χρήστη) ή / etc / ssh / sshrc

    PostData: _NEVER_ πρόσβαση από SSH ως χρήστης root. _NEVER_ πρόσβαση με SSH χρησιμοποιώντας κωδικό πρόσβασης. _ALWAYS_ χρησιμοποιήστε ιδιωτικά κλειδιά.

    1.    truko22 dijo

      ενδιαφέροντα → ~ / .ssh / rc Θα βρω περισσότερες πληροφορίες γι 'αυτό ευχαριστώ 😀

  6.   Τσινολόκο dijo

    Γεια σας, πολύ καλός δάσκαλος!
    Θα μπορούσατε να κάνετε κάποιον να εισέλθει μέσω ssh από οποιοδήποτε ip, εκτός του τοπικού δικτύου;
    σας ευχαριστώ!

  7.   vidagnu dijo

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

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

    http://vidagnu.blogspot.com/2009/02/configurar-sendmail-como-cliente-de.html

  8.   Αλγκάμπε dijo

    Ευχαριστώ για την συμβουλή που θα το δοκιμάσω:]

  9.   kuk dijo

    χάρη χρήσιμο

  10.   Ισραήλ dijo

    Ευχαριστώ ένα εκατομμύριο για τη συμβουλή φίλη @ KZKG ^ Gaara, θα ρίξω μια ματιά στο sendmail, ελπίζω να λύσω, salu2s.

  11.   Τζόσκαρ dijo

    Μεγάλος! Ευχαριστώ για τη συμβολή!

  12.   Χουάν Γ dijo

    Και τι συμβαίνει, εάν για παράδειγμα το σενάριο στέλνει πάρα πολλά email, για παράδειγμα κάποιος μπαίνει στο root terminal στις 8:00 π.μ. και έστειλε περίπου 40 email, τότε κάποιος εισήγαγε άλλη στιγμή και στάλθηκαν περισσότερα από 23 email και έπειτα κάποιος έρχεται σε άλλη στιγμή και έχουν αποσταλεί περισσότερα από 150 email, τι θα μπορούσε να είναι;