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 จะเป็นค่าลบ และมักจะเป็น supergroup ID เริ่มต้นด้วย -100.

หาก result ว่างเปล่า ให้ส่งข้อความอื่นให้บอตแล้วรันคำขออีกครั้ง สำหรับช่อง คุณสามารถใช้ @channel_username หลังจากเพิ่มบอทเป็นช่องแล้ว ผู้ดูแลระบบที่ได้รับอนุญาตให้โพสต์ข้อความ

3. กำหนดค่า PortGuard Server​

เริ่มคอนโซลไฟร์วอลล์ในฐานะรูท:

sudo portguard-fwknopd --fw-console

เลือก 5. Configure Telegram notifications จากนั้นป้อน:

  • โทเค็น Bot: โทเค็นที่จัดทำโดย BotFather
  • Chat ID: ID ส่วนตัว/กลุ่มที่เป็นตัวเลขหรือ @channel_username
  • ช่วงเวลาการแจ้งเตือนขั้นต่ำ: 0 ส่งการแจ้งเตือนทุกครั้ง เคาะสำเร็จ ค่าที่มากขึ้นจะระงับการแจ้งเตือนเพิ่มเติมในระหว่างนั้น หลายวินาทีนั้น

ยืนยันการกำหนดค่าและเลือก y เมื่อระบบขอให้ส่งการทดสอบ การแจ้งเตือน คอนโซลจะจัดเก็บการตั้งค่าไว้ใน /etc/fwknop/fwknopd.conf ด้วยโหมด 600 และรีโหลด daemon ที่รันอยู่

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. ตรวจสอบการแจ้งเตือน​

ปฏิบัติตามบันทึก daemon ขณะส่งแพ็กเก็ต 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 ทั้งสามค่าออก และรีโหลด daemon