Erhalten Sie eine Benachrichtigung per E-Mail, wenn jemand per SSH als Root zugreift

Diejenigen von uns, die Server verwalten, müssen die strengstmögliche Kontrolle über alles behalten, was auf dem Server geschieht. Eines der Dinge, die wir oft wissen müssen, ist, wenn ein Benutzer eine Verbindung über SSH (einschließlich Root) herstellt, dazu mit einem Paket und einer Leitung würde unsere E-Mail-Benachrichtigungen erreichen.

Können Sie sich vorstellen, dass jemand jedes Mal, wenn er sich über SSH mit root verbindet, eine E-Mail mit der Aufschrift erhält?

Mit anderen Worten, sie würden eine E-Mail erhalten, die ungefähr so ​​lautet:

[miserver] Warnung: Root-Terminal-Zugriff am: 2014 (01)

Das ist:

[$ NOMBRE_VPS] Warnung: Zugriff auf das Root-Terminal am: $ DATE ($ IP_DE_WHO_S_CONNECT)

Um dies zu erreichen, müssen sie zuerst ein Paket namens aufrufen mailx.

Angenommen, Ihr Server verwendet Debian oder eine darauf basierende Distribution (ich empfehle nur Debian, nicht Ubuntu oder ähnliches für Server), wäre dies:

apt-get install mailx

Hinweis: Der vorherige Befehl wird als root direkt auf dem Server ausgeführt, da es sich um ein VPS handelt. Sudo sollte nur verwendet werden, wenn dies unbedingt erforderlich ist.

Dann müssen wir die folgende Zeile in die Wurzel .bashrc einfügen:

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

Um /root/.bashrc zu bearbeiten, verwenden Sie einen Editor im Terminal wie nano:

nano /root/.bashrc

Denken Sie daran, dass Sie Ihre E-Mail-Adresse am Ende der Zeile angeben müssen. Ändern Sie einfach my@email.com in die E-Mail-Adresse, die die Benachrichtigungen erreichen sollen

Nachdem wir (irgendwo in der Datei) die Zeile eingefügt haben, die ich zuvor eingefügt habe, speichern wir die Datei mit Ctrl + O (Oder Bär) und wir ließen es mit Ctrl + X

Bereit, jedes Mal, wenn jemand das Root-Terminal betritt, wird die .bashrc-Datei geladen. Dies wird standardmäßig immer durchgeführt. Wenn die Datei geladen wird, wird die Zeile ausgeführt, in der die E-Mail gesendet wird, und es verbleibt etwas in unserem Posteingang. wie:

E-Mail-Benachrichtigung-ssh

