Configurer les notifications d'accès Telegram
PortGuard Server peut envoyer un message Telegram après qu'un paquet SPA valide ajoute un règle de pare-feu. Les notifications incluent le nom d'hôte du serveur, l'adresse IP source autorisée, IP source du paquet, nom d'utilisateur SPA, accès demandé, heure d'ouverture, expiration temps et délai d'attente.
1. Créez un bot Telegram
- Ouvrez @BotFather dans Telegram.
- Envoyez
/newbotet suivez les invites. - Copiez le Bot Token renvoyé par BotFather. On dirait
123456789:AAExampleToken.
Traitez le Bot Token comme un mot de passe. Ne le validez pas dans le contrôle de code source, collez-le dans les messages d'assistance, ou exposez-le dans des captures d'écran.
2. Trouver la destination Chat ID
Pour une discussion privée, ouvrez le nouveau bot, sélectionnez Démarrer et envoyez-lui un message. Pour un groupe, ajoutez le bot au groupe et envoyez un message ou une commande au bot peut recevoir.
Sur le serveur, saisissez le Bot Token sans le sauvegarder dans l'historique du shell :
read -rsp 'Telegram Bot Token: ' TG_TOKEN; echo
Lisez les dernières mises à jour du bot :
curl --config - <<EOF
silent
show-error
fail
url = "https://api.telegram.org/bot${TG_TOKEN}/getUpdates"
EOF
unset TG_TOKEN
Recherchez message.chat.id dans la réponse JSON. Les Chat ID privés sont normalement
nombres positifs. Les groupes Chat ID sont normalement négatifs et les identifiants de supergroupe sont souvent
commencez par -100.
Si result est vide, envoyez un autre message au bot et exécutez à nouveau la demande.
Pour un canal, vous pouvez utiliser @channel_username après avoir ajouté le bot en tant que canal
administrateur autorisé à publier des messages.
3. Configurer PortGuard Server
Démarrez la console du pare-feu en tant que root :
sudo portguard-fwknopd --fw-console
Sélectionnez 5. Configure Telegram notifications, puis saisissez :
- Jeton du bot : le jeton fourni par BotFather.
- Chat ID : l'ID numérique privé/groupe ou
@channel_username. - Intervalle de notification minimum :
0envoie une notification pour chaque coup réussi. Une valeur plus élevée supprime les notifications supplémentaires pendant autant de secondes.
Confirmez la configuration et choisissez y lorsqu'on vous demande d'envoyer un test
notification. La console stocke les paramètres dans /etc/fwknop/fwknopd.conf
avec le mode 600 et recharge le démon en cours d'exécution.
4. Configurez-le manuellement
Les mêmes paramètres peuvent être ajoutés directement à /etc/fwknop/fwknopd.conf :
PORTGUARD_TG_BOT_TOKEN 123456789:replace_with_bot_token;
PORTGUARD_TG_CHAT_ID -1001234567890;
PORTGUARD_TG_NOTIFY_INTERVAL 0;
Les modèles Bot Token et Chat ID sont requis. Protégez la configuration et redémarrez le service après une modification manuelle :
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. Vérifiez les notifications
Suivez le journal du démon lors de l'envoi d'un paquet SPA valide depuis PortGuard Client :
sudo journalctl -u fwknopd -f
Une notification est mise en file d'attente uniquement après l'acceptation du paquet SPA et un pare-feu la règle a été ajoutée avec succès. Un coup répété alors que la même règle est toujours active ne peut pas créer une autre règle. Attendez que la règle précédente expire avant tester à nouveau.
Si le test de la console échoue ou si un coup accepté n'envoie pas de message, vérifiez :
- Le serveur peut résoudre
api.telegram.orget établir des connexions sortantes HTTPS. - Le chat privé a été démarré ou le bot est autorisé à publier dans le groupe ou canal de destination.
- Le Chat ID appartient à la même conversation de robot utilisée avec le
getUpdates. PORTGUARD_TG_NOTIFY_INTERVALne supprime pas la notification.fwknopda été rechargé ou redémarré après une modification manuelle de la configuration.
6. Désactiver les notifications
Exécutez à nouveau la console, sélectionnez l'option 5, entrez disable comme Bot Token et
confirmer. PortGuard supprime les trois paramètres Telegram et recharge le démon.