กำหนดค่าการแจ้งเตือนการเข้าถึง 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 จะเป็นค่าลบ และมักจะเป็น 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