Telegram アクセス通知を構成する
PortGuard Server は、有効な SPA パケットが追加した後、Telegram メッセージを送信できます。 ファイアウォールルール。通知には、サーバーのホスト名、許可されたソース IP、 パケットソース IP、SPA ユーザー名、要求されたアクセス、開始時間、有効期限 時間とタイムアウト。
1. Telegram ボットを作成する
- Telegramの@BotFatherを開きます。
/newbotを送信し、プロンプトに従います。- BotFather によって返された Bot Token をコピーします。のように見えます
123456789:AAExampleToken。
Bot Token をパスワードとして扱います。ソース管理にコミットせずに貼り付けてください サポートメッセージに含めたり、スクリーンショットで公開したりできます。
2. 宛先 Chat ID を検索します。
プライベート チャットの場合は、新しいボットを開いて [開始] を選択し、メッセージを送信します。 グループの場合、ボットをグループに追加し、ボットにメッセージまたはコマンドを送信します。 受け取ることができます。
サーバー上で、シェル履歴に保存せずに Bot Token を入力します。
read -rsp 'Telegram Bot Token: ' TG_TOKEN; echo
ボットの最新の更新を読んでください。
curl --config - <<EOF
silent
show-error
fail
url = "https://api.telegram.org/bot${TG_TOKEN}/getUpdates"
EOF
unset TG_TOKEN
JSON 応答で message.chat.id を見つけます。プラ イベート Chat ID は通常、
正の数。グループ Chat ID は通常、負であり、スーパーグループ ID であることがよくあります。
-100 で始まります。
result が空の場合は、ボットに別のメッセージを送信し、リクエストを再度実行します。
チャネルの場合、ボットをチャネルとして追加した後、@channel_username を使用できます。
メッセージを投稿する権限を持つ管理者。
3. PortGuard Server を構成する
ファイアウォール コンソールを root として起動します。
sudo portguard-fwknopd --fw-console
5. Configure Telegram notifications を選択し、次のように入力します。
- ボット トークン: BotFather によって提供されるトークン。
- Chat ID: 数値のプライベート/グループ ID または
@channel_username。 - 最小通知間隔:
0は次の間隔で通知を送信します。 ノック成功。値を大きくすると、実行中に追加の通知が抑制されます。 その数秒。
構成を確認し、テストを送信するように求められたら、y を選択します。
通知。コンソールは設定を /etc/fwknop/fwknopd.conf に保存します。
モード 600 を使用して、実行中のデーモンをリロードします。
4. 手動で設定する
同じ設定を /etc/fwknop/fwknopd.conf に直接追加できます。
PORTGUARD_TG_BOT_TOKEN 123456789:replace_with_bot_token;
PORTGUARD_TG_CHAT_ID -1001234567890;
PORTGUARD_TG_NOTIFY_INTERVAL 0;
Bot Token と Chat ID の両方が必要です。構成を保護し、 手動で変更した後、サービスを再起動します。
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. 通知を確認する
PortGuard Client から有効な SPA パケットを送信する際にデーモン ログに従います。
sudo journalctl -u fwknopd -f
通知は、SPA パケットが受け入れられ、ファイアウォールが受信された後にのみキューに入れられます。 ルールが正常に追加されました。同じルールのままノックを繰り返す active では別のルールを作成できません。前のルールが期限切れになるまで待ってください。 再度テスト中。
コンソール テストが失敗した場合、または承認されたノックがメッセージを送信しない場合は、次の点を確認してください。
- サーバーは
api.telegram.orgを解決し、アウトバウンド HTTPS 接続を行うことができます。 - プライベート チャットが開始されているか、ボットに投稿権限があります。 宛先グループまたはチャネル。
- Chat ID は、
getUpdatesで使用される同じボット会話に属します。 PORTGUARD_TG_NOTIFY_INTERVALは通知を抑制していません。- 手動構成変更後に
fwknopdがリロードまたは再起動されました。
6. 通知を無効にする
コンソールを再度実行し、オプション 5 を選択し、Bot Token として disable を入力します。
確認します。 PortGuard は、3 つの Telegram 設定をすべて削除し、デーモンをリロードします。