यह मॉड्यूल क्या करता है #
fail2ban वह पहरेदार है जो आपके सर्वर के लॉग पर नज़र रखता है और, जब उसे दुर्भावनापूर्ण पहुँच प्रयास का पता चलता है (उदाहरण के लिए, कई SSH पासवर्ड विफलताएँ), तो अपराधी IP को कुछ समय के लिए स्वचालित रूप से बैन कर देता है। हर निगरानी की गई सेवा को एक jail में व्यवस्थित किया जाता है (उदाहरण के लिए sshd)।
fail2ban मॉड्यूल आपको इन बैन का नियंत्रण रनटाइम पर देता है, fail2ban-client का सिंटैक्स याद किए बिना: jail की स्थिति जाँचें, सूचीबद्ध करें कौन बैन है, जाँचें कि कोई विशिष्ट IP ब्लॉक है या नहीं, हाथ से बैन या अनबैन करें, आपात स्थिति में सब कुछ एक साथ अनब्लॉक करें और किसी बदलाव के बाद कॉन्फ़िगरेशन पुनः लोड करें।
यह मॉड्यूल पहले से इंस्टॉल और चल रहे fail2ban पर काम करता है। हर उपआदेश सेवा की स्थिति की क्वेरी या संशोधन करता है, इसलिए उन्हें root विशेषाधिकार चाहिए (sudo का उपयोग करें)। यदि आपने अपनी ही IP से खुद को बाहर कर लिया है, तो सीधे आपातकालीन अनब्लॉक पर जाएँ।
सामान्य कार्य #
चुनें कि आप क्या करना चाहते हैं। हर रेसिपी में आदेश पहले से लिखा हुआ आता है — बस IP या jail को अपने वाले से बदलें और कॉपी करें दबाएँ।
1
स्थिति और jail देखें
एक नज़र में जाँचें कि fail2ban सक्रिय है या नहीं और कितने बैन हैं।
ubuntu उपयोगकर्ता के साथ SSH से अपने सर्वर पर कनेक्ट करें और समग्र स्थिति माँगें:
$ sudo imaxe fail2ban statusकिसी स्क्रिप्ट या डैशबोर्ड के लिए मशीन-पठनीय रूप में चाहिए? --json जोड़ें:
$ sudo imaxe fail2ban status --jsonsshd) और प्रत्येक में बैन की गई IP की संख्या।2
देखें कौन-सी IP बैन हैं
सक्रिय बैन सूचीबद्ध करें, सभी jail में या केवल एक में।
सभी बैन की गई IP, सभी jail में एक साथ:
$ sudo imaxe fail2ban bannedकेवल एक jail में रुचि है? इसे आर्गुमेंट के रूप में दें:
$ sudo imaxe fail2ban banned sshd3
जाँचें कि कोई IP बैन है या नहीं
पता करें कि कोई विशिष्ट पता किन jail में ब्लॉक है।
सीधे IP के बारे में पूछें; यह बताएगा कि वह किन jail में बैन दिखती है:
$ sudo imaxe fail2ban check 203.0.113.74
किसी IP को बैन या अनबैन करें
किसी अपमानजनक पते को हाथ से ब्लॉक करें या किसी वैध उपयोगकर्ता को मुक्त करें।
किसी विशिष्ट jail में एक IP बैन करें (यदि केवल एक jail है, तो यह स्वचालित रूप से अनुमानित होता है):
$ sudo imaxe fail2ban ban 203.0.113.7 --jail sshdकिसी वैध को बैन कर दिया? उसे सभी jail से एक साथ अनबैन करें:
$ sudo imaxe fail2ban unban 203.0.113.7imaxe fail2ban check से इसकी पुष्टि करें।5
सब कुछ अनब्लॉक करें (आपातकाल)
आप बाहर हो गए हैं: सभी jail से सभी IP मुक्त करें।
यदि आपकी अपनी IP पकड़ी गई और आपको अभी पहुँच वापस चाहिए, तो सबको अनबैन करें। पुष्टि छोड़ने के लिए --yes जोड़ें:
$ sudo imaxe fail2ban unban-all --yesjail कॉन्फ़िगरेशन में बदलाव के बाद, इसे प्रभावी करने के लिए पुनः लोड करें:
$ sudo imaxe fail2ban reloadunban-all के साथ सावधानीयह एक विनाशकारी बैन ऑपरेशन है: यह दुर्भावनापूर्ण सहित सभी IP अनब्लॉक छोड़ देता है। इसका उपयोग केवल आपात स्थिति में पहुँच वापस पाने के लिए करें और बाद में imaxe fail2ban status से स्थिति जाँचें।
सारांश #
imaxe fail2ban <subcomando> [<ip>|<jail>] [--jail JAIL] [flags]हर उपआदेश के लिए root विशेषाधिकार आवश्यक हैं (sudo का उपयोग करें) क्योंकि वे fail2ban-client के माध्यम से fail2ban की स्थिति की क्वेरी या संशोधन करते हैं। मशीन-पठनीय आउटपुट के लिए, जो स्क्रिप्टिंग के लिए उपयुक्त है, status, banned या check में --json जोड़ें।
उपआदेश #
| उपआदेश | यह क्या करता है | प्रासंगिक फ़्लैग |
|---|---|---|
| status | fail2ban की स्थिति: सक्रिय, jail और प्रति jail बैन की गई IP की संख्या। | --json |
| banned | बैन की गई IP सूचीबद्ध करता है (सभी jail या कोई विशिष्ट)। | --json |
| check | बताता है कि कोई IP किन jail में बैन है। | --json |
| ban | किसी jail में एक IP को हाथ से बैन करता है। | --jail |
| unban | किसी IP को सभी jail से अनबैन करता है। | — |
| unban-all | आपातकाल: सभी jail से सभी IP अनबैन करता है। | --yes |
| reload | fail2ban कॉन्फ़िगरेशन पुनः लोड करता है (jail.local को मान्य करता है)। | — |
आर्गुमेंट और फ़्लैग #
| आर्गुमेंट / फ़्लैग | प्रकार | डिफ़ॉल्ट | विवरण |
|---|---|---|---|
| <ip> आव. | string | — | जिस IP पर काम करना है। check, ban और unban में आवश्यक। |
| <jail> | string | सभी | banned में, सूचीबद्ध करने के लिए एक विशिष्ट jail। आर्गुमेंट के बिना, सभी jail सूचीबद्ध होते हैं। |
| --jail | string | auto | ban में, बैन के लिए लक्ष्य jail। यदि केवल एक jail है, तो यह स्वचालित रूप से अनुमानित होता है। |
| --yes | bool | false | unban-all में, बिना पूछे पुष्टि करता है (विनाशकारी बैन ऑपरेशन)। |
| --json | bool | false | status/banned/check में, परिणाम को stdout पर JSON के रूप में निकालता है। |
फ़ाइलें और पथ #
| पथ | सामग्री |
|---|---|
| /etc/fail2ban/jail.local | स्थानीय fail2ban कॉन्फ़िगरेशन: सक्रिय jail, बैन समय और थ्रेशोल्ड। जिसे reload मान्य करता है। |
| /var/run/fail2ban/fail2ban.sock | नियंत्रण सॉकेट जिसका उपयोग fail2ban-client सेवा से बात करने के लिए करता है। |
| /var/log/fail2ban.log | fail2ban का अपना लॉग: बैन, अनबैन और रीलोड। |
निकास कोड और लॉग #
हर बार चलने पर एक कोड लौटाया जाता है जिसे आप echo $? से जाँच सकते हैं — स्क्रिप्ट में श्रृंखलाबद्ध करने के लिए उपयोगी:
समस्या निवारण करते समय लॉग को लाइव देखें:
$ sudo journalctl -u fail2ban -f
$ sudo tail -f /var/log/fail2ban.logसमस्या निवारण #
| लक्षण | संभावित कारण | समाधान |
|---|---|---|
| आपको SERVICE (कोड 3) मिलता है | fail2ban रुका हुआ है या सॉकेट जवाब नहीं दे रहा। | सेवा को systemctl start fail2ban से शुरू करें और पुनः प्रयास करें। |
| आपको JAIL (कोड 4) मिलता है | --jail वाला jail मौजूद नहीं है, या कई हैं और इसे अनुमानित नहीं किया जा सकता। | imaxe fail2ban status से jail देखें और --jail में सही वाला दें। |
| आपको RELOAD (कोड 5) मिलता है | jail.local में सिंटैक्स त्रुटि है। | /etc/fail2ban/jail.local ठीक करें और reload फिर चलाएँ। |
| मैं SSH से बाहर हो गया | आपकी अपनी IP ने विफलताएँ जमा कीं और sshd में बैन हो गई। | किसी अन्य रास्ते से, इसे unban से अनबैन करें या unban-all --yes से सबको मुक्त करें। |
Fail2ban मॉड्यूल में अटक गए?
हमें «imaxe <module> status --json» का आउटपुट भेजें और हम आपको जल्दी जवाब देंगे।