/ debian

Powiadomienie E-mail o logowaniu na konto poprzez SSH

W ramach zwiększenia bezpieczeństwa stosuje powiadomienia E-mail o logowaniu na konta root lub zwykłych użytkowników. Jeżeli jest to serwer oparty o
Debiana/CentOS to bez problemu wykorzystuje wbudowana funkcjonalność CSF (Config Server Firewall) lecz w przypadku gdy na serwerze nie ma zainstalowanego CSF z różnych powodów (np. jest to FreeBSD) stosuje dodatkowy skrypt.

Powiadomienie E-mail po zalogowaniu na konto można wysłać rożnymi sposobami.

Sposób nr 1. Śledzenie pliku /var/log/auth

Metoda prosta, śledzimy plik z logami z autoryzacji i jeżeli pojawi się nowy wpis o logowaniu ślemy gołębia z wiadomością. Ma pewna wadę w postaci odpalonego non stop procesu który będzie śledził plik.

Sposób nr. 2 ~/.bashrc

Bash w większości serwerów jest domyślną powloką, przy logowaniu zawartość pliku .bashrc w katalogu domowym jest zawsze wykonywana, można by tam zamieścić polecenie o wysłaniu maila. Wady ? Ma ich kilka:

  • Użytkownik zazwyczaj ma pełne prawa do modyfikacji tego pliku wiec możne po prostu usunąć polecenie wysyłaniu maila

  • Nie którzy mniej doświadczeni użytkownicy systemów zamiast uruchomić weechat:

    screen weechat 
    

    otwierają dodatkowo powłokę 
    screen bash weechat

    screen bash weechat
    

    co w tym wypadku uruchomi nowa instancje basha wysyłając informacje o logowaniu.

  • Wystarczy samo przeładowanie powłoki aby wysłać taki fałszywy email.

  • Gdy mamy wielu użytkowników musimy utworzyć wiele plików .bashrc.

Oczywiście wszystkie te wady można naprawić stosując nadanie odpowiednich uprawnień oraz warunków ale następny sposób jest o wiele prostszy.

Sposób nr. 3 /etc/ssh/sshrc

Przy każdym poprawnym logowaniu poprzez SSH plik /etc/ssh/sshrc zostaje uruchamiany, domyślnie on nie istnieje albo jest pusty dlatego musimy uzupełnić jego zawartość. Aby poczytać więcej o sshrc zapraszam tutaj.

Skrypt

Co powinno zawierać powiadomienie:

  • Nazwę użytkownika który się loguje
  • Nazwę serwera z którego wysyłamy maila
  • Datę
  • Adres IP

Poniżej prezentuje zawartość pliku /etc/ssh/sshrc

#!/bin/sh  

echo "ALERT - $(whoami) Shell Access ($(hostname)) on $(date) from $(echo $SSH_CLIENT | awk '{ print $1}')" | mail -s "ALERT - $(whoami) Shell Access $(hostname)" [user@server.pl](mailto:user@server.pl)

Należy pamiętać aby zamienić user@server.pl na własny adres E-mail.

Przykładowa wiadomość:

Temat: **ALERT - user Shell Access fred.szmijewski.pl  
**Wiadomość: **ALERT - user Shell Access (fred.szmijewski.pl) on sob 9 maj 2015 12:05:00 CEST from 31.9.21.216**
Powiadomienie E-mail o logowaniu na konto poprzez SSH
Share this