Monitorar acessos SSH é uma prática essencial para qualquer administrador de sistemas. Mesmo utilizando autenticação por chave pública, firewall e hardening adequado, é fundamental saber quando alguém acessa seu servidor.
Neste artigo, você aprenderá como configurar um alerta automático via Telegram que envia uma notificação sempre que um login SSH for realizado no seu servidor Debian 13.
🎯 Objetivo
Sempre que alguém conectar via SSH no servidor:
- Capturar IP de origem
- Capturar usuário autenticado
- Capturar data e hora exata
- Enviar notificação automática via Telegram
🛠️ Etapa 1 – Criando o Bot no Telegram
- Abra o Telegram
- Acesse @BotFather
- Execute:
/newbot
- Defina um nome e username
- Copie o BOT TOKEN gerado
📌 Descobrindo o Chat ID
Adicione o bot ao seu grupo ou envie mensagem direta para ele.
Depois execute:
curl -s https://api.telegram.org/botSEU_TOKEN/getUpdates
Procure por:
"chat": {
"id": -1001234567890,
"title": "Nome do Grupo",
"type": "supergroup"
}
Esse número é seu CHAT ID.
🖥️ Etapa 2 – Criando o Script no Debian 13
Crie o arquivo:
sudo nano /etc/update-motd.d/99-notification-telegram
Conteúdo:
#!/bin/bash
set -euo pipefail
TELEGRAM_BOT_TOKEN="SEU_TOKEN_AQUI"
TELEGRAM_CHAT_ID="-100XXXXXXXXXX"
SRC_IP=""
if [[ -n "${SSH_CONNECTION:-}" ]]; then
SRC_IP="$(awk '{print $1}' <<< "$SSH_CONNECTION")"
elif [[ -n "${SSH_CLIENT:-}" ]]; then
SRC_IP="$(awk '{print $1}' <<< "$SSH_CLIENT")"
elif [[ -n "${PAM_RHOST:-}" ]]; then
SRC_IP="$PAM_RHOST"
fi
if [[ -z "$SRC_IP" ]]; then
exit 0
fi
USER_NAME="${PAM_USER:-${USER:-unknown}}"
HOST="$(hostname -f 2>/dev/null || hostname)"
DATE_TIME="$(date '+%Y-%m-%d %H:%M:%S %Z')"
MSG="🔐 SSH Login detectado
Host: ${HOST}
Usuário: ${USER_NAME}
Origem: ${SRC_IP}
Data/Hora: ${DATE_TIME}"
curl -sS --max-time 3 \
-X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
-d "chat_id=${TELEGRAM_CHAT_ID}" \
--data-urlencode "text=${MSG}" \
-d "disable_web_page_preview=true" >/dev/null 2>&1 || true
🔑 Permissões
sudo chmod 755 /etc/update-motd.d/99-notification-telegram
sudo chown root:root /etc/update-motd.d/99-notification-telegram
🔧 Etapa 3 – Ajuste no PAM (Passo Crucial)
Edite:
sudo nano /etc/pam.d/sshd
Remova ou comente a linha:
session optional pam_motd.so noupdate
Deixe apenas:
session optional pam_motd.so motd=/run/motd.dynamic
Forçar um teste imediato (sem depender do próximo login)
sudo run-parts /etc/update-motd.d > /run/motd.dynamic
Reinicie o SSH:
sudo systemctl restart ssh
✅ Testando
Abra uma nova sessão SSH.
Você deverá receber no Telegram algo como:
🔐 SSH Login detectado
Host: srv-prod-01
Usuário: root
Origem: 189.xxx.xxx.xxx
Data/Hora: 2026-03-03 08:42:12 -03
🔒 Por Que Isso é Importante?
Este mecanismo fornece:
- Auditoria em tempo real
- Detecção de acessos indevidos
- Monitoramento de contas privilegiadas
- Visibilidade imediata de IPs externos
É especialmente útil para:
- Servidores expostos à internet
- VPS em cloud pública
- Ambientes de produção
- Laboratórios de segurança
⚠️ Boas Práticas Recomendadas
Além desse alerta, recomenda-se:
- Desabilitar login root via SSH
- Usar autenticação por chave pública
- Alterar porta padrão (opcional)
- Configurar Fail2Ban
- Implementar firewall (UFW ou nftables)
🚀 Conclusão
Com poucos minutos de configuração, é possível implementar um mecanismo de notificação extremamente eficiente para monitoramento de logins SSH.
Essa abordagem combina simplicidade, baixo consumo de recursos e alta efetividade, oferecendo uma camada adicional de segurança operacional.
Se você administra servidores, esse tipo de alerta não é opcional — é uma prática recomendada.
Referências adicionais:

Comments are closed