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
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
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:
Die Erklärung der Zeile ist wirklich einfach:
- Ü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.
- `Hostname` damit bekomme ich den Hostnamen oder Hostnamen, also den Namen des VPS.
- `date + '% Y /% m /% d'` Der Befehl date zeigt mir das Systemdatum an. Die restlichen Buchstaben geben einfach an, wie das Datum angezeigt werden soll.
- 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
- `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
Eine Frage, mit welchem Mailserver wird es gesendet? Müssen Sie ein Versandkonto konfigurieren?
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.
Ich werde es versuchen, aber ich denke, meine E-Mail akzeptiert nicht den Empfang von E-Mails von einer nicht authentifizierten Quelle ...
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/
Interessant, vielen Dank 🙂
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.
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/
interessant und wenn es in "/ etc / profile" platziert ist, wird es die Warnung geben, wenn sich ein Benutzer verbindet?
Es wäre notwendig zu versuchen, es war mir nicht eingefallen 😀
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.
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.
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 😉
Wird geschätzt.
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.
interessant → ~ / .ssh / rc Ich werde mehr Informationen darüber finden, danke 😀
Hallo, sehr guter Tutor!
Könnten Sie eine Eingabe über ssh von einer beliebigen IP außerhalb des lokalen Netzwerks vornehmen?
ich danke Ihnen!
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
Danke für den Tipp, den ich zum Testen haben werde:]
Dank nützlich
Vielen Dank für den Rat Freund @ KZKG ^ Gaara, ich werde mir sendmail ansehen, ich hoffe es zu lösen, salu2s.
Groß! Danke für die Eingabe!
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?