मैं उबंटू में सभी फेल 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