38 lines
1.2 KiB
Bash
38 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
# ----------------------------------------------------------------
|
|
# SSH Login Alert Script (DE)
|
|
# Dieses Skript sendet eine E-Mail an eine angegebene Adresse,
|
|
# wenn sich ein Benutzer über SSH anmeldet.
|
|
# ----------------------------------------------------------------
|
|
|
|
# Geben Sie hier die E-Mail-Adresse ein, an die die Benachrichtigung gesendet werden soll.
|
|
RECIPIENT_EMAIL="ihre_email_adresse@example.com"
|
|
|
|
# Betreff der E-Mail. Der Befehl `hostname` fügt den Servernamen ein.
|
|
SUBJECT="SSH-Anmeldung: $USER auf Server $(hostname -f)"
|
|
|
|
# Extrahiere nur die IP-Adresse aus der SSH_CLIENT-Variablen.
|
|
# Z. B. "1.2.3.4 56789 22" -> "1.2.3.4"
|
|
CLIENT_IP=${SSH_CLIENT%% *}
|
|
|
|
# E-Mail-Inhalt. 'cat << EOF' ist eine elegante Art, mehrzeiligen Text zu verarbeiten.
|
|
BODY=$(cat << EOF
|
|
Eine SSH-Anmeldung ist auf dem Server $(hostname -f) erfolgt.
|
|
|
|
Details:
|
|
Benutzer: $USER
|
|
IP-Adresse: $CLIENT_IP
|
|
Zeitpunkt: $(date +"%Y-%m-%d %H:%M:%S")
|
|
|
|
--- Aktuell angemeldete Benutzer ---
|
|
$(who)
|
|
EOF
|
|
)
|
|
|
|
# E-Mail mit dem 'mail'-Befehl senden.
|
|
# Nur senden, wenn die Variable SSH_CLIENT existiert (d. h. es handelt sich um eine SSH-Verbindung).
|
|
if [ -n "$SSH_CLIENT" ]; then
|
|
echo "$BODY" | mail -s "$SUBJECT" "$RECIPIENT_EMAIL"
|
|
fi
|