Настроить уведомления о доступе Telegram
PortGuard Server может отправить сообщение Telegram после того, как действительный пакет SPA добавит правило брандмауэра. Уведомления включают имя хоста сервера, разрешенный IP-адрес источника, IP-адрес источника пакета, имя пользователя SPA, запрошенный доступ, время открытия, срок действия время и тайм-аут.
1. Создайте бота Telegram
- Откройте @BotFather в Telegram.
- Отправьте
/newbotи следуйте подсказкам. - Скопируйте 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 принят и брандмауэр правило успешно добавлено. Повторный стук, пока действует то же правило active не может создавать другое правило. Дождитесь истечения срока действия предыдущего правила. тестирование еще раз.
Если тест консоли не пройден или принятый стук не отправляет сообщение, проверьте:
- Сервер может разрешать
api.telegram.orgи устанавливать исходящие соединения HTTPS. - Запущен приватный чат или у бота есть разрешение на публикацию сообщений в группу назначения или канал.
- Chat ID принадлежит к тому же разговору с ботом, который используется с
getUpdates. PORTGUARD_TG_NOTIFY_INTERVALне подавляет уведомление.fwknopdбыл перезагружен или перезапущен после изменения конфигурации вручную.
6. Отключить уведомления
Запустите консоль еще раз, выберите опцию 5, введите disable в качестве Bot Token и
подтвердите. PortGuard удаляет все три настройки Telegram и перезагружает демон.