Pular para o conteúdo principal

Configurar notificações de acesso Telegram

PortGuard Server pode enviar uma mensagem Telegram depois que um pacote SPA válido adiciona um regra de firewall. As notificações incluem o nome do host do servidor, IP de origem permitido, IP de origem do pacote, nome de usuário SPA, acesso solicitado, horário de abertura, expiração tempo e tempo limite.

1. Crie um bot Telegram​

  1. Abra @BotFather em Telegram.
  2. Envie /newbot e siga as instruções.
  3. Copie Bot Token retornado por BotFather. Parece 123456789:AAExampleToken.

Trate Bot Token como uma senha. Não envie-o para o controle de origem, cole-o em mensagens de suporte ou exponha-o em capturas de tela.

2. Encontre o destino Chat ID​

Para um bate-papo privado, abra o novo bot, selecione Iniciar e envie uma mensagem. Para um grupo, adicione o bot ao grupo e envie uma mensagem ou comando para que o bot pode receber.

No servidor, digite Bot Token sem salvá-lo no histórico do shell:

read -rsp 'Telegram Bot Token: ' TG_TOKEN; echo

Leia as atualizações mais recentes do bot:

curl --config - <<EOF
silent
show-error
fail
url = "https://api.telegram.org/bot${TG_TOKEN}/getUpdates"
EOF
unset TG_TOKEN

Encontre message.chat.id na resposta JSON. Chat IDs privados são normalmente números positivos. Os grupos Chat IDs são normalmente negativos e os IDs de supergrupo geralmente comece com -100.

Se result estiver vazio, envie outra mensagem ao bot e execute a solicitação novamente. Para um canal, você pode usar @channel_username após adicionar o bot como canal administrador com permissão para postar mensagens.

3. Configurar PortGuard Server​

Inicie o console do firewall como root:

sudo portguard-fwknopd --fw-console

Selecione 5. Configure Telegram notifications e digite:

  • Token de bot: o token fornecido por BotFather.
  • Chat ID: o ID numérico privado/de grupo ou @channel_username.
  • Intervalo mínimo de notificação: 0 envia uma notificação para cada batida bem sucedida. Um valor maior suprime notificações adicionais durante tantos segundos.

Confirme a configuração e escolha y quando solicitado a enviar um teste notificação. O console armazena as configurações em /etc/fwknop/fwknopd.conf com o modo 600 e recarrega o daemon em execução.

4. Configure-o manualmente​

As mesmas configurações podem ser adicionadas diretamente ao /etc/fwknop/fwknopd.conf:

PORTGUARD_TG_BOT_TOKEN       123456789:replace_with_bot_token;
PORTGUARD_TG_CHAT_ID -1001234567890;
PORTGUARD_TG_NOTIFY_INTERVAL 0;

Tanto Bot Token quanto Chat ID são necessários. Proteja a configuração e reinicie o serviço após uma alteração manual:

sudo chmod 600 /etc/fwknop/fwknopd.conf
sudo portguard-fwknopd --exit-parse-config \
-c /etc/fwknop/fwknopd.conf \
-a /etc/fwknop/access.conf
sudo systemctl restart fwknopd

5. Verifique as notificações​

Siga o log do daemon ao enviar um pacote SPA válido de PortGuard Client:

sudo journalctl -u fwknopd -f

Uma notificação é colocada na fila somente após o pacote SPA ser aceito e um firewall regra foi adicionada com sucesso. Uma batida repetida enquanto a mesma regra ainda é ativo não pode criar outra regra. Aguarde a regra anterior expirar antes testando novamente.

Se o teste do console falhar ou uma batida aceita não enviar uma mensagem, verifique:

  • O servidor pode resolver api.telegram.org e fazer conexões de saída HTTPS.
  • O chat privado foi iniciado ou o bot tem permissão para postar no grupo ou canal de destino.
  • O Chat ID pertence à mesma conversa de bot usada com getUpdates.
  • PORTGUARD_TG_NOTIFY_INTERVAL não está suprimindo a notificação.
  • fwknopd foi recarregado ou reiniciado após uma alteração manual na configuração.

6. Desative notificações​

Execute o console novamente, selecione a opção 5, insira disable como Bot Token e confirme. PortGuard remove todas as três configurações Telegram e recarrega o daemon.