Få ett meddelande via e-post när någon går in som root av SSH

De av oss som administrerar servrar måste hålla strängast möjliga kontroll över allt som händer på servern, en av de saker som vi ofta behöver veta är när en användare ansluter via SSH (root ingår), för detta med ett paket och en rad skulle nå våra e-postaviseringar.

Kan du föreställa dig att varje gång någon ansluter via SSH med root får de ett e-postmeddelande som säger?

Med andra ord skulle de få ett e-postmeddelande som skulle säga något så här:

[miserver] Varning: Tillgång till rotterminal den: 2014/01/21 (200.55.51.151)

Det är:

[$ NOMBRE_VPS] Varning: Åtkomst till rotterminal den: $ DATE ($ IP_DE_WHO_S_CONNECT)

För att uppnå detta måste de först installera ett paket som kallas mailx.

Om du antar att din server använder Debian eller någon distro baserat på den (jag rekommenderar endast Debian, inte Ubuntu eller liknande för servrar) skulle det vara:

apt-get install mailx

Obs: Det tidigare kommandot körs som root direkt på servern, eftersom det är en VPS, bör sudo inte användas om det inte är absolut nödvändigt.

Sedan måste vi sätta följande rad i roten .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

För att redigera /root/.bashrc använd någon editor i terminal som nano:

nano /root/.bashrc

Kom ihåg att du måste ange ditt e-postmeddelande i slutet av raden, helt enkelt ändra my@email.com till det e-postmeddelande du vill att meddelandena ska nå

Efter att ha placerat (var som helst i filen) linjen som jag lade innan sparar vi filen med ctrl + O (Eller björn) och vi lämnade det med ctrl + X

Redo, varje gång någon går in i rotterminalen kommer .bashrc-filen att laddas, vilket är något som alltid görs som standard, och när filen laddas kommer linjen som skickar e-postmeddelandet att köras och lämnar oss i vår inkorg något som:

e-postmeddelande-ssh

