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
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
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:
Wyjaśnienie linii jest czymś naprawdę prostym:
- Poprzez mailx wysyłam pocztę, z parametrem -s «_____» określam temat i przekazuję go z echem «____» i potokiem zawartość treści.
- `hostname` z tym otrzymuję nazwę hosta lub nazwę hosta, czyli nazwę VPS.
- `date + '% Y /% m /% d'` polecenie date pokazuje mi datę systemową, pozostałe litery po prostu wskazują, jak chcę, aby data była wyświetlana.
- 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
- `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
Pytanie, z którym serwerem pocztowym jest wysyłany? Czy musisz skonfigurować konto wysyłkowe?
Musisz mieć zainstalowany pakiet mailx 😉
Gdy to zrobisz, jest wysyłany bez potrzeby konfigurowania czegokolwiek na serwerze.
Spróbuję, ale myślę, że mój e-mail nie będzie akceptował odbierania wiadomości e-mail z nieuwierzytelnionego źródła ...
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/
Ciekawe, bardzo dziękuję 🙂
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.
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/
interesujące i jeśli zostanie umieszczone w "/ etc / profile", czy będzie ostrzegać, gdy jakiś użytkownik się połączy?
Trzeba by spróbować, nie przyszło mi to do głowy 😀
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.
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.
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 😉
Jest doceniana.
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.
ciekawe → ~ / .ssh / rc Więcej informacji na ten temat znajdę dzięki 😀
Witam, bardzo dobry nauczyciel!
Czy mógłbyś zrobić taki, aby wejść przez ssh z dowolnego adresu IP, poza siecią lokalną?
dziękuję!
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
Dzięki za wskazówkę, którą chcę przetestować:]
dzięki użytecznym
Dzięki milionowi za radę przyjaciela @ KZKG ^ Gaara, zamierzam rzucić okiem na sendmail, mam nadzieję, że rozwiążę, salu2s.
Świetny! Dzięki za wkład!
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ć?