
Tag: Programmazione, Linux, Bash, Informatica.Visto 409 volte.
Spesso è utile, per ragioni di sicurezza, o solo per monitorare le attività sul nostro server, sapere quando qualcuno si connette tramite SSH senza per forza dover rimanere connessi al server.
Per esempio, ed è quello che sarà spiegato in questa guida, si può impostare l'invio di una mail ad uno specifico destinatario, nel momento in cui un determinato utente accede al sistema tramite ssh.
Per permettere il corretto funzionamento dello script, è necessario disporre dei seguenti comandi:
Code:
tr
cut
head
grep
mutt
comandi che sono spesso integrati di default nei sistemi GNU/Linux. In caso contrario provvedere all'installazione di tali comandi per il corretto funzionamento.
Passiamo ora allo script e alla sua descrizione nel dettaglio:
Code:
if [ "$TEXT" != "" ]
then
DESTINATARIO="destinatario@dominio"
echo $TEXT > $HOME/.mailSsh
mutt -s "Login in ssh" $DESTINATARIO login<$HOME/.mailSsh
rm $HOME/.mailSsh
fi
Con la prima linea di codice salviamo nella variabile $TEXT una stringa del tipo:
Code:
solo se è un accesso di tipo esterno.
Il controllo avviene basandosi sul DISPLAY utilizzato, che se diverso da :0 o :0.0 risulta essere un DISPLAY remoto (matching effettuato con il comando grep -v :0 che permette di eliminare dalla lista tutte le linee contenenti la stringa :0; per ulteriori informazioni si veda la pagina di manuale di grep).
Il controllo if [ "$TEXT" != "" ] permette di capire se ci sono o meno accessi remoti.
Nel caso la condizione sia verificata, il login appenna effettuato è un login di tipo remoto; si procede quindi con l'invio.
Assegnamo alla variabile $DESTINATARIO l'indirizzo a cui la mail dovrà arrivare.
Salviamo la variabile $TEXT in un file di testo con echo $TEXT > $HOME/.mailSsh e spediamo la mail con mutt -s "Login in ssh" $DESTINATARIO login<$HOME/.mailSsh.
Rimuoviamo quindi il file di testo temporaneo con rm $HOME/.mailSsh.
Abbiamo creato quindi uno script bash che invia mail nel caso di accesso tramite ssh.
Salviamo quindi lo script nella cartella /usr/bin o creiamo in tale cartella un link al nostro script.
Decidiamo ora gli utenti che vogliamo monitorare.
Posizioniamoci quindi nella cartella $HOME dell'utente, ed andiamo ad editare il file
Code:
aggiungendo in coda al file l'esecuzione del comando che abbiamo creato.
Il risultato dovrebbe essere una cosa del tipo:
Code:
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
alias ll='ls -l'
alias la='ls -al'
mailForSshLogin
La procedura può essere ripetuta su tutti gli utenti che si vogliono monitorare.
Possiamo ora eseguire dei test di login alla nostra macchina per controllare il corretto funzionamento dello script.
Potete scaricare direttamente lo script da qui
Tags
Apache Bash Elastix Firewall Firma digitale Geolocazione Grafica Informatica Internet Java Linux OpenMoko PHP Programmazione Python Reti Ricetta SEO Sicurezza Sistemi Operativi Varie Virtualizzazione VoIPLink ad altri blog:

