डिस्ट्रीब्यूटेड डेनियल ऑफ़ सर्विस या "DDoS" अपमानजनक डिजिटल संचार रणनीति के माध्यम से सर्वर के संसाधनों पर हमला करता है। इस प्रकार के हमले कंप्यूटर जगत की संगठित छापेमारी हैं। कई परेशान करने वाली विरोधी कार्रवाइयां एक अनुभवी सर्वर को अपने ट्रैक में रोकने के लिए एक भयानक पर्याप्त खतरा पैदा करने के लिए गठबंधन करती हैं। सबसे बुरी बात यह है कि पहले से न सोचा सर्वरों के खिलाफ इस तरह के गुरिल्ला वेब युद्ध छेड़ने के कई साधन होते हैं। सौभाग्य से, सर्वर को वापस लड़ने के लिए कॉन्फ़िगर किया जा सकता है।
यूनिक्स मशीनों के लिए एक अत्यधिक लोकप्रिय सर्वर सिस्टम, Nginx, DDoS हमलों की प्रभावशीलता को बहुत सीमित करने के लिए पर्याप्त अंतर्निहित कार्यक्षमता के साथ आता है।
Nginx-संचालित सर्वर पर ऐसे खतरों से निपटने के लिए यहां कुछ प्रभावी विकल्प दिए गए हैं:
अपनी कॉन्फ़िगरेशन फ़ाइल का बैक अप लें
किसी भी सेटिंग को बदलने से पहले, सुनिश्चित करें कि आपने अपने सर्वर के कॉन्फ़िगरेशन का त्वरित बैकअप बना लिया है। इसके लिए निम्न कमांड काम करती है:
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup-original
एक बार हो जाने के बाद, आप आगे बढ़ने के लिए तैयार हैं।
यातायात की जाँच करना
अपने सर्वर के ट्रैफ़िक पर नज़र रखने से सुरक्षा को अनुकूलित करना और लाइन के नीचे अतिरिक्त रणनीति लागू करना आसान हो जाता है। Nginx में इसके लिए विशेष रूप से बनाया गया एक मॉड्यूल है।
स्थिति पृष्ठ सेट करें
Nginx आमतौर पर "स्टब स्टेटस" (http_stub_status_module) नामक एक मॉड्यूल के साथ आता है जो इस तरह की कार्यक्षमता को आपके सर्वर वातावरण में आसानी से एकीकृत करने की अनुमति देता है। सबसे पहले, निम्न कमांड का उपयोग करके इसकी जांच करें:
nginx -V
या इसे तेजी से खोजने के लिए ऊपर दिए गए grep को पाइप करें:
nginx -V 2>&1 | grep -o with-http_stub_status_module
यदि आपका आउटपुट ऊपर के आउटपुट जैसा दिखता है, तो आप जाने के लिए अच्छे हैं; अन्यथा, आपको शामिल मॉड्यूल के साथ अपने Nginx इंस्टॉलेशन को फिर से स्थापित या पुन:संकलित करने की आवश्यकता होगी।
आप जिस स्थिति पृष्ठ की जांच कर सकते हैं उसे सेट करना सरल है, लेकिन आपको इसे सुरक्षित रखने के लिए इसकी पहुंच को न्यूनतम (आपकी मशीन) तक सीमित करने की भी आवश्यकता होगी। "/etc/nginx/nginx.conf" पर मिलने वाली अपने सर्वर की मुख्य कॉन्फ़िग फ़ाइल को खोलकर प्रारंभ करें।
इसे खोलें और मॉड्यूल को सक्रिय करने के लिए "http निर्देश" में निम्नलिखित कोड जोड़ें, "लोकलहोस्ट," "/status_page" और "127.0.0.1" के बजाय अपनी खुद की जानकारी को प्रतिस्थापित करें:
server { listen 80; listen [::]:80; server_name localhost; ## # Status Page Settings ## location /status_page { stub_status on; allow 127.0.0.1; allow ::1; deny all; } }
नोट :इस फ़ाइल को संशोधित करने के लिए आपको sudo विशेषाधिकारों की आवश्यकता होगी।
अब अपने कॉन्फ़िगरेशन का परीक्षण करें:
sudo nginx -t
यदि सब कुछ ठीक है, तो अपने सर्वर को एक पुनः लोड संकेत भेजें:
sudo systemctl reload nginx
अपने स्थिति पृष्ठ तक पहुँचने के लिए, अपने सर्वर_नाम स्थान पर जाएँ और उसके बाद वेब ब्राउज़र में "/status_page" या कर्ल जैसे कमांड-लाइन टूल का उपयोग करें। (यदि आपके ब्राउज़र का कैश स्वचालित रूप से अपडेट नहीं होता है तो यह सहायक होता है।) हमारे उदाहरणों में पेज तक पहुंचने के लिए कर्ल कमांड निम्नलिखित है:
curl localhost/status_page
ब्राउज़र में, उपरोक्त निम्न छवि जैसा दिखता है।
एक्सेस लॉग जांचें
यदि आप ऊपर कॉन्फ़िगर किए गए स्थिति पृष्ठ की जाँच करते समय असामान्य ट्रैफ़िक देखते हैं, तो सर्वर के एक्सेस लॉग की जाँच करना एक अच्छा विचार हो सकता है। यह "/var/log/nginx/access.log" पर पाया जा सकता है। लॉग में उपयोग की गई HTTP विधियों, एक्सेस प्रयासों की तिथि/समय, उपयोगकर्ता एजेंट और एक्सेस किए गए पृष्ठ सूचीबद्ध हैं।
कनेक्शन सीमित करना
DDoS हमलों को रोकने के लिए प्रयास करने लायक कई उपयोगी युक्तियों में से एक, आने वाली ट्रैफ़िक दरों को सीमित करना सबसे सरल और सबसे प्रभावी है।
आदर्श रूप से, आपको मानव क्लाइंट के लिए उचित दरों को बनाए रखते हुए दुर्भावनापूर्ण बॉट्स को अमानवीय दरों पर अपने सर्वर पर हावी होने से रोकने के लिए पर्याप्त पहुंच पर अंकुश लगाना चाहिए। Nginx में, इसे limit_req_zone
. के साथ पूरा किया जा सकता है और limit_req
निर्देश। निम्न कोड किसी भी स्थान पर उपयोग के लिए स्मृति और दर बाधाओं को सेट करता है जिसे दिखाने के लिए आपका सर्वर कॉन्फ़िगर किया गया है:
limit_req_zone $binary_remote_addr zone=speedbump:10m rate=10r/s;
"ज़ोन" मेमोरी में स्थान का नाम और आकार (इस मामले में मेगाबाइट में) निर्दिष्ट करता है जहां उपयोगकर्ता अनुरोध संग्रहीत किए जाते हैं। "दर" यह स्थापित करती है कि Nginx हर सेकंड (इस उदाहरण में 10) अनुरोधों की कुल संख्या स्वीकार करेगा। इस कोड को एक नियम के रूप में और उस नियम के उपयोग के रूप में अनुसरण करने वाले कोड के बारे में सोचें:
limit_req zone=speedbump burst=20;
उपरोक्त कोड वास्तव में हमारे सीमित नियम को लागू करने से थोड़ा अधिक करता है; यह वैध कनेक्शनों को धीरे-धीरे संभालने के लिए बीस अनुरोधों की एक छोटी कतार भी जोड़ता है जो सामान्य से थोड़ा तेज दिखाई देता है, नियम और कतार दोनों से अधिक होने पर क्लाइंट के लिए 503 त्रुटि होती है। दोनों निर्देश nginx.conf में इस तरह दिखते हैं:
आईपी पते को काली सूची में डालना
यदि आप अपने सर्वर को DDoSing करने वाले IP पते पर रोक लगा सकते हैं, तो आप इसे केवल ब्लैकलिस्ट कर सकते हैं और इस IP पते से उत्पन्न होने वाले किसी भी कनेक्शन को छोड़ सकते हैं।
अपने सर्वर निर्देश में निम्न कोड जोड़ें:
location / { deny 123.123.123.0/28; # ... }
कुछ फ़ाइलों के अनुरोध को अवरुद्ध करना
यदि DDoS हमला आपके सर्वर पर कुछ फ़ाइलों को लक्षित कर रहा है - उदाहरण के लिए, वर्डप्रेस पर xmlrpc.php फ़ाइल (यह अधिकांश वर्डप्रेस सर्वरों में एक भारी लक्षित फ़ाइल है) - आप इसके सभी अनुरोधों को ब्लॉक कर सकते हैं। इस कोड को अपने सर्वर निर्देश में जोड़ें:
location /xmlrpc.php { deny all; }
उपरोक्त प्रक्रिया का पालन करें, और आप अधिकांश DDoS हमलों को सीमित करने में सक्षम होंगे। अतिरिक्त सुरक्षा विकल्पों के लिए Nginx दस्तावेज़ों की जाँच करना सुनिश्चित करें जिन्हें आप स्थापित कर सकते हैं।