DNSBox

IP-आधारित होस्टनाम के लिए DNS और HTTPS

*.dnsbox.io के माध्यम से सार्वजनिक HTTP सेवा खोलें या अपने निजी नेटवर्क में DNSBox चलाएँ।

v0.5.2 में उपलब्ध

v0.4.x से अपग्रेड कर रहे हैं? मौजूदा इंस्टॉलेशन बदलने से पहले माइग्रेशन मार्गदर्शिका का पालन करें। माइग्रेशन मार्गदर्शिका

सार्वजनिक सेवा इस्तेमाल करें

खाता बनाने या डोमेन पंजीकरण की ज़रूरत नहीं है। आपका बैकएंड अनुमति प्राप्त सार्वजनिक IP पर होना चाहिए, जहाँ पोर्ट 80 पर HTTP सेवा चल रही हो और DNSBox उस तक पहुँच सके।

198.51.100.20 की जगह अपने सर्वर का सार्वजनिक IPv4 पता लिखें:

https://198-51-100-20.dnsbox.io

DNS होस्टनाम को DNSBox प्रॉक्सी के पते में बदलता है। प्रॉक्सी HTTPS कनेक्शन को संभालता है और होस्टनाम में लिखे IP पर HTTP अनुरोध भेजता है। यह आपके सर्वर पर प्रमाणपत्र इंस्टॉल नहीं करता।

Let's Encrypt, DNS-01 के माध्यम से होस्टनाम का सत्यापन करता है। प्रमाणपत्र उस होस्टनाम के लिए होता है, सीधे IP पते के लिए नहीं। प्रमाणपत्र जारी होने के दौरान पहले TLS कनेक्शन में अधिक समय लग सकता है।

ब्राउज़र से DNSBox तक का कनेक्शन HTTPS इस्तेमाल करता है। DNSBox से बैकएंड तक का कनेक्शन HTTP इस्तेमाल करता है। WebSocket अपग्रेड समर्थित हैं।

IPv6 बैकएंड को 2a01-4f8-c17-b8f--1.dnsbox.io के रूप में लिखा जा सकता है। एक हाइफ़न का अर्थ कोलन है; दो हाइफ़न का अर्थ :: है।

पहले DNS रिज़ॉल्यूशन जाँचें, फिर HTTPS। इस परीक्षण के लिए अपना ऐसा HTTP बैकएंड इस्तेमाल करें जिस तक पहुँचा जा सके:

dig +short 198-51-100-20.dnsbox.io
curl -v https://198-51-100-20.dnsbox.io/

DNS उत्तर में प्रॉक्सी का पता मिलता है। मान्य TLS कनेक्शन और बैकएंड से सफल HTTP उत्तर दो अलग जाँचें हैं।

निजी नेटवर्क के भीतर चलाएँ

स्थानीय TLS मोड सार्वजनिक DNS, पोर्ट फ़ॉरवर्डिंग या इंटरनेट पहुँच के बिना काम करता है। DNSBox अपना प्रमाणपत्र प्राधिकरण बनाता है। क्लाइंट को उस CA पर भरोसा करना होगा।

उदाहरण: 192.168.1.2 पर DNSBox और 192.168.1.0/24 में HTTP बैकएंड:

./dnsboxd --domain=home.arpa --ip=192.168.1.2 \
  --tls-mode=local --allowed-cidrs=192.168.1.0/24 \
  --dns-listen=192.168.1.2:53 --https-listen=192.168.1.2:443 \
  --data-dir=/var/lib/dnsbox

अपने LAN रिज़ॉल्वर से केवल home.arpa ज़ोन को 192.168.1.2 पर फ़ॉरवर्ड करें। DNSBox अपने ज़ोन का प्रामाणिक सर्वर है; यह सामान्य प्रयोजन का रिकर्सिव रिज़ॉल्वर नहीं है।

CA बनाने के लिए एक स्थानीय प्रमाणपत्र जारी करें, फिर हर क्लाइंट के विश्वसनीय CA स्टोर में /var/lib/dnsbox/ca/root.crt इंस्टॉल करें। root.pem को निजी रखें। परिनियोजन मार्गदर्शिका में शुरुआती सेटअप का कमांड दिया गया है।

192.168.1.50 पर मौजूद बैकएंड के लिए https://192-168-1-50.home.arpa खोलें। LAN क्लाइंट को DNSBox के DNS और HTTPS पोर्ट तक पहुँच चाहिए; DNSBox को बैकएंड के HTTP पोर्ट तक पहुँच चाहिए।

निजी नेटवर्क सेटअप

Let's Encrypt के साथ स्वयं होस्ट करें

अपने नियंत्रण वाला डोमेन या सबडोमेन इस्तेमाल करें और उसके DNS ज़ोन का अधिकार अपने DNSBox नेमसर्वर को सौंपें। एक नोड ज़ोन की सेवा दे सकता है; कई नोड उपलब्धता बनाए रखने में मदद करते हैं।

सार्वजनिक DNS-01 सत्यापन के लिए आने वाले UDP 53 और TCP 53, साथ ही बाहर जाने वाले HTTPS और DNS रिज़ॉल्यूशन की अनुमति दें। आने वाले पोर्ट 80 की ज़रूरत नहीं है। पोर्ट 443 तक केवल उन क्लाइंट की पहुँच चाहिए जिन्हें आप सेवा देना चाहते हैं।

