Otrzymuj powiadomienia e-mailem, gdy ktoś uzyskuje dostęp jako root przez SSH

Ci z nas, którzy administrują serwerami, muszą zachować możliwie najściślejszą kontrolę nad wszystkim, co dzieje się na serwerze.Jedną z rzeczy, które często musimy wiedzieć, jest to, że użytkownik łączy się przez SSH (w tym root), w tym celu za pomocą pakietu i linii dotarłby do naszych powiadomień e-mail.

Czy możesz sobie wyobrazić, że za każdym razem, gdy ktoś łączy się przez SSH z rootem, otrzymuje e-mail z informacją?

Innymi słowy, otrzymaliby wiadomość e-mail o treści podobnej do tej:

[skąpiec] Alert: dostęp do głównego terminala: 2014/01/21 (200.55.51.151)

To jest:

Alert [$ VPS_NAME]: dostęp do głównego terminala w dniu: $ DATE ($ IP_DE_WHO_S_CONNECT)

Aby to osiągnąć, muszą najpierw zainstalować pakiet o nazwie mailx.

Zakładając, że twój serwer używa Debiana lub jakiejś opartej na nim dystrybucji (polecam tylko Debiana, a nie Ubuntu lub podobne dla serwerów), byłoby to:

apt-get install mailx

Uwaga: Poprzednie polecenie jest wykonywane jako root bezpośrednio na serwerze, ponieważ jest to VPS, sudo nie powinno być używane, chyba że jest to absolutnie konieczne.

Następnie musimy umieścić następujący wiersz w katalogu głównym .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

Aby edytować /root/.bashrc, użyj edytora terminala, takiego jak nano:

nano /root/.bashrc

Pamiętaj, że na końcu linii musisz podać swój adres e-mail, po prostu zmień adres my@email.com na adres e-mail, na który mają docierać powiadomienia

Po wstawieniu (w dowolnym miejscu w pliku) linii, którą wstawiłem wcześniej, zapisujemy plik z Ctrl + O (Lub niedźwiedź) i zostawiliśmy to z Ctrl + X

Gotowe, za każdym razem, gdy ktoś wejdzie do głównego terminala, zostanie załadowany plik .bashrc, co jest zawsze wykonywane domyślnie, a po załadowaniu pliku linia, która wysyła wiadomość e-mail, zostanie wykonana, pozostawiając coś w naszej skrzynce odbiorczej . jako:

email-notification-ssh

