Преминете към основното съдържание

Конфигуриране на известия за достъп до 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 и презарежда демона.