Перейти до основного вмісту

Налаштувати сповіщення про доступ 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 і перезавантажує демон.