Modtag underretning via e-mail, når nogen får adgang til som root af SSH

De af os, der administrerer servere, skal have den strengest mulige kontrol over alt, hvad der sker på serveren, en af ​​de ting, som vi ofte skal vide, er, når en bruger forbinder via SSH (root inkluderet), for dette med en pakke og en linje ville nå vores e-mail-meddelelser.

Kan du forestille dig, at hver gang nogen forbinder via SSH med root, modtager de en e-mail, der siger?

Med andre ord ville de modtage en e-mail, der ville sige noget som dette:

[ miserver ] Advarsel: Root Terminal Adgang den: 2014/01/21 (200.55.51.151)

Det er:

[ $VPS_NAME ] Advarsel: Adgang til Root Terminal den: $DATE ($IP_OF_WHO_SE_CONNECTED)

For at opnå dette skal de først installere en pakke kaldet mailx.

Hvis du antager, at din server bruger Debian eller en distro baseret på den (jeg anbefaler kun Debian, ikke Ubuntu eller lignende til servere), ville det være:

apt-get install mailx

Bemærk: Den forrige kommando udføres som root direkte på serveren, da det er en VPS, bør sudo ikke bruges, medmindre det er strengt nødvendigt.

Så skal vi indsætte følgende linje i 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

For at redigere /root/.bashrc brug en terminal editor som nano:

nano /root/.bashrc

Husk at du skal angive din e-mail sidst i linjen, du skal blot ændre min@email.com til den e-mail, som du vil have notifikationerne til at komme til

Efter at have lagt (hvor som helst i filen) den linje, som jeg satte før, gemmer vi filen med Ctrl + O (Eller bjørn) og vi kom ud af det med Ctrl + X

Færdig, hver gang nogen går ind i rodterminalen, vil .bashrc-filen blive indlæst, hvilket er noget, der altid gøres som standard, og når filen er indlæst, vil linjen, der sender e-mailen blive udført, hvilket efterlader noget i vores indbakke som:

email-ssh-notifikation