Die Erklärung der Zeile ist wirklich einfach:

  1. Über mailx sende ich die Mail mit dem Parameter -s «_____». Ich gebe den Betreff an und übergebe ihn mit dem Echo «____» und einer Pipe den Inhalt des Körpers.
  2. `Hostname` damit bekomme ich den Hostnamen oder Hostnamen, also den Namen des VPS.
  3. `date + '% Y /% m /% d'` Der Befehl date zeigt mir das Systemdatum an. Die restlichen Buchstaben geben einfach an, wie das Datum angezeigt werden soll.
  4. wer | grep -v localhost` Wenn Sie ausführen, wer auf Ihrem Computer angezeigt wird, werden Ihnen die aktiven Benutzer angezeigt. Mit einem grep -v localhost stelle ich sicher, dass nur diejenigen angezeigt werden, die von einem anderen Standort aus eine Verbindung zum Server selbst hergestellt haben, dh im Grunde SSH
  5. `wer | grep -v localhost | awk {'print $ 5'} `Was diese Zeile von der vorherigen unterscheidet, ist das awk, durch das awk und das Drucken der 5. Spalte ist, dass ich die IP von der Stelle bekomme, an der sie mit SSH verbunden sind

Wie auch immer, die Zeile ist etwas lang und scheint komplex zu verstehen, es gibt jedoch viele seltsame Zeichen, aber alles ist recht einfach 🙂

Wie immer hoffe ich, dass Sie es interessant gefunden haben.

Grüße


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   manuelperez sagte

    Eine Frage, mit welchem ​​Mailserver wird es gesendet? Müssen Sie ein Versandkonto konfigurieren?

    1.    KZKG ^ Gaara sagte

      Sie müssen das mailx-Paket installiert haben 😉
      Sobald dies erledigt ist, wird es gesendet, ohne dass etwas anderes auf dem Server konfiguriert werden muss.

      1.    manuelperez sagte

        Ich werde es versuchen, aber ich denke, meine E-Mail akzeptiert nicht den Empfang von E-Mails von einer nicht authentifizierten Quelle ...

        1.    yomismo sagte

          Ich benutze exim4 mit einem Google Mail-Konto, um E-Mails zu senden, und es funktioniert einwandfrei
          - Mit Ausnahme der Header FROM TO und REPLY TO, die in Google Mail das enthalten, was es will, aber gut ankommen.
          Verwenden Sie diese Informationen, um Google Mail mit exim4 zu konfigurieren:
          http://dajul.com/2009/06/08/configurar-exim4-con-gmail-o-google-apps/

          1.    KZKG ^ Gaara sagte

            Interessant, vielen Dank 🙂

      2.    Israel sagte

        Friend @ KZKG ^ Gaara Ich habe das Paket installiert und das Handbuch Schritt für Schritt erstellt. Das einzige, was ich beim Senden der lokalen Post habe, bin ich nie rausgekommen. Kannst du mir dabei helfen? Ich muss dieses Thema wirklich auf meinen Servern konfigurieren, salu2s.

        1.    KZKG ^ Gaara sagte

          Aufgrund Ihrer IP gehe ich davon aus, dass Sie aus demselben Land stammen 😉
          Das "Problem" mit unseren Netzwerken hat selten echte IPs als solche, das heißt, wir sind unter einem Proxy-Netzwerk des Ministeriums oder ähnlichem subnettiert. Mit anderen Worten, möglicherweise besteht das Problem darin, dass der Webserver allein keine E-Mail vom Netzwerk oder Ähnlichem erhalten kann. Vielleicht benötigen Sie Folgendes: https://blog.desdelinux.net/enviar-emails-por-consola-con-sendmail/

  2.   truko22 sagte

    interessant und wenn es in "/ etc / profile" platziert ist, wird es die Warnung geben, wenn sich ein Benutzer verbindet?

    1.    KZKG ^ Gaara sagte

      Es wäre notwendig zu versuchen, es war mir nicht eingefallen 😀

  3.   Nebukadnezar sagte

    Nennen Sie mich paranoid, aber setzen Sie ein Skript, das mir ein Fremder vorschlägt, in einen wichtigen Teil meines Systems, in dem ich Kontokennwörter, Daten wie Geburtsurkunden, persönliche Dokumente und Arbeitsdokumente (wodurch auch meine Kunden offengelegt werden) usw. usw. aufbewahre bedeutet auch, mein E-Mail-Konto freizulegen (!!!)… nun, es ist etwas Gefährliches, denke ich.

    1.    yomismo sagte

      Die Gefahr des vorgestellten Skripts ist umgekehrt proportional zum Verständnis des Skripts.

      Und für Paranoia beenden Sie die Installation von NICHT-KOSTENLOSEN Repositorys, da möglicherweise jemand einen Schadcode eingibt, der Ihren Warenkorb stiehlt.

    2.    KZKG ^ Gaara sagte

      Ich habe erklärt, was jeder Teil der Befehlszeile tut. Wenn Sie jedoch glauben, ich täusche jemanden, das Skript oder die Befehle befinden sich direkt im Beitrag, enthält es keinen versteckten oder geheimen Code. Sie können die Befehle auch gerne gründlich prüfen Wenn Sie etwas Verdächtiges finden, kommentieren Sie es bitte hier 😉

  4.   Browser sagte

    Wird geschätzt.

  5.   diesernameistfalsch sagte

    Sehr interessant.

    Möglicherweise sind die Dateien ~ / .bashrc oder / etc / profile nicht am besten geeignet, wenn wir mit einem normalen Benutzer über SSH darauf zugreifen und einen bestimmten Befehl als root ausführen. Wenn wir den X11 von unserem Remote-VPS exportieren, erhalten wir jedes Mal, wenn wir einen xterm öffnen, eine neue E-Mail.

    Für den Mailx-Hack sollten wir die Dateien ~ / .ssh / rc (individuell für jeden Benutzer) oder / etc / ssh / sshrc verwenden

    PostData: _NEVER_ Zugriff durch SSH als Root-Benutzer. _NIE_ Zugriff per SSH mit Passwort. _ALWAYS_ private Schlüssel verwenden.

    1.    truko22 sagte

      interessant → ~ / .ssh / rc Ich werde mehr Informationen darüber finden, danke 😀

  6.   Chinoloco sagte

    Hallo, sehr guter Tutor!
    Könnten Sie eine Eingabe über ssh von einer beliebigen IP außerhalb des lokalen Netzwerks vornehmen?
    ich danke Ihnen!

  7.   vidagnu sagte

    Dieses Skript funktioniert, wenn der Mailserver, an den wir senden, nicht überprüft, ob die Quellmail von einem authentischen Server stammt. In diesem Fall stammt sie von root @ localhost. Die meisten Server nehmen sie als Spam auf.

    Ich konfiguriere sendmail als MTA und verwende dann die E-Mail, die in allen Distributionen enthalten ist, um E-Mails zu senden.

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

  8.   Alge sagte

    Danke für den Tipp, den ich zum Testen haben werde:]

  9.   kuk sagte

    Dank nützlich

  10.   Israel sagte

    Vielen Dank für den Rat Freund @ KZKG ^ Gaara, ich werde mir sendmail ansehen, ich hoffe es zu lösen, salu2s.

  11.   Joska sagte

    Groß! Danke für die Eingabe!

  12.   Juan C. sagte

    Und was passiert, wenn zum Beispiel das Skript zu viele E-Mails sendet, zum Beispiel jemand um 8:00 Uhr das Root-Terminal betritt und ungefähr 40 E-Mails sendet, dann jemand zu einem anderen Zeitpunkt eingibt und mehr als 23 E-Mails gesendet wurden und dann jemand kommt zu einem anderen Zeitpunkt und mehr als 150 E-Mails wurden gesendet, was könnte es sein?