Linux में Fail2Ban के साथ अपने सर्वर की सुरक्षा कैसे करें
सर्वर सुरक्षा किसी भी व्यवसाय या संगठन के लिए सर्वोच्च प्राथमिकता है। Fail2Ban सिस्टम एडमिनिस्ट्रेटर के टूलकिट में सबसे महत्वपूर्ण टूल में से एक है। यह मार्गदर्शिका बताती है कि Fail2Ban क्या है और आप अपने Linux सर्वर को हमलों से Fail2Ban के साथ कैसे सुरक्षित कर सकते हैं।
Fail2Ban क्या है?
Fail2Ban एक घुसपैठ रोकथाम उपकरण है जो लॉग फाइलों पर नज़र रखता है और दुर्भावनापूर्ण गतिविधि के संकेत दिखाने वाले IP पतों को ब्लॉक करता है। यह ऐसा "फ़िल्टर" बनाकर करता है जो लॉग फ़ाइलों में कुछ पैटर्न से मेल खाता है और कार्रवाई करता है, जैसे कि आपत्तिजनक आईपी पते को ब्लॉक करना।
Linux में Fail2Ban का उपयोग क्यों करें?
Linux में Fail2Ban का उपयोग करने के कई कारण हैं। शायद:
- यह दुर्भावनापूर्ण IP पतों को स्वचालित रूप से ब्लॉक करके आपका समय बचाता है।
- हमले के सफल होने की संभावना को कम करके अपने सर्वर को सुरक्षित रखने में मदद करें।
- यह जानकर आपको मानसिक शांति मिलती है कि आपके सर्वर की निगरानी और सुरक्षा की जा रही है।
Linux में Fail2Ban इंस्टॉल करें
डिफ़ॉल्ट रूप से, Fail2Ban उबंटू रिपॉजिटरी में उपलब्ध है। एप्ट का उपयोग करके इसे स्थापित करें।
sudo add-apt-repository Universe sudo apt update && sudo apt install fail2ban -y
Fail2Ban अपनी सेवा को पृष्ठभूमि में सेट करेगा, लेकिन सिस्टमड इसे डिफ़ॉल्ट रूप से अक्षम कर देगा। आप निम्न आदेशों के साथ इसे प्रारंभ और सक्षम कर सकते हैं:
sudo systemctl start fail2ban sudo systemctl fail2ban सक्षम करें
सत्यापित करें कि Fail2Ban निम्न आदेश के साथ चल रहा है:
sudo systemctl स्टेटस fail2ban
आपको नीचे दी गई छवि के समान एक आउटपुट दिखाई देगा।
Linux में Fail2Ban कॉन्फ़िगर करें
निर्देशिका "/etc/fail2ban" में Fail2Ban के लिए कॉन्फ़िगरेशन फ़ाइलें शामिल हैं। डिफ़ॉल्ट रूप से, Fail2Ban एक "जेल.कॉन्फ़" फ़ाइल के साथ आता है जिसमें सेटिंग्स होती हैं जो सभी सेवाओं पर लागू होंगी।
हालाँकि, स्थानीय "जेल.लोकल" फ़ाइल बनाना और "जेल.कॉन्फ़" में सेटिंग्स को ओवरराइड करना एक अच्छा अभ्यास है, क्योंकि जब भी सॉफ़्टवेयर अपडेट किया जाता है, तो आप "जेल.कॉन्फ़" में किए गए किसी भी बदलाव को खो देंगे।
आप निम्न आदेशों के साथ अपनी "जेल.लोकल" फ़ाइल बना सकते हैं:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.bocal
इसे संपादित करने के लिए जेल.लोकल फ़ाइल खोलें:
सुडो नैनो /etc/fail2ban/jail.local
जानकर अच्छा लगा: सीखो LINUX पर पासवर्ड रहित SSH लॉगिन कैसे सक्षम करें।
जेल.स्थानीय फ़ाइल का अन्वेषण करें
जैसा कि नीचे दिखाया गया है आप एक समान आउटपुट देखेंगे और आप उपलब्ध विकल्पों की संख्या से अभिभूत हो सकते हैं। लेकिन चिंता न करें, हम आपको सबसे महत्वपूर्ण विकल्पों के बारे में बताते हैं।
आपको एक आइकन दिखाई देगा "#" पंक्ति की शुरुआत में, यह दर्शाता है कि यह एक टिप्पणी है। Fail2Ban इनका उपयोग यह समझाने के लिए करता है कि कोई विशेष सेटिंग क्या करती है। आप इस आइकन को हटाकर यहां कुछ सेटिंग सक्षम कर सकते हैं।
धारा शामिल है "[गलती करना]" सभी जेलों पर लागू विकल्पों पर। यह Fail2Ban का सामान्य विन्यास है। निम्न स्क्रीनशॉट एक उदाहरण दिखाता है।
ऐसे अन्य खंड भी हैं जो सेवा के नाम से शुरू होते हैं। यह जेल दुनिया की जेलों के ऊपर एक विशिष्ट सेवा पर लागू होती है।
उदाहरण के लिए, जेल के लिए एक खंड है "एसएसएचडी"। इस खंड में sshd सेवा के लिए विकल्प हैं।
युक्ति: आप सर्वर के सख्त होने के बारे में अधिक जान सकते हैं अपने SSH सर्वर को सुरक्षित करें.
ऑटोबैन सुविधा को सक्षम करें
सेटिंग में जाएं "बैंटाइम = 1 घंटाऔर कोड को हटा दें "#" इसे सक्षम करने के लिए लाइन की शुरुआत में। यह पंक्ति निर्धारित करती है कि IP पते को निष्क्रिय करने में Fail2Ban को कितना समय लगेगा। डिफ़ॉल्ट इकाई XNUMX घंटा है। आप मिनट जैसी अन्य इकाइयों का भी उपयोग कर सकते हैं (एम) या दिन (डी) या सप्ताह भी (डब्ल्यू)।
जैसा आप फिट देखते हैं आप इस मान को बढ़ा या घटा सकते हैं। उदाहरण के लिए, ब्लॉक अवधि को 30 मिनट तक कम करने के लिए आप इस मान को 30 मीटर में बदल सकते हैं।
लॉगिन विंडो की डिफ़ॉल्ट लंबाई बदलें
अगली सेटिंग्स "मैक्सरेट्री" और "फाइंडटाइम" हैं। Fail2Ban उसके IP पते को ब्लॉक करने से पहले वे एक हमलावर द्वारा किए जाने वाले लॉगिन प्रयासों की संख्या को सीमित करते हैं।
"मैक्सरेट्री" और "फाइंडटाइम" के लिए डिफ़ॉल्ट मान 5 और 10 मीटर हैं। यदि कोई आईपी दस मिनट में पांच बार प्रमाणित करने में विफल रहता है, तो Fail2Ban बैंटाइम सेटिंग द्वारा निर्दिष्ट अवधि के लिए इसे ब्लॉक कर देगा।
आप जो चाहें इन मानों को बदल सकते हैं। उदाहरण के लिए, आप "maxretry" को 3 और "findtime" को 5m पर सेट कर सकते हैं: Fail2Ban IP एड्रेस को निष्क्रिय कर देगा यदि यह पांच मिनट में तीन बार प्रमाणित करने में विफल रहता है।
लिनक्स में Fail2Ban अधिसूचना सुविधा को सक्षम करें
निम्नलिखित सेटिंग्स डेस्टेमेल, प्रेषक का नाम और एमटीए हैं। इन सेटिंग्स का उपयोग Fail2Ban ईमेल सूचनाओं को कॉन्फ़िगर करने के लिए करेगा।
- ईमेल सेटिंग वह ईमेल पता है जिस पर प्रोग्राम अपनी सूचनाएँ भेजेगा।
- प्रेषक का नाम वह नाम है जो अधिसूचना ईमेल के प्रेषक क्षेत्र में दिखाई देगा।
- mta मेल ट्रांसफर एजेंट है जिसका उपयोग Fail2Ban ईमेल भेजने के लिए करेगा। एमटीए डिफ़ॉल्ट सेंडमेल है, लेकिन आप इसे मेल की तरह कुछ और बदल सकते हैं।
यदि आप ईमेल सूचनाएँ प्राप्त करना चाहते हैं, तो आपको इन पंक्तियों को अनकमेंट करना होगा और दिखाए गए अनुसार उचित मान दर्ज करना होगा।
जब कोई प्रतिबंध लगाया जाता है, तो आपको प्रतिबंध के विवरण के साथ एक ईमेल सूचना प्राप्त होगी, जैसा कि दिखाया गया है।
कस्टम ब्लॉक ऑर्डर बनाएं
अगली सेटिंग "कार्रवाई_ =" है। यह उस क्रिया को निर्दिष्ट करता है जो Fail2ban किसी IP पते को ब्लॉक करने पर करता है। डिफ़ॉल्ट रूप से आईपी को ब्लॉक करने के लिए iptables का उपयोग करना है जब तक कि "बैंटाइम" समाप्त नहीं हो जाता।
आप अन्य प्रक्रियाओं का भी उपयोग कर सकते हैं, जैसा कि नीचे दिखाया गया है। यह ट्यूटोरियल सरलता के लिए डिफ़ॉल्ट सेटिंग पर टिका हुआ है।
- कार्रवाई_एमडब्ल्यू: प्रासंगिक WHOIS जानकारी के साथ IP पता ब्लॉक होने पर एक ईमेल सूचना भेजता है।
- कार्रवाई_एमडब्लूएल: प्रासंगिक WHOIS जानकारी और ब्लॉक करने वाली लॉग फ़ाइल प्रविष्टियों के साथ IP पता ब्लॉक किए जाने पर एक ईमेल सूचना भेजता है।
- क्रिया_xarf: आईपी एड्रेस ब्लॉक होने पर ब्लॉकिंग को ट्रिगर करने वाली लॉग फाइल एंट्री के साथ एक एक्स-एआरएफ ई-मेल नोटिफिकेशन भेजता है।
कई अन्य प्रक्रियाएँ उपलब्ध हैं, लेकिन उन सभी को इस ट्यूटोरियल में शामिल करना असंभव है। आप कर सकते हैं सभी उपलब्ध प्रक्रियाओं के बारे में पढ़ें Fail2ban दस्तावेज़ीकरण में।
सेवा के लिए कॉन्फ़िगरेशन सक्षम करें
Fail2ban के डिफ़ॉल्ट व्यवहार को कॉन्फ़िगर करने के अलावा, कुछ लोकप्रिय इंटरनेट सेवाओं के लिए पूर्व-निर्मित फ़िल्टर फ़ाइलों का उपयोग करना भी संभव है। ये डेवलपर्स द्वारा किसी विशेष सर्वर के लिए विशिष्ट लॉग आउटपुट खोजने के लिए लिखी गई छोटी फाइलें हैं।
उदाहरण के लिए, "apache-shellshock.conf" फ़ाइल में सभी आवश्यक सेटिंग्स हैं जो Fail2ban को शेलशॉक त्रुटि उत्पन्न करने के किसी भी दुर्भावनापूर्ण प्रयासों की जांच करने की अनुमति देती हैं।
आप "/etc/fail2ban/filter.d" निर्देशिका सूचीबद्ध करके अपने सिस्टम के लिए सभी उपलब्ध फ़िल्टर फ़ाइलें पा सकते हैं:
ls /etc/fail2ban/filter.d
एक बार जब आप उन फ़िल्टरों को जान लेते हैं जिनका आप उपयोग करना चाहते हैं, तो Fail2ban को अपनी "जेल.लोकल" फ़ाइल खोलकर स्टार्टअप के दौरान उन्हें लोड करने के लिए कहें:
सुडो नैनो /etc/fail2ban/jail.local
"जेल.लोकल" में एक स्थान बनाएँ जहाँ आप अपने नए फ़िल्टर सक्रिय कर सकते हैं। मैं टिप्पणी शीर्षक और [INCLUDES] ब्लॉक के बीच अपना स्वयं का निर्माण करता हूं।
वे फ़िल्टर जोड़ें जिन्हें आप सक्रिय करना चाहते हैं। उदाहरण के लिए, निम्नलिखित एक स्निपेट है जिसका मैं अपने कॉन्फ़िगरेशन में उपयोग कर रहा हूं:
# टिप्पणियाँ: टिप्पणी पंक्तियों के लिए '#' का उपयोग करें और ';' (एक स्थान के बाद) इनलाइन टिप्पणियों के लिए [sshd] सक्षम = सत्य [nginx-bad-request] सक्षम = सत्य [बिटवर्डन] सक्षम = सत्य [INCLUDES]
एक बार हो जाने के बाद, फ़ाइल को सहेजें और बंद करें। परिवर्तनों को लागू करने के लिए fail2ban को पुनरारंभ करें।
sudo systemctl पुनरारंभ विफल 2ban
अपने कॉन्फ़िगरेशन का परीक्षण करें
अब जब आपने Linux में Fail2Ban को कॉन्फ़िगर कर लिया है, तो इसका परीक्षण करने का समय आ गया है।
अपने कॉन्फ़िगरेशन का परीक्षण करने का सबसे आसान तरीका गलत पासवर्ड से कई बार जल्दी से लॉग इन करने का प्रयास करना है। ऐसा करने के लिए आप SSH कनेक्शन का उपयोग कर सकते हैं।
निपटान मशीन पर, 'व्यवस्थापक' उपयोगकर्ता नाम का उपयोग करके अपने Fail2ban सर्वर में SSH का प्रयास करें। "Your_server_ip_address" को अपने Fail2ban सर्वर के वास्तविक IP पते से बदलें।
ssh admin@your_server_ip_address
संकेत मिलने पर एक यादृच्छिक पासवर्ड दर्ज करें और इसे कई बार दोहराएं। कई प्रयासों के बाद, आपको एक संदेश दिखाई देगा कि सर्वर ने आपके कनेक्शन के प्रयास को अस्वीकार कर दिया है।
Ssh का उपयोग करने के अलावा, आप Fail2ban में Fail Status चलाकर अन्य फ़िल्टर फ़ाइलों का परीक्षण भी कर सकते हैं। मेरे मामले में, मैं "nginx-bad-request" फ़िल्टर का उपयोग कर रहा हूं जो यह पता लगाता है कि क्या कोई होस्ट सर्वर को अमान्य अनुरोधों से भर रहा है।
यह जानकर, आप जानबूझकर अपने वेब सर्वर को कर्ल का उपयोग करके खाली अनुरोध भेजकर इस सुविधा का परीक्षण कर सकते हैं:
कर्ल-एच "उपयोगकर्ता-एजेंट:" -एच "होस्ट:" https://yourwebsite.com -v
लिनक्स में Fail2Ban रूटीन की जाँच करना
अंत में, यह सत्यापित करने के लिए Fail2ban सर्वर पर निम्न कमांड चलाएँ कि Fail2ban ने iptables में आवश्यक नियम जोड़े हैं।
Grep कमांड iptables कमांड के आउटपुट को फिल्टर करता है। -S विकल्प iptables को नियमों को आसानी से पार्स करने योग्य प्रारूप में प्रिंट करने के लिए कहता है।
सुडो iptables -S | ग्रेप f2b
आपको नीचे दी गई छवि के समान एक आउटपुट दिखाई देगा। "-reject-with icmp-port-unreadable" तर्क iptables को क्लाइंट को ICMP पोर्ट अगम्य संदेश भेजने के लिए कहता है जब वह कनेक्ट करने का प्रयास करता है। आप उन उपकरणों के आईपी पते भी देख सकते हैं जिन्हें सर्वर ने ब्लॉक कर दिया है।
युक्ति: आपको अपने Linux सर्वर को सुरक्षित करने के लिए SELinux का भी उपयोग करना चाहिए।
लगातार पूछे जाने वाले प्रश्न
Q1: जब Fail2ban किसी IP पते को ब्लॉक करता है तो मुझे एक खाली ईमेल सूचना क्यों मिलती है?
उत्तर: यदि आपको एक खाली ईमेल सूचना प्राप्त होती है, तो संभव है कि आपने अपने मेल सर्वर को ठीक से कॉन्फ़िगर नहीं किया हो। अपने मेल सर्वर कॉन्फ़िगरेशन की जाँच करें और सुनिश्चित करें कि यह ईमेल भेज सकता है।
Q2: मैं किसी IP पते को कैसे अनब्लॉक कर सकता हूं?
उत्तर: सबसे पहले, उस जेल को ढूंढें जहां आईपी पता वर्तमान में अवरुद्ध है: सुडो असफल 2बान-क्लाइंट स्थिति , फिर निम्न को चलाकर IP पते को अनब्लॉक करें: sudo fail2ban-client set unsanip .
Q3: मैं fail2ban लॉग फ़ाइल कैसे देख सकता हूँ?
उत्तर: आप समस्याओं का निवारण करने के लिए या यह पता लगाने के लिए कि IP पता क्यों अवरुद्ध किया गया था, आप fail2ban लॉग फ़ाइल देखना चाह सकते हैं। फ़ाइल "/var/log/fail2ban.log" में fail2ban द्वारा उत्पन्न सभी लॉग शामिल हैं। Fail2ban लॉग फ़ाइल देखने के लिए कैट कमांड का उपयोग करें: cat /var/log/fail2ban.log।
Q4: मैंने एकाधिक फ़िल्टर फ़ाइलों को सक्षम किया है। वे सब काम क्यों नहीं कर रहे हैं?
उत्तर: यह समस्या सबसे अधिक संभावित रूप से होती है क्योंकि एक फ़िल्टर किसी भिन्न फ़ाइल को अधिलेखित कर देता है जो इससे पहले थी। इसे ठीक करने का एक तरीका यह है कि एक से अधिक फ़िल्टर को एक साथ जोड़कर अपनी स्वयं की फ़िल्टर फ़ाइल बनाई जाए।
Q5: क्या Fail2ban मेरे सर्वर को DoS हमले से बचाएगा?
उत्तर: हां और ना। अधिकांश भाग के लिए, Fail2ban किसी भी IP को ब्लॉक करने में सक्षम होगा जो आपके सर्वर पर अमान्य अनुरोध भेजता है। हालाँकि, इस कार्यक्रम की सबसे बड़ी सीमाओं में से एक यह है कि यह उन घटनाओं पर कार्य नहीं कर सकता है जो लॉग प्रविष्टि उत्पन्न नहीं करती हैं। इस प्रकार, इन प्रकार के हमलों के लिए अन्य उपकरणों का उपयोग करके अपने लिनक्स सर्वर को सुरक्षित करना अभी भी महत्वपूर्ण है।