Fail2Ban: पहले से ही प्रतिबंधित है?


17

मेरे पास अपने Centos सर्वर पर Fail2Ban चल रहा है। (नीचे कॉन्फ़िगर करें)

मेरे var / log / संदेशों में मुझे कुछ अजीब लगा।

Jun 19 12:09:32 localhost fail2ban.actions: INFO   [postfix] 114.43.245.205 already banned

मैंने प्रतिबंधित IP को iptables में जोड़ने के लिए Fail2Ban को कॉन्फ़िगर किया है।

मेरी जेल .conf:

[postfix]

enabled  = true
filter   = postfix
action   = iptables
port     = smtp,ssmtp
filter   = postfix
logpath  = /var/log/maillog
bantime  = 43200
maxretry = 2

मेरी पोस्टफिक्स .conf:

[INCLUDES]

before = common.conf

[Definition]
failregex = reject: RCPT from (.*)\[<HOST>\]: 550 5.1.1
            reject: RCPT from (.*)\[<HOST>\]: 450 4.7.1
            reject: RCPT from (.*)\[<HOST>\]: 554 5.7.1
            reject: RCPT from (.*)\[<HOST>\]: (.*)@yahoo.com.tw
ignoreregex =

मेरा सवाल यह है कि कोई भी जो पहले से ही ब्लॉक हो चुका है वह iptablesसर्वर से कैसे जुड़ सकता है?


क्या आप iptables -L -nvअपने प्रश्न का आउटपुट जोड़ सकते हैं ?
लादादादा

जवाबों:


14

अन्य उत्तर में सिफारिश की गई जेल ने मेरे लिए इस मुद्दे को ठीक नहीं किया। मैंने अंततः यह तय कर दिया, लेकिन यहाँ मेरी विधि दूसरों के मामले में मदद करती है।

Fail2ban केवल डिफ़ॉल्ट रूप से टीसीपी पर ब्लॉक करता है। कम से कम मेरे सेटअप के साथ, मैंने देखा कि "पहले से ही प्रतिबंधित" संदेश दिखाई दे रहा था जब बॉट वापस आ गए थे तो इसके बजाय यूडीपी पर अवरुद्ध बंदरगाह की कोशिश की गई थी।

इस समस्या को ठीक करने के लिए, Fail2ban को केवल TCP के बजाय सभी प्रोटोकॉल पर पोर्ट ब्लॉक करने के लिए कहें। आपको यह परिवर्तन /etc/fail2ban/jail.conf और [Init] अनुभाग में प्रत्येक क्रिया का उपयोग करने की आवश्यकता होगी जिसे आप /etc/fail2ban/action.d/ पर उपयोग कर रहे हैं ।

इसे बदलो:

# Default protocol
protocol = tcp

सेवा:

# Default protocol
protocol = all

अगला, मैंने ICMP इको अनुरोधों को अक्षम कर दिया ताकि अवरुद्ध IPs के पास सर्वर से टकराने का कोई तरीका न हो:

  1. नैनो /etc/sysctl.conf
  2. इन दो पंक्तियों को जोड़ें:

    net.ipv4.icmp_echo_ignore_all = 1  
    net.ipv4.icmp_echo_ignore_broadcasts = 1
    
  3. फ़ाइल से बाहर निकलें और सहेजें।
  4. परिवर्तन लेने के लिए sysctl -p चलाएं ।

उसके बाद, fail2ban-client पुनः लोड करें और आपको इन "पहले से प्रतिबंधित" संदेशों को तब तक नहीं देखना चाहिए जब तक कि आपको एक आईपी द्वारा स्पैम नहीं किया जाता है जो ब्लॉक के प्रभावी होने से पहले कुछ एक्सेस प्रयासों को प्राप्त करता है।

इसके अलावा, प्रत्येक अपराधी के लिए सभी बंदरगाहों को अवरुद्ध करना महत्वपूर्ण है, बजाय कि वे प्रत्येक जेल में कार्रवाई iptables-allports का उपयोग करके जिस बंदरगाह तक पहुंचने की कोशिश कर रहे थे। अन्यथा, वे दूसरे जेल को ट्रिगर कर सकते हैं और लॉग में "पहले से ही प्रतिबंधित" के रूप में समाप्त हो सकते हैं।


