जन्नत थीम लाइसेंस सत्यापित नहीं है, लाइसेंस को सत्यापित करने के लिए थीम विकल्प पृष्ठ पर जाएं, आपको प्रत्येक डोमेन नाम के लिए एक लाइसेंस की आवश्यकता है।
लिनक्स में Fail2Ban से अपने सर्वर की सुरक्षा कैसे करें
किसी भी व्यवसाय या संगठन के लिए अपने सर्वर की सुरक्षा सर्वोच्च प्राथमिकता होती है। Fail2Ban, सिस्टम एडमिनिस्ट्रेटर के टूलकिट में सबसे महत्वपूर्ण टूल में से एक है। यह मार्गदर्शिका बताती है कि Fail2Ban क्या है और आप अपने Linux मशीन पर Fail2Ban का उपयोग करके अपने सर्वर को हमलों से कैसे सुरक्षित रख सकते हैं।
Fail2Ban क्या है?
Fail2Ban एक घुसपैठ रोकथाम उपकरण है जो लॉग फ़ाइलों की निगरानी करता है और दुर्भावनापूर्ण गतिविधि के संकेत दिखाने वाले IP पतों को ब्लॉक करता है। यह लॉग फ़ाइलों में कुछ खास पैटर्न से मेल खाने वाले "फ़िल्टर" बनाकर और आपत्तिजनक IP पते को ब्लॉक करने जैसी कार्रवाई करके ऐसा करता है।
लिनक्स में Fail2Ban का उपयोग क्यों करें?
लिनक्स में Fail2Ban का उपयोग करने के कई कारण हैं:
दुर्भावनापूर्ण IP पतों को स्वचालित रूप से ब्लॉक करके आपका समय बचाता है।
सफल हमले की संभावना को कम करके आपके सर्वर को सुरक्षित करने में मदद करता है।
यह जानकर आपको मानसिक शांति मिलती है कि आपके सर्वर की निगरानी की जा रही है और वह सुरक्षित है।
लिनक्स पर Fail2Ban स्थापित करना
डिफ़ॉल्ट रूप से, Fail2Ban उबंटू रिपॉजिटरी में उपलब्ध है। इसे apt का उपयोग करके इंस्टॉल करें।
Fail2Ban अपनी सेवा को पृष्ठभूमि में चलने के लिए सेट कर देगा, लेकिन systemd इसे डिफ़ॉल्ट रूप से अक्षम कर देगा। आप इसे निम्न कमांड से शुरू और सक्षम कर सकते हैं:
निम्नलिखित कमांड का उपयोग करके सत्यापित करें कि Fail2Ban चल रहा है:
sudo systemctl स्टेटस fail2ban
आपको नीचे दी गई छवि के समान आउटपुट दिखाई देगा।
Linux में Fail2Ban को कॉन्फ़िगर करना
/etc/fail2ban निर्देशिका में Fail2Ban के लिए कॉन्फ़िगरेशन फ़ाइलें होती हैं। डिफ़ॉल्ट रूप से, Fail2Ban एक "jail.conf" फ़ाइल के साथ आता है जिसमें सभी सेवाओं पर लागू होने वाली सेटिंग्स होती हैं।
हालाँकि, एक स्थानीय “jail.local” फ़ाइल बनाना और “jail.conf” में सेटिंग्स को ओवरराइड करना अच्छा अभ्यास है, क्योंकि जब भी सॉफ़्टवेयर अपडेट किया जाता है, तो “jail.conf” में आपके द्वारा किए गए कोई भी परिवर्तन खो जाएंगे।
आप निम्नलिखित कमांड का उपयोग करके अपनी स्वयं की “jail.local” फ़ाइल बना सकते हैं:
आपको नीचे दिखाए गए जैसा ही आउटपुट दिखाई देगा, और उपलब्ध विकल्पों की संख्या देखकर आप शायद परेशान हो जाएँ। लेकिन चिंता न करें, हम आपको सबसे ज़रूरी विकल्पों से रूबरू कराएँगे।
आपको आइकन दिखाई देगा "#" पंक्ति की शुरुआत में, यह दर्शाता है कि यह एक टिप्पणी है। Fail2Ban इसका उपयोग यह समझाने के लिए करता है कि कोई विशेष सेटिंग क्या करती है। आप इस कोड को हटाकर यहाँ कुछ सेटिंग्स सक्षम कर सकते हैं।
अनुभाग में शामिल है "[गलती करना]" सभी जेलों पर विकल्प लागू। यह Fail2Ban के लिए सामान्य कॉन्फ़िगरेशन है। नीचे दिया गया स्क्रीनशॉट एक उदाहरण दिखाता है।
सेटिंग्स पर जाएँ बैनटाइम = 1 घंटा"और कोड हटा दें "#" इसे सक्षम करने के लिए पंक्ति की शुरुआत में। यह पंक्ति निर्दिष्ट करती है कि Fail2Ban को IP पता अक्षम करने में कितना समय लगेगा। डिफ़ॉल्ट इकाई एक घंटा है। आप मिनट जैसी अन्य इकाइयों का भी उपयोग कर सकते हैं। (एम) या दिन (डी) या यहाँ तक कि सप्ताह (डब्ल्यू).
आप अपनी इच्छानुसार इस मान को बढ़ा या घटा सकते हैं। उदाहरण के लिए, ब्लॉक की अवधि को 30 मिनट तक कम करने के लिए आप इस मान को 30 मीटर में बदल सकते हैं।
लॉगिन विंडो की डिफ़ॉल्ट लंबाई बदलें
अगली सेटिंग्स हैं "maxretry" और "findtime"। ये सेटिंग्स यह निर्धारित करती हैं कि Fail2Ban द्वारा किसी हमलावर के IP पते पर प्रतिबंध लगाने से पहले वह कितने लॉगिन प्रयास कर सकता है।
"maxretry" और "findtime" के डिफ़ॉल्ट मान 5 और 10 मिनट हैं। अगर कोई IP दस मिनट के अंदर पाँच बार प्रमाणीकरण में विफल रहता है, तो Fail2Ban उसे bantime सेटिंग द्वारा निर्दिष्ट अवधि के लिए प्रतिबंधित कर देगा।
आप इन मानों को अपनी इच्छानुसार बदल सकते हैं। उदाहरण के लिए, आप "maxretry" को 3 और "findtime" को 5m पर सेट कर सकते हैं: अगर कोई IP पता पाँच मिनट के अंदर तीन बार प्रमाणीकरण में विफल रहता है, तो Fail2Ban उसे निष्क्रिय कर देगा।
Linux में Fail2Ban अधिसूचना सुविधा सक्षम करें
निम्नलिखित सेटिंग्स हैं: डेस्टेमेल, सेंडरनेम, और एमटीए। फ़ेल2बैन ईमेल सूचनाओं को कॉन्फ़िगर करने के लिए इन्हीं सेटिंग्स का इस्तेमाल करेगा।
ईमेल सेटिंग वह ईमेल पता है जिस पर प्रोग्राम अपनी सूचनाएं भेजेगा।
प्रेषक का नाम वह नाम है जो अधिसूचना ईमेल के "प्रेषक" फ़ील्ड में दिखाई देगा।
mta वह मेल ट्रांसफ़र एजेंट है जिसका इस्तेमाल Fail2Ban ईमेल भेजने के लिए करेगा। डिफ़ॉल्ट mta sendmail है, लेकिन आप इसे mail जैसे किसी और माध्यम से बदल सकते हैं।
यदि आप ईमेल सूचनाएं प्राप्त करना चाहते हैं, तो आपको इन पंक्तियों को अनकमेंट करना होगा और दिखाए गए अनुसार उचित मान दर्ज करना होगा।
जब प्रतिबंध लगाया जाएगा, तो आपको प्रतिबंध के बारे में विवरण के साथ एक ईमेल सूचना प्राप्त होगी, जैसा कि दिखाया गया है।
कस्टम ब्लॉक ऑर्डर बनाएँ
अगली सेटिंग "action_=" है। यह Fail2ban द्वारा किसी IP पते पर प्रतिबंध लगाने पर की जाने वाली कार्रवाई को निर्दिष्ट करती है। डिफ़ॉल्ट क्रिया "bantime" समाप्त होने तक IP पर प्रतिबंध लगाने के लिए iptables का उपयोग करना है।
आप नीचे बताई गई अन्य प्रक्रियाओं का भी उपयोग कर सकते हैं। यह ट्यूटोरियल सरलता के लिए डिफ़ॉल्ट सेटिंग का ही पालन करता है।
एक्शन_एमडब्ल्यू: जब कोई IP पता ब्लॉक किया जाता है, तो संबंधित WHOIS जानकारी के साथ एक ईमेल सूचना भेजता है।
एक्शन_एमडब्ल्यूएल: जब किसी IP पते पर प्रतिबंध लगाया जाता है, तो संबंधित WHOIS जानकारी और लॉग फ़ाइल प्रविष्टियों के साथ एक ईमेल सूचना भेजता है, जिसके कारण प्रतिबंध लगाया गया था।
एक्शन_xarf: जब किसी IP पते पर प्रतिबंध लगाया जाता है तो X-ARF प्रारूप में एक ईमेल सूचना भेजता है, साथ ही प्रतिबंध को ट्रिगर करने वाली लॉग फ़ाइल प्रविष्टियाँ भी भेजता है।
Fail2ban के डिफ़ॉल्ट व्यवहार को कॉन्फ़िगर करने के अलावा, कुछ लोकप्रिय इंटरनेट सेवाओं के लिए पूर्व-कॉन्फ़िगर की गई "फ़िल्टर फ़ाइलें" का उपयोग करना भी संभव है। ये छोटी फ़ाइलें होती हैं जिन्हें डेवलपर्स किसी विशिष्ट सर्वर के लिए विशिष्ट लॉग आउटपुट खोजने के लिए लिखते हैं।
उदाहरण के लिए, “apache-shellshock.conf” फ़ाइल में सभी आवश्यक सेटिंग्स होती हैं, जो Fail2ban को शेलशॉक त्रुटि बनाने के किसी भी दुर्भावनापूर्ण प्रयास की जांच करने की अनुमति देती हैं।
आप अपने सिस्टम के लिए सभी उपलब्ध फ़िल्टर फ़ाइलें “/etc/fail2ban/filter.d” निर्देशिका को सूचीबद्ध करके पा सकते हैं:
एलएस /etc/fail2ban/filter.d
एक बार जब आप जान लें कि आप कौन से फ़िल्टर का उपयोग करना चाहते हैं, तो Fail2ban को अपने "jail.local" फ़ाइल को खोलकर स्टार्टअप के दौरान उन्हें लोड करने के लिए कहें:
सुडो नैनो /etc/fail2ban/jail.local
"jail.local" में एक जगह बनाएँ जहाँ आप अपने नए फ़िल्टर सक्रिय कर सकें। मैं अपना फ़िल्टर कमेंट हेडर और [INCLUDES] ब्लॉक के बीच बनाता हूँ।
वे फ़िल्टर जोड़ें जिन्हें आप सक्रिय करना चाहते हैं। उदाहरण के लिए, यहाँ एक स्निपेट है जिसका उपयोग मैं अपने कॉन्फ़िगरेशन में करता हूँ:
# टिप्पणियाँ: टिप्पणी पंक्तियों के लिए '#' और इनलाइन टिप्पणियों के लिए ';' (स्पेस के बाद) का उपयोग करें [sshd] सक्षम = सत्य [nginx-bad-request] सक्षम = सत्य [bitwarden] सक्षम = सत्य [शामिल]
काम पूरा हो जाने पर, फ़ाइल को सेव करके बंद कर दें। बदलाव लागू करने के लिए fail2ban को फिर से शुरू करें।
sudo systemctl पुनरारंभ fail2ban
अपने कॉन्फ़िगरेशन का परीक्षण करें
अब जब आपने लिनक्स पर Fail2Ban को कॉन्फ़िगर कर लिया है, तो इसका परीक्षण करने का समय आ गया है।
अपने कॉन्फ़िगरेशन को जांचने का सबसे आसान तरीका है कि आप गलत पासवर्ड से कई बार लॉग इन करके देखें। आप SSH कनेक्शन का इस्तेमाल करके ऐसा कर सकते हैं।
डिस्पोज़ल डिवाइस पर, "admin" यूज़रनेम का इस्तेमाल करके अपने Fail2ban सर्वर में SSH करने की कोशिश करें। "your_server_ip_address" को अपने Fail2ban सर्वर के वास्तविक IP पते से बदलें।
ssh admin@your_server_ip_address
जब संकेत मिले, तो एक यादृच्छिक पासवर्ड डालें और उसे कई बार दोहराएँ। कई प्रयासों के बाद, आपको एक संदेश दिखाई देगा जिसमें बताया जाएगा कि सर्वर ने आपके कनेक्शन प्रयास को अस्वीकार कर दिया है।
SSH का उपयोग करने के अलावा, आप "विफलता स्थिति" फ़िल्टर चलाकर Fail2ban में अन्य फ़िल्टरिंग सुविधाओं का भी परीक्षण कर सकते हैं। मेरे मामले में, मैं "nginx-bad-request" फ़िल्टर का उपयोग कर रहा हूँ, जो यह पता लगाता है कि क्या कोई होस्ट सर्वर पर खराब अनुरोधों की बाढ़ ला रहा है।
अंत में, यह सत्यापित करने के लिए कि fail2ban ने iptables में आवश्यक नियम जोड़ दिए हैं, Fail2ban सर्वर पर निम्नलिखित कमांड चलाएँ।
grep कमांड iptables कमांड के आउटपुट को फ़िल्टर करता है। -S विकल्प iptables को नियमों को ऐसे प्रारूप में प्रिंट करने के लिए कहता है जिसे आसानी से पार्स किया जा सके।
sudo iptables -S | grep f2b
आपको नीचे दी गई छवि जैसा आउटपुट दिखाई देगा। "-reject-with icmp-port-unreachable" तर्क iptables को क्लाइंट द्वारा कनेक्ट करने का प्रयास करने पर उसे एक ICMP पोर्ट पहुँच से बाहर होने का संदेश भेजने के लिए कहता है। आप सर्वर द्वारा ब्लॉक किए गए उपकरणों के IP पते भी देख सकते हैं।
सुझाव: आपको अपने लिनक्स सर्वर को सुरक्षित करने के लिए SELinux का भी उपयोग करना चाहिए।
लगातार पूछे जाने वाले प्रश्न
प्रश्न 1: जब Fail2ban किसी IP पते पर प्रतिबंध लगाता है तो मुझे रिक्त ईमेल सूचना क्यों मिलती है? उत्तर: अगर आपको कोई खाली ईमेल सूचना मिलती है, तो हो सकता है कि आपका मेल सर्वर ठीक से कॉन्फ़िगर न किया गया हो। अपने मेल सर्वर का कॉन्फ़िगरेशन जांचें और सुनिश्चित करें कि वह ईमेल भेज सकता है।
प्रश्न 2: मैं किसी आईपी पते को कैसे अनब्लॉक कर सकता हूं? उत्तर: सबसे पहले, उस जेल का पता लगाएं जहां आईपी पता वर्तमान में प्रतिबंधित है: sudo fail2ban-client status , फिर निम्न चलाकर आईपी पते पर प्रतिबंध हटाएँ: sudo fail2ban-client set अनसानिप .
प्रश्न 3: मैं fail2ban लॉग फ़ाइल कैसे देख सकता हूँ? उत्तर: आप समस्याओं का निवारण करने या यह पता लगाने के लिए कि किसी IP पते को क्यों ब्लॉक किया गया था, fail2ban लॉग फ़ाइल देखना चाह सकते हैं। "/var/log/fail2ban.log" फ़ाइल में fail2ban द्वारा जनरेट किए गए सभी लॉग होते हैं। fail2ban लॉग फ़ाइल देखने के लिए cat कमांड का उपयोग करें: cat /var/log/fail2ban.log।
प्रश्न 4: मैंने कई फ़िल्टर फ़ाइलें सक्षम की हैं। वे सभी काम क्यों नहीं कर रही हैं? उत्तर: यह समस्या संभवतः किसी फ़िल्टर द्वारा अपने पहले वाली किसी अन्य फ़ाइल को अधिलेखित करने के कारण होती है। इसे ठीक करने का एक तरीका यह है कि आप कई फ़िल्टरों को एक साथ मिलाकर अपनी स्वयं की फ़िल्टर फ़ाइल बनाएँ।
प्रश्न 5: क्या Fail2ban मेरे सर्वर को DoS हमले से बचाएगा? उत्तर: हाँ और नहीं। अधिकांशतः, Fail2ban आपके सर्वर पर अमान्य अनुरोध भेजने वाले किसी भी IP पते को ब्लॉक कर सकता है। हालाँकि, इस प्रोग्राम की सबसे बड़ी सीमाओं में से एक यह है कि यह उन घटनाओं पर काम नहीं कर सकता जो लॉग प्रविष्टि उत्पन्न नहीं करती हैं। इसलिए, इस प्रकार के हमलों के लिए अपने Linux सर्वर को अन्य उपकरणों से सुरक्षित रखना अभी भी महत्वपूर्ण है।