Wyjaśnienie linii jest czymś naprawdę prostym:

  1. Poprzez mailx wysyłam pocztę, z parametrem -s «_____» określam temat i przekazuję go z echem «____» i potokiem zawartość treści.
  2. `hostname` z tym otrzymuję nazwę hosta lub nazwę hosta, czyli nazwę VPS.
  3. `date + '% Y /% m /% d'` polecenie date pokazuje mi datę systemową, pozostałe litery po prostu wskazują, jak chcę, aby data była wyświetlana.
  4. kto | grep -v localhost` Jeśli uruchomisz kto na twoim komputerze pokaże ci aktywnych użytkowników, z grep -v localhost upewniam się, że pokazuje tylko tych, którzy połączyli się z innego miejsca do samego serwera, czyli w zasadzie SSH
  5. `kto | grep -v localhost | awk {'print $ 5'} `To, co odróżnia tę linię od poprzedniej, to awk, poprzez awk i wypisanie piątej kolumny to to, że otrzymuję adres IP skąd oni połączyli się z SSH

W każdym razie linia jest dość długa i może wydawać się skomplikowana do zrozumienia, jednak jest wiele dziwnych znaków, ale wszystko jest dość proste 🙂

Jak zawsze, mam nadzieję, że wzbudził zainteresowanie.

pozdrowienia


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   manuelperezf , , , , , , , , , ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, , powiedział

    Pytanie, z którym serwerem pocztowym jest wysyłany? Czy musisz skonfigurować konto wysyłkowe?

    1.    KZKG ^ Gaara powiedział

      Musisz mieć zainstalowany pakiet mailx 😉
      Gdy to zrobisz, jest wysyłany bez potrzeby konfigurowania czegokolwiek na serwerze.

      1.    manuelperezf , , , , , , , , , ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,, , powiedział

        Spróbuję, ale myślę, że mój e-mail nie będzie akceptował odbierania wiadomości e-mail z nieuwierzytelnionego źródła ...

        1.    Jomizm powiedział

          Używam exim4 z kontem „gmail” do wysyłania e-maili i działa dobrze
          - Z wyjątkiem nagłówków FROM TO i REPLY TO, w których Gmail umieszcza to, czego chce, ale przychodzą dobrze -.
          Aby skonfigurować Gmaila z exim4, użyj tych informacji:
          http://dajul.com/2009/06/08/configurar-exim4-con-gmail-o-google-apps/

          1.    KZKG ^ Gaara powiedział

            Ciekawe, bardzo dziękuję 🙂

      2.    Izrael powiedział

        Przyjaciel @ KZKG ^ Gaara Zainstalowałem paczkę i zrobiłem instrukcję krok po kroku, jedyne, co kiedy ją wysyłam, mam lokalną pocztę, nigdy się nie wydostałem, czy możesz mi w tym pomóc ?? …… cóż Naprawdę potrzebuję skonfigurowania tego motywu na moich serwerach, salu2s.

        1.    KZKG ^ Gaara powiedział

          Według twojego adresu IP zakładam, że jesteś z mojego kraju 😉
          „Problem” z naszymi sieciami rzadko ma rzeczywiste adresy IP jako takie, to znaczy, że jesteśmy podzieleni na podsieci w ministerialnej sieci proxy lub coś w tym rodzaju. Innymi słowy, prawdopodobnie problem polega na tym, że sam serwer WWW nie może uzyskać wiadomości e-mail z sieci lub czegoś w tym rodzaju, może potrzebujesz tego: https://blog.desdelinux.net/enviar-emails-por-consola-con-sendmail/

  2.   Truko22 powiedział

    interesujące i jeśli zostanie umieszczone w "/ etc / profile", czy będzie ostrzegać, gdy jakiś użytkownik się połączy?

    1.    KZKG ^ Gaara powiedział

      Trzeba by spróbować, nie przyszło mi to do głowy 😀

  3.   Nabuchodonozor powiedział

    Nazwij mnie paranoikiem, ale umieść skrypt, który sugeruje mi nieznajomy w ważnej części mojego systemu, w którym przechowuję hasła do kont, dane takie jak akty urodzenia, dokumenty osobiste i dokumenty służbowe (w ten sposób ujawniając również moich klientów) itp. oznacza również ujawnienie mojego konta e-mail (!!!)… cóż, myślę, że jest to coś niebezpiecznego.

    1.    Jomizm powiedział

      Niebezpieczeństwo prezentowanego scenariusza jest odwrotnie proporcjonalne do jego zrozumienia.

      W przypadku paranoi przestań instalować NIE-DARMOWE repozytoria, ponieważ jest możliwe, że ktoś wprowadzi złośliwy kod, który kradnie Twój koszyk.

    2.    KZKG ^ Gaara powiedział

      Wyjaśniłem, co robi każda część wiersza poleceń, jednak jeśli myślisz, że kogoś oszukuję, skrypt lub polecenia są w poście, nie ma żadnego ukrytego ani tajnego kodu, możesz dokładnie przejrzeć polecenia tak jak chcesz, to działa, jeśli znajdziesz coś podejrzanego, skomentuj to tutaj 😉

  4.   Przeglądarki powiedział

    Jest doceniana.

  5.   to imię jest fałszywe powiedział

    Bardzo interesujące.

    Być może pliki ~ / .bashrc lub / etc / profile nie są najbardziej odpowiednie w przypadku, gdy uzyskujemy dostęp przez SSH z normalnym użytkownikiem i wykonujemy określone polecenie jako root. Lub jeśli wyeksportujemy X11 z naszego zdalnego VPS, za każdym razem, gdy otworzymy xterm, otrzymamy nowy e-mail.

    Myślę, że w przypadku włamania do mailx powinniśmy użyć plików ~ / .ssh / rc (indywidualnie dla każdego użytkownika) lub / etc / ssh / sshrc

    PostData: _NEVER_ dostęp przez SSH jako użytkownik root. _NEVER_ dostęp przez SSH za pomocą hasła. _ ZAWSZE_ użyj kluczy prywatnych.

    1.    Truko22 powiedział

      ciekawe → ~ / .ssh / rc Więcej informacji na ten temat znajdę dzięki 😀

  6.   Chinoloco. powiedział

    Witam, bardzo dobry nauczyciel!
    Czy mógłbyś zrobić taki, aby wejść przez ssh z dowolnego adresu IP, poza siecią lokalną?
    dziękuję!

  7.   widok powiedział

    Ten skrypt działa, jeśli serwer pocztowy, do którego wysyłamy, nie sprawdza, czy poczta źródłowa pochodzi z autentycznego serwera, w tym przypadku będzie to adres root @ localhost, większość serwerów potraktuje to jako spam.

    To, co robię, to konfigurowanie sendmaila jako MTA, a następnie używanie poczty przychodzącej ze wszystkich dystrybucji do wysyłania wiadomości e-mail.

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

  8.   Algawa powiedział

    Dzięki za wskazówkę, którą chcę przetestować:]

  9.   kuku powiedział

    dzięki użytecznym

  10.   Izrael powiedział

    Dzięki milionowi za radę przyjaciela @ KZKG ^ Gaara, zamierzam rzucić okiem na sendmail, mam nadzieję, że rozwiążę, salu2s.

  11.   Joskara powiedział

    Świetny! Dzięki za wkład!

  12.   Juan C powiedział

    A co się dzieje, jeśli np. Skrypt wysyła za dużo maili, np. Ktoś wchodzi do głównego terminala o 8:00 i wysłał około 40 emaili, to ktoś wszedł innym razem i wysłano ponad 23 emaile i wtedy ktoś przychodzi w innym czasie i wysłano ponad 150 e-maili, co to może być?