3
मेरे लिए यह बहुत स्पष्ट नहीं है ... मेरे /etc/fail2ban/jail.localकुछ फिल्टरों में action = iptables-multiport[name=apache-myadmin, port="http,https", protocol=tcp]और कुछ नहीं हैं, क्या मुझे उन सभी को बदलना चाहिए? क्या मुझे कुछ बदलना चाहिए /etc/fail2ban/filter.d?
NineCattoRules

1
क्षमा करें, लेकिन प्रोटोकॉल = सभी काम नहीं कर रहा है, एक त्रुटि दे रहा है!
पेट्रीक लास्ज़लो

1
"iptables v1.6.2: मल्टीपर्ट जरूरतों -p tcp', -p udp ', -p udplite', -p sctp' या` -p dccp '"
पेट्रीक लास्ज़लो

ठीक है, मेरे लिए समस्या यह थी कि प्रतिबंध काम कर रहा था, लेकिन हमलावर लगातार कनेक्शन का उपयोग कर रहा था, इसलिए प्रतिबंध अभी लागू नहीं हुआ था, क्योंकि यह अभी भी जुड़ा हुआ था और कोई नया कनेक्शन नहीं था, यह करने का एकमात्र तरीका मेल सर्वर को पुनः आरंभ कर रहा था
पैट्रिक लास्ज़लो

3

यदि आप के आउटपुट iptables-saveको देखते हैं, तो आप देखेंगे कि fail2banचेन सेटअप हैं इसलिए वे फ़िल्टर द्वारा परिभाषित नियमों के अनुसार पैकेट का मूल्यांकन करते हैं, उदाहरण के लिए:

:fail2ban-ssh - [0:0]
-A INPUT -p tcp -A INPUT -p tcp -A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh 
-A fail2ban-ssh -j RETURN

अन्य रूटिंग नियमों को लागू करने और ट्रैफ़िक को अस्वीकार करने से पहले ट्रैफ़िक अभी भी सर्वर तक पहुँचता है। fail2banअभी भी यह प्रारंभिक ट्रैफ़िक देखता है, और इसीलिए आप "पहले से प्रतिबंधित" संदेश देखते हैं। इसके अलावा, वहाँ recidivists के लिए एक विशेष फिल्टर है ( /etc/fail2ban/filter.d/recidive.conf):

# Fail2Ban filter for repeat bans
#
# This filter monitors the fail2ban log file, and enables you to add long
# time bans for ip addresses that get banned by fail2ban multiple times.
#
# Reasons to use this: block very persistent attackers for a longer time,
# stop receiving email notifications about the same attacker over and
# over again.
#
# This jail is only useful if you set the 'findtime' and 'bantime' parameters
# in jail.conf to a higher value than the other jails. Also, this jail has its
# drawbacks, namely in that it works only with iptables, or if you use a
# different blocking mechanism for this jail versus others (e.g. hostsdeny
# for most jails, and shorewall for this one).

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf

[Definition]

_daemon = fail2ban\.server\.actions

# The name of the jail that this filter is used for. In jail.conf, name the
# jail using this filter 'recidive', or change this line!
_jailname = recidive

failregex = ^(%(__prefix_line)s| %(_daemon)s%(__pid_re)s?:\s+)WARNING\s+\[(?!%(_jailname)s\])(?:.*)\]\s+Ban\s+<HOST>\s*$

[Init]

journalmatch = _SYSTEMD_UNIT=fail2ban.service PRIORITY=4

# Author: Tom Hendrikx, modifications by Amir Caspi

1

ऐसा तब होगा जब आप जिस आईपी पते पर प्रतिबंध लगा रहे हैं वह वास्तव में उस क्लाइंट का आईपी पता नहीं है जो सर्वर से जुड़ रहा है। उदाहरण के लिए यदि आपका सर्वर लोड बैलेंसर या प्रॉक्सी के पीछे होता है।

हाल ही में यह पता लगाने में मुझे काफी समय लगा। लाल हेरिंग यह था कि X-Forwarded-Forअसली स्रोत पते के बजाय, आईपी पते पर कब्जा करने के लिए लॉग कॉन्फ़िगर किए गए थे , जो मेरे मामले में लोड बैलेंसर था।

इस मामले में असफल 2 आईएनबी बहुत मदद नहीं करता है, क्योंकि आक्रामक आईपी पर प्रतिबंध लगाने से सभी यातायात अवरुद्ध हो जाएंगे ।


तो आपने क्या वैकल्पिक कदम उठाया?
हसन बेग

@ हसनबाइग - कोई नहीं। Fail2ban कुछ भी नहीं कर सकता है अगर यह लोड बैलेंसर या रिवर्स प्रॉक्सी के पीछे चल रहा है।
डेल एंडरसन

