メインコンテンツまでスキップ

Telegram アクセス通知を構成する

PortGuard Server は、有効な SPA パケットが追加した後、Telegram メッセージを送信できます。 ファイアウォールルール。通知には、サーバーのホスト名、許可されたソース IP、 パケットソース IP、SPA ユーザー名、要求されたアクセス、開始時間、有効期限 時間とタイムアウト。

1. Telegram ボットを作成する​

  1. Telegramの@BotFatherを開きます。
  2. /newbot を送信し、プロンプトに従います。
  3. 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 設定をすべて削除し、デーモンをリロードします。