मैं उबंटू में सभी फेल 2बान बैन को कैसे हटा सकता हूं? मैं सब कुछ करने की कोशिश की, लेकिन मुझे नहीं मिला।
मैं सिर्फ सभी प्रतिबंधों को हटाना चाहता हूं - लेकिन मैं किसी भी आईपी एड्रेस को नहीं जानता।
मैं उबंटू में सभी फेल 2बान बैन को कैसे हटा सकता हूं? मैं सब कुछ करने की कोशिश की, लेकिन मुझे नहीं मिला।
मैं सिर्फ सभी प्रतिबंधों को हटाना चाहता हूं - लेकिन मैं किसी भी आईपी एड्रेस को नहीं जानता।
जवाबों:
संस्करण 0.10.0 के रूप में fail2ban-clientसुविधाओं unbanआदेश है कि दो तरीकों से किया जा सकता है:
unban --all unbans all IP addresses (in all
jails and database)
unban <IP> ... <IP> unbans <IP> (in all jails and
database)
इसके अलावा, restart <JAIL>, reload <JAIL>और reloadआदेशों अब भी है --unbanविकल्प।
fail2ban iptablesयातायात को अवरुद्ध करने के लिए उपयोग करता है। यदि आप वर्तमान में अवरोधित किए गए IP पतों को देखना चाहते हैं, तो टाइप करें
iptables -L -n
और नामित विभिन्न श्रृंखलाओं की तलाश करें fail2ban-something, जहां somethingविफलता 2 जेल (उदाहरण के लिए, Chain f2b-sshdजेल को संदर्भित करता है sshd) को इंगित करता है । यदि आप <IP>किसी दिए गए जेल के लिए केवल एक IP पते के लिए ब्लॉक निकालना चाहते हैं <JAIL>, तो विफल 2बान अपने स्वयं के क्लाइंट प्रदान करता है:
fail2ban-client set <JAIL> unbanip <IP>
वैकल्पिक रूप से आप लाइन नंबर का उपयोग कर सकते हैं। सबसे पहले, iptablesलाइन नंबरों के साथ नियमों को सूचीबद्ध करें :
iptables -L -n --line-numbers
आगे आप उपयोग कर सकते हैं
iptables -D fail2ban-somejail <linenumber>
तालिका से एक पंक्ति निकालने के लिए। जहां तक मुझे पता है कि लाइन नंबर की एक श्रृंखला का चयन करने का कोई विकल्प नहीं है, इसलिए मुझे लगता है कि आपको इस कमांड को लूप में लपेटना होगा:
for lin in {200..1}; do
iptables -D fail2ban-somejail $lin
done
यहां मैंने 200 नंबर बनाया। कमांड के अपने स्वयं के आउटपुट की जांच करें --line-numbersऔर ध्यान दें कि अंतिम पंक्ति (साथ RETURN) रहना चाहिए। मतगणना के पीछे तर्क के लिए नीचे @ roaima की टिप्पणी देखें।
echo {5..1}इसके परिणामस्वरूप होगा 5 4 3 2 1।
सभी आईपी को अनबन करने का सबसे अच्छा तरीका है, बेंटाइम को 1 सेकंड में सेट करना है, फिर सभी आईपी को तुरंत मुक्त कर दिया जाएगा।
fail2ban-client set JailName bantime 1
उसके बाद आप उचित प्रतिबंध समय वापस सेट कर सकते हैं।
आपके लिए unban करने के लिए fail2ban को करने देना बेहतर है। खुद iptables को संपादित न करें।
fail2ban-client status
नवीनतम fail2ban-client(0.10) एक है unban -allआदेश। जेलों को व्यक्तिगत रूप से "पुनरारंभ" भी किया जा सकता है, प्रभावी रूप से प्रतिबंधों को समाप्त कर रहा है।
यदि आपके पास एक पुराना संस्करण है, तो यह ट्रिक ऑटोमैटिक अस्थायी प्रतिबंधों के लिए काम कर सकती है: जेल को हटा दें जिसमें प्रतिबंध है तो फिर से विफल हो जाएं। इसलिए (अब खाली) जेल को फिर से बनाया जाएगा।
$ fail2ban-client stop sshd
Jail stopped
$ systemctl restart fail2ban
फ़ाइल करने के लिए iptable config सहेजें
$ iptables-save > iptables.conf
किसी भी संपादक के साथ इसे संपादित करें जैसे कि आप लोड से वापस iptables पर कॉन्फ़िगर करते हैं
$ iptables-restore < iptables.conf
Iptables के अंदर कॉन्फ़िगरेशन स्टोर करना न भूलें, इसलिए इसे रिबूट पर उठाया जाएगा
$ service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
संपूर्ण असफल 2 जेल को उचित तरीके से खोल देने के लिए एक साधारण ऑन्लाइनर का उपयोग करता है:
iptables -L f2b-recidive -n | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | grep -v 0.0.0.0 | xargs -n 1 fail2ban-client set recidive unbanip
नोट: iptables कमांड को जेल नाम से पहले "f2b-" उपसर्ग लगता है जबकि असली जेल नाम "fail2ban-client"
fail2banकाम करने के तरीके के कारण , केवल दो संभावित समाधान हैं:
fail2banजेल शामिल हैं और फ़ायरवॉल को पुनरारंभ करें।यह वह स्क्रिप्ट है जिसका उपयोग मैं एक ssh जेल के लिए सभी IP पते को अनबन करने के लिए कर रहा हूं (बस sshd occourence को आपके द्वारा आवश्यक जेल के नाम से प्रतिस्थापित करें ... जैसे mysqld-Andor)
#!/bin/bash
j=$(iptables -L f2b-sshd | grep -c 'REJECT')
for ((i=1;i<=j;i++))
do
fail2ban-client set sshd unbanip $(fail2ban-client status sshd | grep 'Banned IP list:' | cut -c23-)
done