हम्म तो क्या आप आवेदन परत पर वितरित वितरण के खिलाफ क्या उपाय करेंगे , एक HTTP जीईटी बाढ़ कहते हैं?
हसन बेग

1
@HassanBaig अपने होस्टिंग प्रदाता से बात करें। संभावना है कि आप एकमात्र व्यक्ति नहीं हैं जिन्होंने अपने सिस्टम पर समान समस्या का सामना किया है।
डेल एंडरसन

0

मैं "पहले से प्रतिबंधित" संदेशों के साथ अपनी समस्या और समाधान में योगदान करना चाहता हूं। जैसा कि आपने लिखा है कि मेरे पास सैकड़ों मिनट के भीतर थे जबकि हमलावर को पहले ही प्रतिबंधित कर दिया जाना चाहिए था।

शुरू करने से पहले, यहाँ मेरा सिस्टम है:

  • Plesk 12
  • सेंटोस 7
  • Plesk- मॉड्यूल स्थापित, संचालन और मेरे लिए fail2ban को कॉन्फ़िगर करना

जब मैंने अपने रूटस्वर पर OpenVPN स्थापित किया था तो मैंने फ़ायरवॉल को iptables में बदल दिया था। हो सकता है कि मेरे लिए यह समस्या उत्पन्न हुई हो, लेकिन इससे अलग मेरी प्रणाली ज्यादातर अछूती थी और काफी ताज़गी से स्थापित थी (स्ट्रैटो रूटसर्वर ने स्थापित छवि का सुझाव दिया था)।

यदि आपको यह समस्या है, तो इस तरह से दिखने वाली लाइन के लिए कृपया /etc/fail2ban/jail.d/00-firewalld.conf देखें :

banaction = firewallcmd-ipset

जब से मैंने टिप्पणी की कि बाहर, फ़ाइल को सहेजा और पुनः आरंभ किया fail2ban.service, तो सब कुछ फेल 2ब्बन के साथ ठीक था। और कोई संदेश नहीं

मैं एक विशेषज्ञ नहीं हूं, लेकिन आपको सही जवाब देने की उम्मीद कर रहा हूं। अगर वह आपके लिए काम करता है, तो कृपया मुझे बताएं!


0

मेरा सवाल यह है कि पहले से ही iptables में अवरुद्ध किसी को भी सर्वर से कैसे कनेक्ट किया जा सकता है?

यह सर्वर से केवल एक बार जुड़ा हुआ था, लेकिन उस एक कनेक्शन में इसने कई ईमेलों को वितरित करने की कोशिश की, जो कि लगातार ईमेल के माध्यम से वितरित करने की कोशिश करता था (जैसे कि info@domain.com, sales@domain.com, tech@domain.com आदि)।

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


0

मेरा सवाल यह है कि पहले से ही iptables में अवरुद्ध किसी को भी सर्वर से कैसे कनेक्ट किया जा सकता है?

अतुल्य अच्छा प्रश्न। अगर मेरे फ़ायरवॉल नियम काम नहीं कर रहे हैं, तो मैं चारों ओर खोज रहा था, लेकिन iptables --list-rulesकाम करने में विफलता के साथ एक अन्य उत्पादन सर्वर के साथ बिल्कुल मेल खाता है।

माइंडब्लोइंग समाधान को अवरुद्ध बंदरगाहों में पोर्ट 8080 जोड़ना था, क्योंकि मैं अभी भी विकास बंदरगाहों पर लॉगिन पृष्ठ तक पहुंच रहा था।

तो मेरी स्थिति में सुधार यह समस्या है मेरी एक बहुत सरल अनुकूलन था jail.local:

[JIRA-LOGIN-tcp]
  enabled = true
  port = http,https,8080
  protocol = tcp
  filter = JIRA-LOGIN-ERROR
  logpath = /var/atlassian/application-data/jira/log/atlassian-jira-security.log
  bantime = 600
  maxretry = 1

0

देख /unix//a/525798/22315

आप शायद "पोर्ट =" लाइन से पोर्ट 587 को याद कर रहे हैं, और आप पोस्टफ़िक्स कॉन्फ़िगरेशन फ़ाइल की जाँच कर सकते हैं या "lsof -i: 587" का पता लगाने के लिए, सीधे, यदि पोर्ट को खोलने के लिए पोस्टफ़िक्स को कॉन्फ़िगर किया गया है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.