विफलता के बाद n रिट्रीट के बाद IP का स्थायी ब्लॉक


38

मेरे पास नीचे की तरह एक विफल 2 चैनल कॉन्फ़िगर किया गया है:

  • 3 विफल प्रयासों के बाद आईपी को ब्लॉक करें
  • 300 सेकंड के समय के बाद आईपी जारी करें

यह पूरी तरह से काम करता है और मैं इसे इस तरह रखना चाहता हूं कि एक वैध उपयोगकर्ता को टाइमआउट के बाद लॉगिन को फिर से करने का मौका मिले। अब, मैं एक नियम लागू करना चाहता हूं जहां अगर समान आईपी को हमले और अवरुद्ध के रूप में पाया जाता है, तो 5 बार अनब्लॉक किया गया है, आईपी को स्थायी रूप से ब्लॉक करें और फिर कभी अनब्लॉक न करें। क्या यह अकेले असफल 2ban के साथ प्राप्त किया जा सकता है या मुझे ऐसा करने के लिए अपनी खुद की स्क्रिप्ट लिखने की आवश्यकता है?

मैं यह सेंटो में कर रहा हूं।


2
यह एक मूर्खतापूर्ण विचार है - जितना अधिक नियम आप इसे धीमा करने वाले को iptables में जोड़ते हैं।
सिम्बियन

14
अपनी टिप्पणी की सराहना करें लेकिन मुझे जो चाहिए वह एक उत्तर है और सुझाव नहीं। फिर भी धन्यवाद।
बीटीआर नायडू ०

5
कभी-कभी "मैं एक्स कैसे करता हूँ" का सही उत्तर है "एक्स न करें"।
ceejayoz

जवाबों:


32

0.11 से पहले, इसे प्राप्त करने के लिए कोई भी डिफ़ॉल्ट सुविधा या विफलता 2ban के भीतर कोई सेटिंग नहीं थी । लेकिन आगामी 0.11 रिलीज के साथ शुरू होने पर, प्रतिबंध समय की गणना स्वचालित रूप से की जाती है और प्रत्येक नए अपराध के साथ तेजी से बढ़ जाती है, जो लंबी अवधि में, अधिक या कम स्थायी ब्लॉक का मतलब होगा।

तब तक, आपका सबसे अच्छा तरीका शायद खुद की लॉग फ़ाइल की निगरानी करने के लिए fail2ban की स्थापना करना है । यह दो चरणों वाली प्रक्रिया है ...

चरण 1

हमें लॉग फ़ाइल में BAN की जांच करने के लिए एक फ़िल्टर बनाने की आवश्यकता हो सकती है (विफलता 2 फाइल की लॉग फ़ाइल)

चरण 2

हमें निम्नलिखित के समान जेल को परिभाषित करने की आवश्यकता है ...

[Fail2ban]
सक्षम = सत्य
फ़िल्टर = विफल 2बान
कार्रवाई = iptables-allports [नाम = fail2ban]
logpath = /path/to/fail2ban.log
# खोज: 1 दिन
खोज समय = 86400
# बेंटाइम: 1 वर्ष
बंटाइम = 31536000

तकनीकी रूप से, यह एक स्थायी ब्लॉक नहीं है , लेकिन केवल एक वर्ष के लिए ब्लॉक करता है (कि हम भी बढ़ा सकते हैं)।

वैसे भी, आपके प्रश्न के लिए (क्या यह अकेले विफलता 2ban के साथ प्राप्त किया जा सकता है या मुझे ऐसा करने के लिए अपनी खुद की स्क्रिप्ट लिखने की आवश्यकता है?) ... स्वयं की स्क्रिप्ट लिखना अच्छी तरह से काम कर सकता है। बार-बार प्रतिबंधित आईपी को निकालने के लिए स्क्रिप्ट सेट करना और फिर उन्हें डाल देना /etc/hosts.denyजो मैं सुझाऊंगा।


1
इस उत्कृष्ट उत्तर को जोड़ना ... लॉगिंग और MaxAuthTries कैसे कॉन्फ़िगर किए जाते हैं sshd_config, इसके आधार पर , यह संभावित रूप से केवल एक sshd "सत्र" के लिए 3 विफल लॉगिन को ब्लॉक कर सकता है - 3 विफल लॉगिन प्रदान नहीं किए गए। उदाहरण के लिए, डिफ़ॉल्ट रूप से एक हमलावर sshd डिस्कनेक्ट से पहले एक सत्र में ['पास 1', 'पास 2', 'पास 3'] की कोशिश कर सकता है। Sshd को लॉग करने के लिए कैसे सेट किया गया है, इस पर निर्भर करते हुए, यह विफल 2ban के 1, 2 या 3 प्रयासों के रूप में प्रकट हो सकता है।
जोनाथन वानास्को

