Quando gestisco i miei server e le mie VPS mi piace sapere immediatamente quando qualcuno effettua un accesso SSH. Non si tratta solo di comodità: ricevere una notifica in tempo reale mi permette di accorgermi subito di accessi imprevisti o tentativi di connessione sospetti, senza dover controllare continuamente i log di sistema.

In questo articolo ti mostro come integrare Gotify con SSH per ricevere una notifica ogni volta che viene aperta una nuova sessione sul server.


Requisiti

  • Server Gotify
  • Un server Linux (VPS, macchina fisica o macchina virtuale)

Nota: Se non possiedi ancora un server Gotify, puoi utilizzare gratuitamente anche la mia istanza disponibile nella sezione 🌐 Servizi.


Configurazione

Per prima cosa accedi alla dashboard web di Gotify. Dal menu in alto a destra apri la sezione APPS e clicca su CREATE APPLICATION.

Assegna un nome all’applicazione, aggiungi una descrizione se necessario e conferma con Create.

Una volta creata l’applicazione, copia il token generato e conservalo, ti servirà tra poco per collegare il server a Gotify.

Ora collegati via SSH al server sul quale vuoi ricevere le notifiche e crea lo script con il seguente comando:

1
sudo nano /usr/local/bin/notifica-ssh

Incolla il seguente contenuto:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash

exec &> /dev/null

Gotify_URL='https://gotify.dominio.com' # Inserisci l'URL del tuo server Gotify
Gotify_Token='gotify-app-token'         # Inserisci il token dell'applicazione

if [ "$PAM_TYPE" = "open_session" ]; then
    NOW=$(date +"%d/%m/%Y %H:%M")
    TITLE="Accesso SSH su $(hostname)"
    MESSAGE="Utente: $PAM_USER
IP Remoto: $PAM_RHOST
Ora: $NOW"

    /usr/bin/curl -X POST -s \
        -F "title=$TITLE" \
        -F "message=$MESSAGE" \
        -F "priority=5" \
        "${Gotify_URL}/message?token=${Gotify_Token}"
fi

Sostituisci l’URL del server Gotify e il token con i tuoi valori.

Salva il file con CTLR+O ed esci con CTRL+X e rendi eseguibile lo script:

1
sudo chmod +x /usr/local/bin/notifica-ssh

Ora è necessario dire a PAM (Pluggable Authentication Modules) di eseguire lo script ogni volta che viene aperta una sessione SSH.

Apri il file di configurazione:

1
sudo nano /etc/pam.d/sshd

Alla fine del file aggiungi questa riga:

1
2
# Usa "optional" per evitare che un eventuale errore dello script impedisca l'accesso SSH.
session optional pam_exec.so /usr/local/bin/notifica-ssh

Infine ricarica il servizio SSH:

1
sudo systemctl reload sshd

Da questo momento, ogni volta che viene aperta una nuova sessione SSH sul server, riceverai una notifica direttamente su Gotify.