Makatanggap ng abiso sa pamamagitan ng email kapag may nag-access bilang root sa pamamagitan ng SSH

Ang mga sa amin na namamahala sa mga server ay dapat panatilihin ang mahigpit na posibleng kontrol sa lahat ng nangyayari sa server, ang isa sa mga bagay na madalas nating malaman ay kapag kumonekta ang isang gumagamit sa pamamagitan ng SSH (kasama ang ugat), para dito sa isang pakete at isang linya maaabot ang aming mga abiso sa email.

Maaari mo bang isipin na sa tuwing may kumokonekta sa pamamagitan ng SSH na may ugat ay nakakakuha sila ng isang email na nagsasabi?

Sa madaling salita, makakatanggap sila ng isang email na magsasabi ng tulad nito:

[miserver] Alerto: Pag-access sa Root Terminal sa: 2014/01/21 (200.55.51.151)

Yan ay:

[$ VPS_NAME] Alerto: Pag-access sa Root Terminal sa: $ DATE ($ IP_DE_WHO_S_CONNECT)

Upang makamit ito dapat muna silang mag-install ng isang package na tinawag mailx.

Ipagpalagay na ang iyong server ay gumagamit ng Debian o ilang distro batay dito (Inirerekumenda ko lamang ang Debian, hindi ang Ubuntu o katulad para sa mga server) ito ay:

apt-get install mailx

Tandaan: Ang nakaraang utos ay naisakatuparan bilang ugat nang direkta sa server, dahil ito ay isang VPS, ang sudo ay hindi dapat gamitin maliban kung mahigpit na kinakailangan.

Pagkatapos ay dapat nating ilagay ang sumusunod na linya sa 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

Upang i-edit /root/.bashrc gumamit ng ilang editor sa terminal tulad ng nano:

nano /root/.bashrc

Tandaan na dapat mong tukuyin ang iyong email sa dulo ng linya, baguhin lamang ang aking@email.com sa email na nais mong maabot ng mga abiso

Matapos mailagay (saanman sa file) ang linya na inilagay ko dati, nai-save namin ang file Ctrl + O (O bear) at iniwan namin ito sa Ctrl + X

Handa, sa tuwing may pumapasok sa root terminal, mai-load ang .bashrc file, na kung saan ay isang bagay na palaging ginagawa bilang default, at kapag na-load ang file, ang linya na nagpapadala ng email ay papatayin, na nag-iiwan ng isang bagay sa aming inbox . bilang:

email-notification-ssh

Ang paliwanag ng linya ay isang bagay na talagang simple:

  1. Sa pamamagitan ng mailx ipinapadala ko ang mail, kasama ang mga parameter -s «_____» Tinukoy ko ang paksa, at ipinapasa ko ito sa echo «____» at isang tubo ang nilalaman ng katawan.
  2. Ang `hostname` kasama nito nakukuha ko ang hostname o hostname, iyon ay, ang pangalan ng VPS.
  3. `date + '% Y /% m /% d'` ipinapakita sa akin ng utos ng petsa ang petsa ng system, ang natitirang mga titik ay ipahiwatig lamang kung paano ko nais ipakita ang petsa.
  4. sino | grep -v localhost` Kung patakbuhin mo kung sino sa iyong computer ipapakita nito sa iyo ang mga aktibong gumagamit, na may isang grep -v localhost tinitiyak kong ipinapakita lamang nito ang mga nakakonekta mula sa ibang lokasyon sa server mismo, iyon ay, karaniwang SSH
  5. `sino | grep -v localhost | awk {'print $ 5'} `Ang pinagkaiba ng linyang ito mula sa naunang isa ay ang awk, sa pamamagitan ng awk at ang pag-print ng ika-5 haligi ay nakuha ko ang IP mula sa kung saan sila kumonekta sa SSH

Gayunpaman, ang linya ay medyo mahaba at maaaring mukhang kumplikado upang maunawaan, gayunpaman maraming mga kakaibang mga character ngunit ang lahat ay medyo simple 🙂

Tulad ng nakasanayan, inaasahan kong nahanap mo itong kawili-wili.

Regards


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   manuelperez dijo

    Isang katanungan, sa aling mail server ito ipinadala? Kailangan mo bang i-configure ang isang pagpapadala ng account?

    1.    KZKG ^ Gaara dijo

      Dapat mayroon kang naka-install na mailx package 😉
      Kapag tapos na ito, ipinadala ito nang hindi na kailangang i-configure ang anupaman sa server.

      1.    manuelperez dijo

        Susubukan ko ito, ngunit sa palagay ko ay hindi tatanggapin ng aking email ang pagtanggap ng mail mula sa isang hindi napatunayan na mapagkukunan ...

        1.    ang sarili ko dijo

          Gumagamit ako ng exim4 na may isang 'gmail' account upang magpadala ng mga email at ito ay gumagana nang maayos
          - Maliban sa MULA SA AT MAG-REPLY SA mga header, kung aling gmail ang naglalagay ng gusto nito ngunit maayos silang nakakarating -.
          Upang mai-configure ang gmail kasama ang exim4 gamitin ang impormasyong ito:
          http://dajul.com/2009/06/08/configurar-exim4-con-gmail-o-google-apps/

          1.    KZKG ^ Gaara dijo

            Kagiliw-giliw, maraming salamat 🙂

      2.    Israel dijo

        Kaibigan @ KZKG ^ Gaara Na-install ko ang package at ginawa ko ang manu-manong hakbang-hakbang, ang tanging bagay na kapag ipinadala ko ito mayroon akong lokal na mail, hindi ako nakalabas, maaari mo ba akong tulungan sa ganyan ?? …… well Kailangan ko talagang mai-configure ang temang ito sa aking mga server, salu2s.

        1.    KZKG ^ Gaara dijo

          Sa pamamagitan ng iyong IP ipinapalagay ko na ikaw ay mula sa aking bansa 😉
          Ang "problema" sa aming mga network ay bihirang magkaroon ng totoong mga IP tulad nito, iyon ay, naka-subnet kami sa ilalim ng isang network ng proxy ng ministeryo, o isang bagay na tulad nito. Sa madaling salita, posibleng ang problema ay ang web server mismo ay hindi makakakuha ng isang email mula sa network o tulad nito, marahil kailangan mo ito: https://blog.desdelinux.net/enviar-emails-por-consola-con-sendmail/

  2.   truko22 dijo

    kagiliw-giliw at kung inilagay ito sa "/ etc / profile" magbibigay ba ito ng babala kapag kumonekta ang sinumang gumagamit?

    1.    KZKG ^ Gaara dijo

      Kinakailangan na subukan, hindi ito nangyari sa akin 😀

  3.   Nabucodonosor dijo

    Tumawag sa akin paranoid, ngunit maglagay ng isang script na iminumungkahi sa akin ng isang estranghero sa isang mahalagang bahagi ng aking system kung saan itinatago ko ang mga password ng account, data tulad ng mga sertipiko ng kapanganakan, personal na mga dokumento at mga dokumento sa trabaho (kaya inilalantad din ang aking mga kliyente) atbp atbp, at iyon nagpapahiwatig din ng paglalantad ng aking email account (!!!)… mabuti, ito ay isang mapanganib na bagay, sa palagay ko.

    1.    ang sarili ko dijo

      Ang panganib ng ipinakitang iskrip ay baligtad na proporsyonal sa pag-unawa rito.

      At para sa paranoia, itigil ang pag-install ng mga WALANG-FREE na repository, sapagkat posible na ang isang tao ay pumasok sa isang nakakahamak na code na nakawin ang iyong shopping cart.

    2.    KZKG ^ Gaara dijo

      Ipinaliwanag ko kung ano ang ginagawa ng bawat bahagi ng linya ng utos, subalit kung sa palagay mo ay niloloko ko ang isang tao, ang iskrip o utos ay naroroon sa post, wala itong anumang nakatagong o lihim na code, malugod mong suriin ang mga utos nang lubusan tulad ng nais mo na tumatakbo, kung nakakita ka ng isang bagay na kahina-hinala mangyaring, puna ito mismo dito 😉

  4.   Mga Browson dijo

    Ito ay pinahahalagahan

  5.   mali ang pangalang ito dijo

    Napakainteres.

    Marahil ang ~ / .bashrc o / etc / mga file ng profile ay hindi ang pinakaangkop sa kaso na na-access namin ng SSH sa isang normal na gumagamit at nagsasagawa ng isang tukoy na utos bilang ugat. O kung i-export ang X11 mula sa aming remote VPS, sa tuwing magbubukas kami ng isang xterm magkakaroon kami ng isang bagong email.

    Para sa hack sa mailx, sa palagay ko dapat nating gamitin ang ~ / .ssh / rc file (indibidwal sa bawat gumagamit) o ​​/ etc / ssh / sshrc

    PostData: _NEVER_ pag-access ng SSH bilang root user. _NEVER_ pag-access ng SSH gamit ang password. _ALWAYS_ gumamit ng mga pribadong key.

    1.    truko22 dijo

      kagiliw-giliw → ~ / .ssh / rc Maghahanap ako para sa karagdagang impormasyon tungkol dito salamat gracias

  6.   chinoloco dijo

    Kumusta, napakahusay na tutor!
    Maaari mo bang gawin ang isa upang ipasok sa pamamagitan ng ssh mula sa anumang ip, sa labas ng lokal na network?
    salamat !!

  7.   vidagnu dijo

    Gumagana ang script na ito kung ang mail server na ipinadala namin sa ay hindi nagpapatunay na ang mapagkukunang mail ay nagmula sa isang tunay na server, sa kasong ito ay magmula ito sa pinagmulan ng root @ localhost, gagawin ito ng karamihan sa mga server bilang spam.

    Ang ginagawa ko ay i-configure ang sendmail bilang isang MTA, at pagkatapos ay gamitin ang mail na dumarating sa lahat ng mga distrito upang magpadala ng mga email.

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

  8.   Algave dijo

    Salamat sa tip kukunin ko ito upang subukan ito:]

  9.   balakang dijo

    napaka kapaki-pakinabang salamat

  10.   Israel dijo

    Salamat sa isang milyon para sa payo na kaibigan @ KZKG ^ Gaara, titingnan ko ang sendmail, sana ay malutas, mga salu2.

  11.   joskar dijo

    Malaki! Salamat sa input!

  12.   Juan C dijo

    At kung ano ang mangyayari, kung halimbawa ang script ay nagpapadala ng masyadong maraming mga email, halimbawa may pumasok sa root terminal ng 8:00 am at nagpadala ng halos 40 email, pagkatapos ay may isang taong nagpasok sa ibang oras at higit sa 23 mga email ang naipadala at pagkatapos ay may dumating sa ibang oras at higit sa 150 mga email ang naipadala, ano ito?