Skip to main content

Наладзьце апавяшчэнні аб доступе Telegram

PortGuard Server можа адправіць паведамленне Telegram пасля таго, як сапраўдны пакет SPA дадасць правіла брандмаўэра. Апавяшчэнні ўключаюць імя хаста сервера, дазволены зыходны IP, IP крыніцы пакета, імя карыстальніка SPA, запытаны доступ, час адкрыцця, заканчэнне тэрміну дзеяння час і тайм-аўт.

1. Стварыце бота Telegram​

  1. Адкрыйце @BotFather у Telegram.
  2. Адпраўце /newbot і выконвайце падказкі.
  3. Скапіруйце Bot Token, вернуты BotFather. Падобна на тое 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

Знайдзіце message.chat.id у адказе JSON. Прыватныя Chat ID звычайна дадатныя лікі. Ідэнтыфікатары групы Chat ID звычайна з'яўляюцца адмоўнымі, а ідэнтыфікатары супергруп часта пачаць з -100.

Калі result пусты, адпраўце боту яшчэ адно паведамленне і паўторыце запыт. Для канала вы можаце выкарыстоўваць @channel_username пасля дадання бота ў якасці канала адміністратар з правам размяшчаць паведамленні.

3. Наладзьце PortGuard Server​

Запусціце кансоль брандмаўэра як root:

sudo portguard-fwknopd --fw-console

Выберыце 5. Configure Telegram notifications, затым увядзіце:

  • Маркер бота: маркер, пастаўлены BotFather.
  • Chat 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. Праверце апавяшчэнні​

Сачыце за журналам дэмана падчас адпраўкі сапраўднага пакета SPA ад PortGuard Client:

sudo journalctl -u fwknopd -f

Апавяшчэнне ставіцца ў чаргу толькі пасля прыняцця пакета SPA і брандмаўэра правіла паспяхова дададзена. Паўторны стук, пакуль усё тое ж правіла актыўны не можа стварыць іншае правіла. Дачакайцеся заканчэння тэрміну дзеяння папярэдняга правіла тэставанне зноў.

Калі тэст кансолі не ўдаецца або прыняты стук не адпраўляе паведамленне, праверце:

  • Сервер можа вырашаць api.telegram.org і ствараць выходныя злучэнні HTTPS.
  • Прыватны чат быў запушчаны, або бот мае дазвол на публікацыю ў група прызначэння або канал.
  • Chat ID належыць да той жа размовы бота, якая выкарыстоўваецца з getUpdates.
  • PORTGUARD_TG_NOTIFY_INTERVAL не стрымлівае апавяшчэнне.
  • fwknopd быў перазагружаны або перазапушчаны пасля змены канфігурацыі ўручную.

6. Адключыць апавяшчэнні​

Зноў запусціце кансоль, абярыце параметр 5, увядзіце disable як Bot Token і пацвердзіць. PortGuard выдаляе ўсе тры налады Telegram і перазагружае дэман.