Forklaringen på linjen er noget virkelig simpelt:

  1. Ved hjælp af mailx sender jeg mailen, med parameteren -s "_____" angiver jeg emnet, og jeg sender det med ekko "____" og et rør indholdet af kroppen.
  2. `hostname` med dette får jeg værtsnavnet eller værtsnavnet, det vil sige navnet på VPS'en.
  3. `date +'%Y/%m/%d'` dato-kommandoen viser mig systemdatoen, resten af ​​bogstaverne angiver bare hvordan jeg ønsker at datoen skal vises.
  4. hvem | grep -v localhost` Hvis du kører hvem på din computer, den vil vise dig de aktive brugere, med en grep -v localhost sørger jeg for, at den kun viser dem, der har oprettet forbindelse fra en anden placering til selve serveren, altså SSH i bund og grund
  5. `hvem | grep -v localhost | awk {'print $5'}` Det, der adskiller denne linje fra den forrige, er awk, ved at bruge awk og udskrive den 5. kolonne er, at jeg får IP'en fra hvor de tilsluttede SSH

Anyway, linjen er ret lang, og den kan virke kompleks at forstå, dog er der mange mærkelige karakterer, men alt er ret simpelt 🙂

Som altid håber jeg, at du fandt det interessant.

hilsen


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   manuelperez sagde han

    Et spørgsmål, med hvilken mailserver sendes det? Skal jeg oprette en forsendelseskonto?

    1.    KZKG ^ Gaara sagde han

      Du skal have mailx-pakken installeret 😉
      Når dette er gjort, sendes det uden behov for at konfigurere noget andet på serveren.

      1.    manuelperez sagde han

        Jeg vil prøve det, men jeg tror, ​​at min e-mail ikke vil acceptere modtagelse af e-mail fra en ikke-godkendt kilde...

        1.    Mig selv sagde han

          Jeg bruger exim4 med en 'gmail'-konto til at sende e-mails, og det fungerer fint
          – undtagen FROM TO og REPLY TO headerne, som gmail sætter, hvad den vil have, men de ankommer godt -.
          For at konfigurere gmail med exim4, brug disse oplysninger:
          http://dajul.com/2009/06/08/configurar-exim4-con-gmail-o-google-apps/

          1.    KZKG ^ Gaara sagde han

            Interessant, mange tak 🙂

      2.    israel sagde han

        Ven @KZKG^Gaara Jeg har installeret pakken og jeg har lavet manualen trin for trin, det eneste er at når jeg sender den, bliver den lokale post hos mig, den kom aldrig ud, kan du hjælpe mig med det?? …… ja, jeg skal virkelig have dette tema konfigureret på mine servere, salu2s.

        1.    KZKG ^ Gaara sagde han

          Ved din IP antager jeg, at du er fra mit samme land 😉
          "Problemet" med vores netværk har sjældent rigtige IP'er som sådan, det vil sige, at vi er under et undernet af et ministerium proxy-netværk, eller noget i den stil. Med andre ord er problemet muligvis, at webserveren i sig selv ikke kan få en e-mail fra netværket eller sådan noget, måske har du brug for dette: https://blog.desdelinux.net/enviar-emails-por-consola-con-sendmail/

  2.   truko22 sagde han

    interessant, og hvis det er placeret i "/etc/profile", vil det give en advarsel, når en bruger forbinder?

    1.    KZKG ^ Gaara sagde han

      Jeg skulle prøve, det var ikke faldet mig ind 😀

  3.   Nebukadnesar sagde han

    Kald mig paranoid, men sæt et script, som en fremmed foreslår mig, i en vigtig del af mit system, hvor jeg opbevarer kontoadgangskoder, data såsom fødselsattester, personlige dokumenter og arbejdsdokumenter (således afslører mine klienter også) osv. osv. indebærer også at afsløre min e-mail-konto (!!!)... ja, det er noget farligt, tror jeg.

    1.    Mig selv sagde han

      Faren ved det præsenterede manuskript er omvendt proportional med forståelsen af ​​det.

      Og for paranoia, stop med at installere IKKE-GRATIS arkiver, fordi det er muligt, at nogen introducerer en ondsindet kode, der stjæler din indkøbskurv.

    2.    KZKG ^ Gaara sagde han

      Jeg forklarede, hvad hver del af kommandolinjen gør, men hvis du tror, ​​jeg narrer nogen, er scriptet eller kommandoerne lige der i indlægget, det har ikke nogen skjult eller hemmelig kode, du er velkommen til at gennemgå kommandoerne så grundigt som du vil. der udføres, hvis du finder noget mistænkeligt, så kommenter det lige her 😉

  4.   brynsoner sagde han

    Det værdsættes.

  5.   dette navn er falsk sagde han

    Meget interessant.

    Måske er filerne ~/.bashrc eller /etc/profile ikke de mest passende i tilfælde af, at vi får adgang via SSH med en normal bruger og udfører en bestemt kommando som root. Eller hvis vi eksporterer X11 fra vores eksterne VPS, vil vi have en ny e-mail hver gang vi åbner en xterm.

    Til mailx-tricket synes jeg, vi skal bruge filerne ~/.ssh/rc (individuelt for hver bruger) eller /etc/ssh/sshrc

    PostData: _NEVER_ SSH ind som root. _NEVER_ adgang via SSH ved hjælp af en adgangskode. _ALTID_ brug private nøgler.

    1.    truko22 sagde han

      interessant → ~/.ssh/rc Jeg vil lede efter mere information om det tak 😀

  6.   chinoloco sagde han

    Hej, meget god tutorial!
    Kunne du få en til at indtaste via ssh fra enhver ip, uden for det lokale netværk?
    tak!!

  7.   vidagnu sagde han

    Dette script virker, hvis den mailserver, vi sender til, ikke bekræfter, at kildemailen kommer fra en autentisk server, i dette tilfælde ville det være fra root@localhost-kilden, de fleste servere vil tage det som spam.

    Det jeg gør er at konfigurere sendmail som MTA, og så bruge mail, der kommer i alle distros til at sende e-mails.

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

  8.   Algave sagde han

    Tak for tippet, jeg beholder det for at prøve det :]

  9.   hvalpe sagde han

    meget nyttig tak

  10.   israel sagde han

    Tusind tak for rådet ven @KZKG^Gaara, jeg vil tage et kig på sendmail-tinget, jeg håber at løse det, salu2s.

  11.   Joskar sagde han

    Store! Tak for input!

  12.   Juan C sagde han

    Og hvad sker der, hvis scriptet f.eks. sender for mange e-mails, f.eks. kommer nogen ind i rodterminalen kl. 8:00 og sender omkring 40 e-mails, så kommer nogen ind på et andet tidspunkt, og der sendes mere end 23 e-mails, og så kommer nogen ind på et andet tidspunkt og mere end 150 e-mails blev sendt, hvad kunne årsagen være?