Fail2Ban लॉग फ़ाइल में 'पाया' क्या है?


20

मेरे पास कई उदाहरण हैं जैसे /var/log/fail2ban.log में निम्नलिखित:

2015-12-27 14:31:21,949 fail2ban.filter         [1020]: INFO    [sshd] Found ###.###.###.###

(जहाँ - आईपी पतों की विविधता के लिए विकल्प)

वास्तव में इस लॉग प्रविष्टि का अर्थ क्या है? विशेष रूप से, क्या Foundदर्शाता है?

मैंने यहाँ लॉग फ़ाइल के स्पष्टीकरण के लिए http://www.fail2ban.org खोजा । यदि मैंने इस प्रश्न के लिए एक स्पष्ट सूचना स्रोत को याद किया है, तो मेरी माफ़ी - कृपया मुझे सही दिशा में इंगित करें।

यहाँ FetRegex के लिए /etc/fail2ban/filter.d/sshd.config में विन्यास है:

failregex = ^%(__prefix_line)s(?:error: PAM: )?[aA]uthentication (?:failure|error) for .* from <HOST>( via \S+)?\s*$
        ^%(__prefix_line)s(?:error: PAM: )?User not known to the underlying authentication module for .* from <HOST>\s*$
        ^%(__prefix_line)sFailed \S+ for .*? from <HOST>(?: port \d*)?(?: ssh\d*)?(: (ruser .*|(\S+ ID \S+ \(serial \d+\) CA )?\S+ %(__md5hex)s(,$
        ^%(__prefix_line)sROOT LOGIN REFUSED.* FROM <HOST>\s*$
        ^%(__prefix_line)s[iI](?:llegal|nvalid) user .* from <HOST>\s*$
        ^%(__prefix_line)sUser .+ from <HOST> not allowed because not listed in AllowUsers\s*$
        ^%(__prefix_line)sUser .+ from <HOST> not allowed because listed in DenyUsers\s*$
        ^%(__prefix_line)sUser .+ from <HOST> not allowed because not in any group\s*$
        ^%(__prefix_line)srefused connect from \S+ \(<HOST>\)\s*$
        ^%(__prefix_line)sReceived disconnect from <HOST>: 3: \S+: Auth fail$
        ^%(__prefix_line)sUser .+ from <HOST> not allowed because a group is listed in DenyGroups\s*$
        ^%(__prefix_line)sUser .+ from <HOST> not allowed because none of user's groups are listed in AllowGroups\s*$
        ^(?P<__prefix>%(__prefix_line)s)User .+ not allowed because account is locked<SKIPLINES>(?P=__prefix)(?:error: )?Received disconnect from$
        ^(?P<__prefix>%(__prefix_line)s)Disconnecting: Too many authentication failures for .+? \[preauth\]<SKIPLINES>(?P=__prefix)(?:error: )?Co$
        ^(?P<__prefix>%(__prefix_line)s)Connection from <HOST> port \d+(?: on \S+ port \d+)?<SKIPLINES>(?P=__prefix)Disconnecting: Too many authe$
        ^%(__prefix_line)spam_unix\(sshd:auth\):\s+authentication failure;\s*logname=\S*\s*uid=\d*\s*euid=\d*\s*tty=\S*\s*ruser=\S*\s*rhost=<HOST$

फ़िल्टर में / sshd.conf, आपका FailRegex क्या है? fail2ban.org/wiki/index.php/MANUAL_0_8#Filters
फ्रैंक थॉमस

(मूल पोस्ट में FailRegex जोड़ा गया।)
nmax

ssh हैकर्स पसंदीदा पहली पसंद है, मेरे लॉग 10 से 1. के अनुसार यह संभवतः आपके सिस्टम से कनेक्ट होने में से एक है। मेरे पास सिर्फ ssh के लिए 10,000+ ip है।
सायबरनार्ड

फ़िल्टर। / sshd.conf में किसी भी अन्य रेगेक्स पैटर्न में 'फाउंड' शब्द है?
फ्रैंक थॉमस

उत्सुकता से, स्ट्रिंग 'मिला' sshd.conf या / etc / fail2ban में किसी भी फाइल में नहीं दिखाई देता है। @ बर्बर मैं निश्चित रूप से सहमत हूँ; समस्या यह है कि fail2ban पहले से ही ssh प्रयासों पर प्रतिबंध लगा रही है, और पासवर्ड-आधारित ssh सिस्टम पर अक्षम है (केवल कुंजी-आधारित ssh)।
nmax

जवाबों:


18

Found xxx.xxx.xxx.xxxसंदेश का मतलब है कि fail2ban फिल्टर एक लाइन पाया मैचों दिया फिल्टर / जेल लॉगफ़ाइल में failregex कि।

उदाहरण के लिए यदि लॉग दिखाता है

2016-03-16 15:35:51,527 fail2ban.filter         [1986]: INFO    [sshd] Found 1.2.3.4
2016-03-16 15:35:51,817 fail2ban.filter         [1986]: INFO    [sshd] Found 1.2.3.4
2016-03-16 15:35:52,537 fail2ban.actions        [1986]: NOTICE  [sshd] Ban 1.2.3.4

पहले दो का Foundमतलब है, कि आईपी एड्रेस 1.2.3.4 दिए गए sshd लॉग में 2 बार पाया गया (जैसे /var/log/auth.log) और failregexफ़िल्टर में लॉगफ़ाइल में प्रविष्टि/etc/fail2ban/filter.d/sshd.conf

जैसा कि मैंने 2 विफल ssh-atttps के बाद प्रतिबंध करने के लिए कॉन्फ़िगर किया है, तीसरी पंक्ति से पता चलता है कि आईपी 1.2.3.4 उन 2 पाया घटनाओं के बाद प्रतिबंध लगा दिया गया है।

मुझे इस बारे में कैसे पता चला:

अजगर 2 के असफलता के स्रोत (डेबियन में यह है /usr/lib/python3/dist-packages/fail2ban/) ऐसा करें:

cd /usr/lib/python3/dist-packages/fail2ban/

grep -r "\[%s\] Found" *

937 की लाइन में अजगर फाइल "सर्वर / फिल्टर ओरोम" में आपको संबंधित लॉग फ़ंक्शन मिलता है:

def processLineAndAdd(self, line, date=None):
  [..]
  logSys.info("[%s] Found %s" % (self.jail.name, ip))
  [..]

मुझे पता है कि इस उत्तर को पोस्ट किए हुए एक लंबा समय हो गया है, लेकिन मैं बस फिर से वापस आ गया। यह इतनी स्पष्ट, पूर्ण प्रतिक्रिया है - धन्यवाद।
nmax
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.