सामग्री पर जाएं
VPN या फ़ायरवॉल के पीछे

VPN या फ़ायरवॉल के पीछे

Markdown के रूप में देखें

सेल्फ-होस्टेड Status200 सार्वजनिक इंटरनेट से दूर रह सकता है: वह हर अलर्ट आउटबाउंड कनेक्शन से भेजता है। फिर भी कुछ चीज़ें बाहर से अंदर आती हैं। जवाब देने वाला किसी संदेश में Acknowledge पर टैप करता है, Twilio कॉल पर दबाई गई कुंजी की सूचना देता है, Slack किसी बटन पर हुए क्लिक की सूचना देता है। यह पेज इनमें से हर एक के बारे में बताता है कि उसके लिए आपके सर्वर से कौन और किस पाथ पर जुड़ता है, ताकि आप सिर्फ़ वही प्रकाशित करें जो आप इस्तेमाल करते हैं, या कुछ भी नहीं।

आपके सर्वर से कौन जुड़ता है

भेजने के लिए कभी इनबाउंड एक्सेस की ज़रूरत नहीं होती: Status200 ख़ुद बाहर की ओर आपके मेल सर्वर, Twilio, Telegram, Meta, Slack, Microsoft और पुश रिले से जुड़ता है। अंदर जो आता है, वह इनमें से कोई एक होता है:

क्या होता हैआपके सर्वर से कौन जुड़ता हैक्या स्रोत पतों की अनुमति सूची इसे कवर कर सकती है?
जवाब देने वाला किसी ईमेल, SMS, WhatsApp या Telegram संदेश में Acknowledge पर टैप करता हैजवाब देने वाले का फ़ोन या कंप्यूटरनहीं: वह वहीं से जुड़ता है जहाँ जवाब देने वाला उस समय है
जवाब देने वाला Status200 On-Call ऐप में पेज स्वीकार करता हैजवाब देने वाले का फ़ोननहीं: इसी वजह से
जवाब देने वाला ऑन-कॉल फ़ोन कॉल पर 1 दबाता हैTwilioसिर्फ़ Twilio के Static Proxy for Webhooks के साथ
कोई अपना Telegram खाता लिंक करता हैTelegramहाँ, या Telegram को पोल करें और किसी चीज़ की अनुमति न दें
कोई Slack या Microsoft Teams संदेश पर बटन क्लिक करता हैSlack या Microsoftनहीं: दोनों में से कोई भी तय पते प्रकाशित नहीं करता
WhatsApp बताता है कि संदेश डिलीवर हुआ या पढ़ा गयाMetaनहीं: Meta कोई तय पता प्रकाशित नहीं करता

सेल्फ-होस्टेड सर्वर इन प्रदाताओं से सीधे बात करता है, कभी Status200 के अपने सर्वरों के ज़रिए नहीं, इसलिए अनुमति देने के लिए Status200 के पतों की कोई सूची नहीं है।

सब कुछ निजी रखें

जवाब देने वालों के फ़ोन अपने VPN पर रखें: हमेशा चालू, या आपके Status200 होस्टनेम के लिए ऑन-डिमांड, ताकि रात 3 बजे पेज स्वीकार करने से पहले किसी को VPN कनेक्ट न करना पड़े। कुछ भी प्रकाशित किए बिना:

  • ईमेल, SMS, WhatsApp और Telegram संदेशों में स्वीकार करने वाले लिंक खुलते हैं, क्योंकि फ़ोन आपके सर्वर तक पहुँचता है।
  • Status200 On-Call ऐप काम करता है: उसमें अपने सर्वर का पता डालें। पुश सूचनाओं के लिए किसी इनबाउंड एक्सेस की ज़रूरत नहीं होती, क्योंकि सर्वर उन्हें पुश रिले के ज़रिए भेजता है।
  • पोलिंग चालू करने के बाद लोग अपने Telegram खाते लिंक कर सकते हैं (Telegram देखें)।

मैसेजिंग ऐप में कोई लिंक उसी ऐप के अपने ब्राउज़र में या फ़ोन के डिफ़ॉल्ट ब्राउज़र में खुलता है, Status200 ऐप में कभी नहीं। इसलिए प्रति-ऐप VPN को सिर्फ़ Status200 ऐप को ही नहीं, मैसेजिंग ऐप और ब्राउज़र को भी कवर करना होगा।

फ़ोन कॉल पर 1 दबाने, Slack और Microsoft Teams संदेशों के बटनों, और WhatsApp की डिलीवरी रसीदों के लिए अब भी ज़रूरी है कि उनका प्रदाता आपके सर्वर तक पहुँचे।

सिर्फ़ स्वीकार करने वाले पेज प्रकाशित करें

अगर जवाब देने वालों के फ़ोन आपका VPN इस्तेमाल नहीं कर सकते, तो सिर्फ़ वे पेज प्रकाशित करें जो स्वीकार करने वाला लिंक खोलता है, और कुछ नहीं। Status200 के आगे एक रिवर्स प्रॉक्सी रखें, या Cloudflare Tunnel जैसा कोई आउटबाउंड टनल, जिसके लिए किसी इनबाउंड फ़ायरवॉल नियम की ज़रूरत नहीं होती, और सिर्फ़ इन पाथ को आगे जाने दें:

मेथडपाथयह क्या देता है
GET/l/*SMS, WhatsApp और Telegram संदेशों के छोटे लिंक
GET/api/user-notification-log-timeline/acknowledge-page/*वह पेज जो बताता है कि किस बारे में पेज किया गया, और उसका Acknowledge बटन
GET/api/user-notification-log-timeline/acknowledge/*Acknowledge बटन
GET/api/user-notification-log-timeline/pass-on-page/*वैकल्पिक: वह पेज जिससे पेज को अगले व्यक्ति तक आगे बढ़ाया जाता है
POST/api/user-notification-log-timeline/pass-on/*वैकल्पिक: उसका बटन
GET/status200-assets/*उन पेजों के फ़ॉन्ट, स्टाइल और लोगो
  1. सार्वजनिक नाम को प्रॉक्सी की ओर पॉइंट करें

    संदेशों के लिंक आपकी HOST सेटिंग से बनते हैं, इसलिए वह नाम सार्वजनिक रूप से प्रॉक्सी पर रेज़ॉल्व होना चाहिए, और उसके लिए सार्वजनिक रूप से भरोसेमंद सर्टिफ़िकेट होना चाहिए। स्प्लिट DNS के साथ, आपके नेटवर्क पर मौजूद लोग उसे पहले की तरह निजी पते पर रेज़ॉल्व करते रहते हैं और बाकी सब कुछ पहले जैसा ही इस्तेमाल करते हैं।

  2. पाथ को बिना बदले आगे भेजें

    इन पाथ को उनके मेथड, पाथ और क्वेरी स्ट्रिंग के साथ Status200 के ingress पर भेजें, और बाकी हर अनुरोध का जवाब 404 से दें।

  3. इन पर रेट लिमिट लगाएँ

    हर लिंक में एक रैंडम ID होती है, और छोटा लिंक आठ अक्षरों का होता है। हर पता कितने अनुरोध कर सकता है, इसे सीमित करें, ताकि कोई तेज़ी से एक के बाद एक ID न आज़मा सके।

जवाब देने वाले के स्वीकार करने के बाद, पेज डैशबोर्ड में अलर्ट खोलता है, और डैशबोर्ड सिर्फ़ आपके नेटवर्क पर लोड होता है। तब तक स्वीकृति सहेजी जा चुकी होती है।

प्रदाताओं के कॉलबैक

Telegram

अलर्ट भेजने के लिए सिर्फ़ api.telegram.org तक आउटबाउंड HTTPS चाहिए। खाता लिंक करने के लिए ज़रूरी है कि कोई व्यक्ति आपके बॉट को जो /start संदेश भेजता है, वह आपके सर्वर को मिले, और यह दो में से किसी एक तरीक़े से होता है:

  • पोलिंग: Poll Telegram for Messages को Admin Dashboard > सेटिंग्स > Telegram में चालू करें। Status200 हर कुछ सेकंड में आउटबाउंड HTTPS से Telegram से बॉट के संदेश ले आता है, इसलिए आपके सर्वर तक किसी को पहुँचने की ज़रूरत नहीं होती।
  • वेबहुक: Telegram हर संदेश POST /api/notification/telegram/webhook पर भेजता है। Telegram 149.154.160.0/20 और 91.108.4.0/22 से वेबहुक भेजता है, इसलिए आप सिर्फ़ इन्हीं पतों को अनुमति दे सकते हैं।

Twilio

जब जवाब देने वाला कॉल पर पेज स्वीकार करने के लिए 1 दबाता है, तो Twilio वह कुंजी POST /api/user-notification-log-timeline/call/gather-input/* पर भेजता है। Twilio के वेबहुक पते बदलते रहते हैं, जब तक कि आपके Twilio संस्करण में Static Proxy for Webhooks शामिल न हो। SMS डिलीवरी अपडेट और आने वाली कॉल के बारे में Twilio इंटीग्रेशन में बताया गया है।

WhatsApp

अलर्ट भेजने और उन्हें स्वीकार करने के लिए कुछ भी इनबाउंड नहीं चाहिए। Meta डिलीवरी और पढ़े जाने की रसीदें /api/notification/whatsapp/webhook पर भेजता है; इनके बिना Status200 का WhatsApp लॉग यह नहीं दिखा सकता कि Meta के संदेश ले लेने के बाद वह डिलीवर हुआ, पढ़ा गया या विफल रहा। Meta हर अनुरोध पर हस्ताक्षर करता है, और कोई तय पता प्रकाशित नहीं करता।

Slack और Microsoft Teams

उनके संदेशों के बटन, मेन्यू और कमांड आपके सर्वर को ऐसे पतों से कॉल करते हैं जिन्हें दोनों में से कोई प्रकाशित नहीं करता। पाथ, और उन्हें प्रकाशित करने का तरीक़ा, Slack एकीकरण और Microsoft Teams एकीकरण में दिए गए हैं।

अगले कदम