Förklaringen på linjen är något riktigt enkelt:

  1. Genom mailx skickar jag posten, med parametern -s «_____» anger jag ämnet och skickar det med ekot «____» och ett rör innehållet i kroppen.
  2. "värdnamn" med detta får jag värdnamnet eller värdnamnet, det vill säga namnet på VPS.
  3. 'datum +'% Y /% m /% d''datumkommandot visar systemdatum, resten av bokstäverna anger helt enkelt hur jag vill att datumet ska visas.
  4. vem | grep -v localhost `Om du kör vem på din dator kommer det att visa dig de aktiva användarna, med en grep -v localhost ser jag till att den bara visar de som har anslutit från en annan plats till själva servern, det vill säga i princip SSH
  5. `vem | grep -v localhost | awk {'print $ 5'} `Det som skiljer den här raden från den förra är awk, genom awk och utskrift av den 5: e kolumnen är att jag får IP-adressen från var de anslöt till SSH

Hur som helst, linjen är något lång och kan verka komplex att förstå, men det finns många konstiga karaktärer men allt är ganska enkelt 🙂

Som alltid hoppas jag att du har tyckt att det är intressant.

hälsningar


Innehållet i artikeln följer våra principer om redaktionell etik. Klicka på för att rapportera ett fel här.

22 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras.

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   manuelperez sade

    En fråga, med vilken e-postserver skickas den? Måste du konfigurera ett fraktkonto?

    1.    KZKG ^ Gaara sade

      Du måste ha mailx-paketet installerat 😉
      När detta är klart skickas det utan att behöva konfigurera något annat på servern.

      1.    manuelperez sade

        Jag kommer att prova det, men jag tror att min e-post inte accepterar att ta emot e-post från en obehörig källa ...

        1.    yomismo sade

          Jag använder exim4 med ett 'gmail'-konto för att skicka e-post och det fungerar bra
          - Med undantag för FRÅN TILL och SVAR TILL rubriker, som gmail sätter vad den vill men de kommer bra -.
          För att konfigurera gmail med exim4 använd den här informationen:
          http://dajul.com/2009/06/08/configurar-exim4-con-gmail-o-google-apps/

          1.    KZKG ^ Gaara sade

            Intressant, tack så mycket 🙂

      2.    Israel sade

        Friend @ KZKG ^ Gaara Jag har installerat paketet och jag har gjort manualen steg för steg, det enda som när jag skickar det har jag den lokala posten, jag fick aldrig ut, kan du hjälpa mig med det ?? ...… väl Jag behöver verkligen ha det här temat konfigurerat på mina servrar, salu2s.

        1.    KZKG ^ Gaara sade

          Enligt din IP antar jag att du kommer från samma land 😉
          "Problemet" med våra nätverk har sällan riktiga IP-adresser som sådana, det vill säga vi är undernätade under ett ministeriums proxy-nätverk eller något liknande. Med andra ord, möjligen är problemet att webbservern i sig inte kan få ett e-postmeddelande från nätverket eller något liknande, kanske du behöver det här: https://blog.desdelinux.net/enviar-emails-por-consola-con-sendmail/

  2.   truko22 sade

    intressant och om det placeras i "/ etc / profile" kommer det att ge varningen när någon användare ansluter?

    1.    KZKG ^ Gaara sade

      Det skulle vara nödvändigt att försöka, det hade inte tänkt mig 😀

  3.   Nebukadnessar sade

    Kalla mig paranoid, men sätt ett skript som en främling föreslår mig i en viktig del av mitt system där jag behåller lösenord för konton, data som födelsebevis, personliga dokument och arbetsdokument (därmed utsätter mina klienter också) etc etc innebär också att jag exponerar mitt e-postkonto (!!!) ... ja, det är något farligt, tror jag.

    1.    yomismo sade

      Faran med det presenterade manuset är omvänt proportionell mot förståelsen av det.

      Och för paranoia, sluta installera Icke-fria arkiv, eftersom det är möjligt att någon anger en skadlig kod som stjäl din kundvagn.

    2.    KZKG ^ Gaara sade

      Jag förklarade vad varje del av kommandoraden gör, men om du tror att jag bedrar någon, finns skriptet eller kommandona precis där i inlägget, det har ingen dold eller hemlig kod, du är välkommen att granska kommandona så noggrant som du vill att det går, om du hittar något misstänksamt kan du kommentera det här 😉

  4.   browsons sade

    Är uppskattad.

  5.   detta namn är falskt sade

    Mycket intressant.

    Kanske är ~ / .bashrc- eller / etc / profilfilerna inte de mest lämpliga om vi får åtkomst av SSH med en normal användare och kör ett specifikt kommando som root. Eller om vi exporterar X11 från vår fjärr-VPS, varje gång vi öppnar en xterm skulle vi ha ett nytt e-postmeddelande.

    För mailx-hacket tycker jag att vi ska använda filerna ~ / .ssh / rc (individ för varje användare) eller / etc / ssh / sshrc

    PostData: _NEVER_ åtkomst av SSH som root-användare. _NEVER_ åtkomst med SSH med lösenord. _ALWAYS_ använder privata nycklar.

    1.    truko22 sade

      intressant → ~ / .ssh / rc Jag letar efter mer information om det tack gracias

  6.   chinoloco sade

    Hej, väldigt bra handledare!
    Kan du skapa en att gå in via ssh från vilken som helst ip, utanför det lokala nätverket?
    tack!

  7.   vidagnu sade

    Det här skriptet fungerar om e-postservern vi skickar till inte verifierar att källmeddelandet kommer från en autentisk server, i det här fallet kommer det från root @ localhost, de flesta servrar tar det som skräppost.

    Vad jag gör är att konfigurera sendmail som en MTA och sedan använda e-postmeddelandet som finns i alla distros för att skicka e-post.

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

  8.   Algave sade

    Tack för tipset så ska jag testa det:]

  9.   kuk sade

    mycket användbara tack

  10.   Israel sade

    Tack en miljon för rådvännen @ KZKG ^ Gaara, jag ska titta på sendmail, jag hoppas lösa, salu2s.

  11.   joskar sade

    Bra! Tack för inmatningen!

  12.   Juan C sade

    Och vad händer, om till exempel skriptet skickar för många e-postmeddelanden, till exempel kommer någon in i rotterminalen klockan 8:00 och skickade cirka 40 e-postmeddelanden, då kom någon in vid en annan tidpunkt och mer än 23 e-postmeddelanden skickades och sedan kommer någon in vid en annan tid och mer än 150 e-postmeddelanden skickades, vad kan det vara?