5
उस के लिए अब विफलता 2 रेबिडिव फिल्टर है।
गिलर्मो प्रांडी

आगामी 0.11 रिलीज से आपका क्या मतलब है ? सबसे हाल ही में 10.3.1 लगता है: github.com/fail2ban/fail2ban/releases
user5950

मुझे आशा है कि आपका मतलब 0.10.3.1 था । आप "0.11" की प्रगति को github.com/fail2ban/fail2ban/tree/0.11 पर ट्रैक कर सकते हैं । असल में, यह जारी नहीं किया गया है, फिर भी!
पोथी कालीमुथु

29

मेरा मानना ​​है कि अगर आप bantime = -1उस कॉन्फिग सेक्शन में रखते हैं, तो यह एक स्थायी ब्लॉक है।


2
वास्तव में, bantimeकिसी भी नकारात्मक मूल्य पर सेट करना एक स्थायी प्रतिबंध है (जैसा कि Fail2Ban ver। 0.6.1 (2006/03/16))
voretaq7

3
-1 में सेटिंग्स को जोड़ने से फेल 2 एबन गैर
एर्डेम एसे

13

फिल हागन ने इस विषय पर एक उत्कृष्ट लेख लिखा। " असफलता के साथ स्थायी रूप से प्रतिबंध दोहराने वाले अपराधी "।

उनका सुझाव पोथी जैसा ही है, लेकिन एक कदम से कदम गाइड प्रदान करता है।

इसमें शामिल हैं:

  • जेल द्वारा अलग प्रतिबंध सूची (ip.blocklist.ssh, ip.blocklist.xxx)
  • सेवा पुनरारंभ ( यदि इस विधि का मुख्य लाभ)
  • ईमेल सूचना अगर पुनरावर्तक लगे।

6

चिन के जवाब पर विस्तार करने के लिए यह बहुत आसान है। /etc/fail2ban/jail.localअपनी प्राथमिकताओं से मेल खाने के लिए बस 2 सेटिंग्स संपादित करें ।

 # ban time in seconds. Use -1 for forever. Example is 1 week.
 bantime  = 604800
 # number of failures before banning
 maxretry = 5

4

fail2ban पहले से ही प्रतिबंधात्मक प्रतिबंध लगाने के लिए जेल है। अगर आप देखते हैं /etc/fail2ban/jail.conf, तो आप पाएंगे:

# Jail for more extended banning of persistent abusers
# !!! WARNING !!!
#   Make sure that your loglevel specified in fail2ban.conf/.local
#   is not at DEBUG level -- which might then cause fail2ban to fall into
#   an infinite loop constantly feeding itself with non-informative lines
[recidive]

enabled  = false
filter   = recidive
logpath  = /var/log/fail2ban.log
action   = iptables-allports[name=recidive]
           sendmail-whois-lines[name=recidive, logpath=/var/log/fail2ban.log]
bantime  = 604800  ; 1 week
findtime = 86400   ; 1 day
maxretry = 5

जेल में कैसे जोड़ें।

[recidive]
enabled  = true
bantime  = 31536000  ; 1 year
findtime = 18144000  ; 1 month
maxretry = 2

जांच के लिए आप LogLevel आप कर सकते हैं: fail2ban-client get loglevel

  • सेट लेगवेल MYLEVEL : सेट लॉगिंग स्तर से MYLEVEL। स्तर: महत्वपूर्ण, त्रुटि, चेतावनी, सूचना, जानकारी, दोष
  • विकी पर अधिक कमांड

विफलता के पुराने संस्करण के साथ, आप इस बग को प्राप्त कर सकते हैं ।


0

Vim पर जाएं, /etc/fail2ban/jail.conf खोलें

और बाद में संशोधित करें fail2ban service restart:

# "bantime" is the number of seconds that a host is banned.
bantime  = ***1296000***

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime  = ***60000***

# "maxretry" is the number of failures before a host get banned.
maxretry = ***3***
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.