जब DNS-01 सत्यापन सार्वजनिक रूप से उपलब्ध हो, तब निजी HTTP बैकएंड भी सार्वजनिक रूप से विश्वसनीय होस्टनाम प्रमाणपत्र इस्तेमाल कर सकते हैं। --allowed-cidrs से उन बैकएंड को स्पष्ट अनुमति दें और अपने क्लाइंट के लिए DNS तथा रूटिंग कॉन्फ़िगर करें।

कई नोड होने पर हर नोड पर एक जैसी नेमसर्वर सूची और रिकॉर्ड कॉन्फ़िगर करें, साथ ही चैलेंज प्रतिकृति के लिए पारस्परिक TLS भी। प्रमाणपत्र जारी करने की प्रक्रिया आगे बढ़ने से पहले हर कॉन्फ़िगर किए गए पीयर को चैलेंज की प्राप्ति स्वीकार करनी होगी।

Linux, macOS और Windows के लिए रिलीज़ आर्काइव उपलब्ध हैं। मैन्युअल स्टार्टअप या किसी दूसरे सुपरवाइज़र के लिए इंस्टॉलर --no-systemd का समर्थन करता है। यह आपके सिस्टम रिज़ॉल्वर को बंद नहीं करता।

इंस्टॉलेशन और क्लस्टर कॉन्फ़िगरेशन

ocserv और अन्य सेवाओं के लिए प्रमाणपत्र

सार्वजनिक सेवा अपनी निजी कुंजियाँ निर्यात नहीं करती। यदि आपकी सेवा को प्रमाणपत्र फ़ाइलें चाहिए, तो अपने नियंत्रण वाला ज़ोन सौंपकर DNSBox स्वयं होस्ट करें।

उस ज़ोन में IP से बने होस्टनाम के साथ --issue चलाएँ। DNSBox, PEM प्रमाणपत्र शृंखला और निजी कुंजी को <data-dir>/certs में लिखता है, फिर बंद हो जाता है। ACME से प्रमाणपत्र जारी करते समय DNS सेवा चलती है, लेकिन HTTPS पोर्ट 443 खाली रहता है।

स्पष्ट A/AAAA रिकॉर्ड से उस होस्टनाम को सीधे अपनी सेवा की ओर निर्देशित करें। ocserv के लिए server-cert और server-key कॉन्फ़िगर करें। DNSBox का HTTP प्रॉक्सी OpenConnect या DTLS लागू नहीं करता।

नवीनीकरण की व्यवस्था करें और फ़ाइलें बदलने के बाद अपनी सेवा को फिर से लोड करें। एक बार चलने वाला कमांड बंद होने के बाद प्रमाणपत्र नवीनीकृत नहीं करता। एक ही डेटा डायरेक्टरी पर दो DNSBox प्रक्रियाएँ न चलाएँ।

प्रमाणपत्र निर्यात का उदाहरण

सवाल

क्या सार्वजनिक सेवा के साथ निजी IP इस्तेमाल किए जा सकते हैं?

नहीं। सार्वजनिक प्रॉक्सी अनुमति प्राप्त सार्वजनिक बैकएंड के लिए है। निजी पतों के लिए स्पष्ट CIDR अनुमति सूची के साथ अपना इंस्टेंस चलाएँ।

मेरा IP बदलने पर क्या होगा?

IP होस्टनाम का हिस्सा है। नए IP के लिए नया होस्टनाम इस्तेमाल करें; पुराने नाम का इस्तेमाल करने वाले क्लाइंट अब भी पुराने पते पर जाएँगे।

क्या DNSBox बैकएंड IP के स्वामित्व की पुष्टि करता है?

DNS-01, DNS होस्टनाम पर नियंत्रण की पुष्टि करता है। यह बैकएंड IP के स्वामित्व या वहाँ दी जाने वाली सामग्री का सत्यापन नहीं करता।

क्या प्रमाणपत्र अपने आप नवीनीकृत होते हैं?

चलती हुई DNSBox सेवा अपने प्रबंधित प्रमाणपत्रों का नवीनीकरण करती है। निर्यात किए गए प्रमाणपत्रों के लिए नवीनीकरण प्रक्रिया और उनका इस्तेमाल करने वाली सेवा को फिर से लोड करने की व्यवस्था चाहिए।

अगर बैकएंड ऑफ़लाइन हो तो क्या होगा?

DNS और TLS फिर भी काम कर सकते हैं, लेकिन प्रॉक्सी एप्लिकेशन की सामग्री नहीं लौटा सकता। बैकएंड के HTTP लिसनर, फ़ायरवॉल और पहुँच की जाँच करें।

समस्या की रिपोर्ट कहाँ कर सकते हैं?

DNSBox का संस्करण, परिनियोजन मोड और संबंधित त्रुटि संदेशों के साथ GitHub इश्यू खोलें। निजी कुंजियाँ, टोकन और अन्य गोपनीय जानकारी हटा दें।

GitHub इश्यू

तकनीकी संदर्भ

कॉन्फ़िगरेशन संदर्भ

स्रोत कोड