# Webship वेब सर्वर: डिफ़ॉल्ट रूप से सुरक्षित सेटिंग्स
एक सुरक्षित वेब सर्वर को ऑपरेटर से यह उम्मीद नहीं करनी चाहिए कि वे रात 2 बजे एक और सेटिंग याद रखें। इसे एक सुरक्षात्मक आधार से शुरू करना चाहिए, असुरक्षित कॉन्फ़िगरेशन को अस्वीकार करना चाहिए, और संवेदनशील क्षमताओं को उजागर करने से पहले जानबूझकर विकल्पों की आवश्यकता होनी चाहिए।
वह Webship के पीछे मॉडल है। इसका डिफ़ॉल्ट कॉन्फ़िगरेशन मुख्य अनुरोध और प्रतिक्रिया सुरक्षा को चालू करता है, उस संसाधन को सीमित करता है जिसे एक हमलावर उपयोग कर सकता है, और वैकल्पिक नियंत्रण सतहों को अक्षम छोड़ देता है। आप वास्तविक अनुप्रयोग के लिए उन डिफ़ॉल्ट्स को अनुकूलित कर सकते हैं, लेकिन पहले अनुरोध के आने से पहले हर सुरक्षा की खोज करने की आवश्यकता नहीं है।
डिफ़ॉल्ट रूप से सुरक्षित होना संदर्भ के बिना सुरक्षित होने का मतलब नहीं है। प्रमाणपत्र, एप्लिकेशन प्राधिकरण, नेटवर्क नीति, गुप्त जानकारी, और घटना प्रतिक्रिया अभी भी ऑपरेटर के जिम्मे हैं। Webship का काम सुरक्षित प्रारंभ बिंदु स्पष्ट बनाना है—और आकस्मिक कमजोरियों को कठिन बनाना है।
जो सुरक्षा सक्रिय हो कर शुरू होती हैं
Webship अपनी मूल कॉन्फ़िगरेशन में छह लेयर सक्षम करता है:
| परत | डिफ़ॉल्ट व्यवहार | यह क्या कम करता है | | --- | --- | --- | | डॉट-फ़ाइल सुरक्षा | डॉट-प्रिफ़िक्स वाले स्थिर पथ खंडों को अस्वीकृत करता है | पर्यावरण फ़ाइलों, रिपॉज़िटरी मेटाडेटा और स्थानीय कॉन्फ़िगरेशन का अनजाने में प्रकाशन | | वेब एप्लीकेशन फ़ायरवॉल | ज्ञात हमले के पैटर्न को ब्लॉक करता है | SQL इंजेक्शन, क्रॉस-साइट स्क्रिप्टिंग, ट्रैवर्सल, संवेदनशील-पथ परीक्षण, कमांड इंजेक्शन, हेडर स्मगलिंग, और असमर्थित अनुरोध एन्कोडिंग | | DDoS नियंत्रण | सीमित ग्राहक स्थिति के साथ सामान्य मोड में चलता है | अनुरोध बाढ़, असीमित ट्रैकिंग, और टालने योग्य संसाधन समाप्ति | | बॉट चुनौती | साइन की गई चुनौती कुकी का उपयोग करता है | कम लागत वाला स्वचालित दुरुपयोग और दोहराया स्कैनिंग | | प्रतिक्रिया सुरक्षा हेडर | एक प्रतिबंधात्मक ब्राउज़र नीति जोड़ता है | MIME भ्रम, फ्रेमिंग, रेफरर रिसाव, खतरनाक ब्राउज़र क्षमताएँ, और व्यापक सामग्री लोडिंग | | एपीआई शील्ड | ब्लॉक मोड का उपयोग करता है और एक बार एपीआई अनुबंध परिभाषित होने के बाद अज्ञात मार्गों को अस्वीकार कर देता है | शैडो एंडपॉइंट्स, अनिश्चितित विधियाँ, अप्रत्याशित सामग्री प्रकार, और लापता प्राधिकरण आवश्यकताएँ |
डिफ़ॉल्ट WAF भी जिस चीज़ की जांच करता है उसके चारों ओर कठोर सीमाएँ रखता है: अनुरोध हेडर के 32 KiB, एक 2,048-बाइट पथ, और 1 MiB अनुरोध शरीर। ये सुरक्षा सीमाएं हैं, मनमाने प्रदर्शन स्विच नहीं। यदि किसी एप्लिकेशन को वैध रूप से बड़े अनुरोधों की आवश्यकता है, तो उस एप्लिकेशन के लिए संबंधित सीमा बढ़ाएं और परिणाम का परीक्षण करें, बजाय इसके कि निरीक्षण को वैश्विक रूप से अक्षम करें।
DDoS सुरक्षा सामान्य मोड में प्रति मिनट 600 अनुरोधों पर शुरू होती है, जिसमें हर क्लाइंट की कुंजी के लिए 100 अनुरोधों की बर्स्ट अनुमति होती है। इसका क्लाइंट-स्टेट टेबल 65,536 प्रविष्टियों तक सीमित है। ये मान एक आधार रेखा हैं, एक सार्वभौमिक ट्रैफ़िक मॉडल नहीं: एक सार्वजनिक API, एक डाउनलोड सेवा, और एक आंतरिक एडमिन पैनल को समान एप्लिकेशन- विशिष्ट सीमाओं को साझा नहीं करना चाहिए।
ब्राउज़र सुरक्षा बुनियादी स्तर का हिस्सा हैं
Webship की प्रतिक्रिया-हेडर नीति सक्षम है भले ही कोई एप्लिकेशन अपना हेडर जोड़ना भूल जाए। डिफ़ॉल्ट में शामिल हैं:
- X-Content-Type-Options: nosniff;
- एक फ्रेम-अस्वीकृति नीति;
- संदर्भकर्ता-नीति: कोई-संदर्भकर्ता;
- सख्त-ट्रांसपोर्ट-सिक्योरिटी एक वर्ष के लिए, सबडोमेन सहित;
- कंटेंट-सिक्योरिटी-पॉलिसी केवल समान-उत्पत्ति सामग्री तक सीमित, फ्रेमिंग और बेस-यूआरआई प्रतिबंधों के साथ;
- अनुमतियाँ-नीति भूलोकन, माइक्रोफ़ोन और कैमरा एक्सेस को अक्षम कर रही है।
ये डिफ़ॉल्ट जानबूझकर प्रतिबंधात्मक हैं। किसी ऐसे डोमेन पर HSTS लागू करने से पहले समीक्षा करें जिसमें पूरी तरह से HTTPS-तैयार सबडोमेन न हों। किसी एप्लिकेशन द्वारा अन्य स्रोतों से स्क्रिप्ट, स्टाइल, फ़ॉन्ट, इमेज, या कनेक्शन लोड करने से पहले Content-Security-Policy की समीक्षा करें। एक सुरक्षित डिफ़ॉल्ट को तैनाती के दौरान स्पष्ट रूप से असफल होना चाहिए, न कि उत्पादन में चुपचाप कमजोर किया जाना चाहिए।
वैकल्पिक सतहें बंद रहती हैं
Webship हर फ़ीचर को इसलिए प्रदर्शित नहीं करता क्योंकि बाइनरी में वह मौजूद है। रिवर्स प्रॉक्सी, WebTransport, प्रेक्षण (observability) एंडपॉइंट, स्वचालित TLS, प्रतिक्रिया उत्पत्ति (response provenance), और MCP नियंत्रण एंडपॉइंट डिफ़ॉल्ट रूप से अक्षम हैं।
MCP एंडपॉइंट सक्षम होने पर लूपबैक-स्कोप्ड होता है और इसके लिए एक स्पष्ट सुरक्षा कॉन्फ़िगरेशन की आवश्यकता होती है। मेट्रिक्स और आंकड़ों के लिए जानबूझकर सक्रिय की गई उपकरण उपकरण की आवश्यकता होती है। स्वचालित प्रमाणपत्र प्रबंधन के लिए ऑपरेटर को ACME डायरेक्टरी, संपर्क, संग्रहण, और सेवा-शर्तों की स्वीकृति का चयन करना होता है। यह ऑपरेशनल सुविधाओं को अप्रत्याशित नेटवर्क सतह बनने से रोकता है।
बेस लिसनर भी 127.0.0.1 से बाइंड होता है। एक ऑपरेटर को स्पष्ट रूप से एक सार्वजनिक पता चुनना चाहिए। वह एकल चयन फ़ायरवॉल नियमों, सेवा अनुमतियों, TLS पहचान और तैनाती टोपोलॉजी के लिए एक उपयोगी समीक्षा बिंदु बनाता है।
रिवर्स प्रॉक्सीिंग भरोसे की सीमा को बनाए रखती है
जब रिवर्स प्रॉक्सी सक्षम होती है, TLS पास-थ्रू डिफ़ॉल्ट रहता है। Webship एन्क्रिप्टेड ट्रैफ़िक को अग्रेषित करता है बिना एप्लिकेशन के प्लेनटेक्स्ट या सक्रिय सत्र कुंजियों के नियंत्रण में लिए। मूल स्थान TLS और बातचीत किए गए प्रोटोकॉल के लिए उत्तरदायी रहता है।
केवल तब TLS टर्मिनेशन सक्षम करें जब Webship को HTTP अनुरोधों का निरीक्षण करना, पथ द्वारा रूट करना, WAF और API नीति लागू करना, हेडर को पुनः लिखना, या प्रतिक्रियाओं को कैश करना आवश्यक हो। टर्मिनेशन स्वाभाविक रूप से कम सुरक्षित नहीं है; यह ट्रस्ट सीमा को स्थानांतरित करता है। महत्वपूर्ण निर्णय यह है कि किस मशीन को प्लेनटेक्स्ट देखने की अनुमति है और क्यों।
पास-थ्रू में भी कार्यात्मक सीमाएं होती हैं। TCP राउटिंग ClientHello SNI पर आधारित होती है क्योंकि HTTP अनुरोध एन्क्रिप्टेड होता है। HTTP/3 पास-थ्रू के लिए रूट्स को एक UDP ओरिजिन साझा करने की आवश्यकता होती है। यदि आपको एज पर कंटेंट-संबंधित सुरक्षा की आवश्यकता है, तो TLS को वहां समाप्त करें और एज-से-ओरिजिन होप की सुरक्षा अलग से करें।
एक उत्पादन आधार जिसे आप समीक्षा कर सकते हैं
निम्नलिखित अंश महत्वपूर्ण डिफ़ॉल्ट्स को स्पष्ट रूप से दर्शाता है बजाय इसके कि उन्हें अनदेखा करने पर निर्भर रहे:
listen = "0.0.0.0:443"
deny_dotfiles = true
[tls]
unknown_sni = "reject"
[ddos]
enabled = true
mode = "normal"
requests_per_minute = 600
burst = 100
block_seconds = 60
max_tracked_clients = 65536
[security]
enabled = true
rate_limit_max_entries = 65536
[security.waf]
enabled = true
mode = "block"
sqli = true
xss = true
traversal = true
sensitive_paths = true
header_abuse = true
max_header_bytes = 32768
max_path_bytes = 2048
max_body_bytes = 1048576
[security.response_headers]
enabled = true
nosniff = true
frame_deny = true
referrer_no_referrer = true
hsts = "max-age=31536000; includeSubDomains"
content_security_policy = "default-src 'self'; frame-ancestors 'none'; base-uri 'self'"
permissions_policy = "geolocation=(), microphone=(), camera=()"एक बहु-डोमेन श्रोता पर, unknown_sni = "reject" एक अज्ञात होस्टनाम को श्रोता का डिफ़ॉल्ट प्रमाणपत्र प्राप्त करने से रोकता है। Webship के स्वचालित-TLS श्रोताओं पहले से ही तब तक अज्ञात नामों को अस्वीकार कर देते हैं जब तक कि एक प्रमाणपत्र मौजूद न हो।
मान्यता एक सुरक्षा नियंत्रण है
Webship श्रोता बाँधने से पहले कॉन्फ़िगरेशन को मान्य करता है। अज्ञात फ़ील्ड, अमान्य सीमाएँ, नामपूर्ण पहचान, विरोधी श्रोता और असमर्थित प्रोटोकॉल संयोजन एक विशिष्ट त्रुटि के साथ स्टार्टअप में विफल हो जाते हैं। वही मान्यता लाइव कॉन्फ़िगरेशन स्थापित करने से पहले चलती है। असफल रीलोड वर्तमान कॉन्फ़िगरेशन को सक्रिय छोड़ देता है।
प्रामाणिक MCP कॉन्फ़िगरेशन पथ एक और सुरक्षा जोड़ता है: यह सक्रिय WAF, DDoS लेयर, API शील्ड, बॉट चुनौती, एज-ऑथ पॉलिसी, या रिस्पॉन्स-हेडर लेयर को अक्षम करने वाले लाइव बदलावों को अस्वीकार करता है। संस्करण जांच एक व्यवस्थापक को नए कॉन्फ़िगरेशन स्नैपशॉट को ओवरराइट करने से रोकती है। प्रक्रिया-बद्ध सेटिंग्स अभी भी पुनः प्रारंभ की आवश्यकता होती है, यह दिखावा करने के बजाय कि आंशिक लाइव बदलाव सफल हुआ।
यह एक उपयोगी भेद है। सुरक्षित डिफ़ॉल्ट नए तैनाती की सुरक्षा करते हैं। लेन-देन आधारित सत्यापन और संरक्षित अपडेट चल रही तैनाती की सुरक्षा करते हैं।
कौन से ऑपरेटर अभी भी निर्णय लेने की जरूरत है
इंटरनेट पर Webship को एक्सपोज़ करने से पहले:
- एक भरोसेमंद TLS पहचान कॉन्फ़िगर करें और निजी कुंजी की सुरक्षा करें।
- लिस्नर टोपोलॉजी के लिए अज्ञात SNI हैंडलिंग सेट करें।
- पुष्टि करें कि HSTS और कंटेंट-सिक्योरिटी-पॉलिसी हर एप्लिकेशन और सबडोमेन से मेल खाती हैं।
- API शील्ड एंडपॉइंट्स, स्वीकार किए गए तरीके, सामग्री प्रकार और प्राधिकरण आवश्यकताओं को परिभाषित करें।
- केवल ग्लोबल बेसलाइन पर निर्भर रहने के बजाय रूट-विशिष्ट दर सीमाएँ जोड़ें।
- संरक्षित होस्ट या पथ के लिए एज प्रमाणीकरण सक्षम करें और अल्पकालिक टोकन का उपयोग करें।
- MCP और अवलोकन श्रोताओं को निजी, प्रमाणीकृत, और सार्वजनिक ट्रैफ़िक से अलग रखें।
- जहां संभव हो, Webship को एक समर्पित अप्रिविलेज्ड खाता, केवल पढ़ने-के-लिए एप्लिकेशन रूट और केवल वह ऑपरेटिंग-सिस्टम क्षमताएं जिनकी इसे आवश्यकता है, के साथ चलाएँ।
- रोलआउट से पहले कॉन्फ़िगरेशन को सत्यापित करें, फिर एक कैनरी वातावरण में ब्लॉक और अनुमत ट्रैफ़िक का परीक्षण करें।
- सुरक्षा ऑडिट घटनाओं की निगरानी करें और सामान्य मोड से अंडर_अटैक या लॉकडाउन में स्विच करने का अभ्यास करें।
एक सुरक्षित डिफ़ॉल्ट एक शुरुआत है, दावा नहीं
कोई भी वेब सर्वर यह तय नहीं कर सकता कि कौन से उपयोगकर्ता आपकी इनवॉइस देख सकते हैं, कौन से मूल आपके API को कॉल कर सकते हैं, या आपका व्यवसायिक एंडपॉइंट कितनी जल्दी अनुरोध स्वीकार करना चाहिए। उन नियंत्रणों के लिए एप्लिकेशन का ज्ञान आवश्यक है।
Webship निचली परत प्रदान करता है: सीमित पार्सर, सख्त कॉन्फ़िगरेशन, रक्षात्मक प्रतिक्रिया हेडर, अनुरोध निरीक्षण, दुरुपयोग नियंत्रण, और बंद वैकल्पिक सतहें। परिणाम यह नहीं है कि “सुरक्षा हल हो गई।” यह केवल सर्वर को स्थापित करने और इसे जिम्मेदारी से संचालित करने के बीच की खाई को छोटा करता है।
उत्पादन तैनाती से पहले पूरी Webship दस्तावेज़ीकरण की समीक्षा करें। कॉन्फ़िगरेशन स्कीमा और रनिंग बाइनरी वही प्राधिकारी स्रोत हैं जो आप जिस सटीक संस्करण को संचालित करते हैं उसके लिए मान्य हैं।