ব্যর্থ 2ban মনিটরিটে ঘোরানো লগ ফাইলগুলি কী পর্যবেক্ষণ করে?


9

ব্যর্থ 2ban কী ঘোরানো লগ ফাইলগুলি পর্যবেক্ষণ করতে থাকবে?

উদাহরণস্বরূপ, আমার কাছে একটি নিয়ম পর্যবেক্ষণ /var/log/fail2ban.log রয়েছে যা প্রতি সপ্তাহে (7 দিন) সিস্টেমে স্বয়ংক্রিয়ভাবে ঘোরানো হয়। আমি এমন একটি নিয়ম রাখতে চাই যা গত 10 দিনের মধ্যে 5 বার নিষিদ্ধ করা হয়েছে এমন পুনরাবৃত্তি অপরাধীদের সন্ধান করতে সেই লগটিতে নিষিদ্ধ আইপিগুলির জন্য নিরীক্ষণ করে। এটা কি সম্ভব?

উত্তর:


0

হ্যাঁ, ব্যর্থ 2ban ঘোরানো লগ ফাইলগুলি পর্যবেক্ষণ করে চলেছে। থেকেserver/filter.py

439 ##
440 # FileContainer class.
441 #
442 # This class manages a file handler and takes care of log rotation detection.
443 # In order to detect log rotation, the hash (MD5) of the first line of the file
444 # is computed and compared to the previous hash of this line.

3
এই মন্তব্যটির সাথে পুনরায় কার্যকর নিষেধাজ্ঞা কার্যকর হবে কিনা তা নিয়ে কোনও সম্পর্ক নেই । আমি মনে করি না (আমি বেশ নিশ্চিত) যা fail2banবর্তমান ফাইলটি পড়ে না। লগ ঘূর্ণন সনাক্ত পারবেন fail2banজানাতে চাই যে ফাইল পরিবর্তন পড়তে না .1, .2.gzইত্যাদি ফাইল এছাড়াও ফোল্ডারে যেতে পারে।
অ্যালেক্সিস উইলক

6

এক দুটি উপায়ে (বা সংমিশ্রণ) এর মধ্যে একাধিক লগ নির্দিষ্ট করতে পারে। মনিটরিং করার জন্য লগ ফাইলের সাথে ম্যাচ করার জন্য আপনি ফাইল গ্লোবস (ওয়াইল্ডকার্ডস) logpath = /var/log/*somefile.logবা নিরীক্ষণের জন্য লগ ফাইলগুলির একটি তালিকা ব্যবহার করতে পারেন, যেমন শ্বেত স্পেস (স্পেস, ট্যাবস, নিউলাইনস) দ্বারা পৃথক

    logpath = /var/log/auth.log /var/log/auth.log.1

অথবা

    logpath = /var/log/auth.log
              /var/log/auth.log.1

সুতরাং মূলত ব্যর্থ 2ban নতুন লগফাইলগুলি সনাক্ত করতে পারে না? আমি এটি কিছু পর্যবেক্ষণ করার জন্য সেট করে রেখেছি - *। লগ যেখানে নতুন তারিখের সাথে একটি নতুন ফাইল তৈরি হয় (যেমন কিছু- 20200101.log) এবং ফেল2ban এটি সনাক্ত করতে পারে না। ব্যর্থ 2ban এর কোনও বিকল্প আছে (কারণ আমি মনে করি না এটি গ্রহণযোগ্য)?
ডান

4

উপরের উত্তরটি আপনার প্রশ্নের সাথে ভুল। ফাইল কন্টেইনার কেবল শেষ অফসেট থেকে চালিয়ে যাওয়ার মানক পদ্ধতির পরিবর্তে লগ রিডিংটিকে পুনরায় ফাইলের পুনরায় সেট করতে ফাইল লগ রোটেশন সনাক্তকরণ ব্যবহার করে:

class FileContainer:
   ...
       def open(self):
                self.__handler = open(self.__filename, 'rb')
                ...
                # Compare hash and inode
                if self.__hash != myHash or self.__ino != stats.st_ino:
                        logSys.info("Log rotation detected for %s" % self.__filename)
                        self.__hash = myHash
                        self.__ino = stats.st_ino
                        self.__pos = 0
                # Sets the file pointer to the last position.
                self.__handler.seek(self.__pos)

সেখানে কোনও কোড নেই যা ঘূর্ণিত ফাইলগুলিও পার্স করার জন্য সন্ধান করে।


1
এক দুটি উপায়ে (বা সংমিশ্রণ) এর মধ্যে একাধিক লগ নির্দিষ্ট করতে পারে। মনিটরের জন্য লগ ফাইলগুলি (যেমন logpath = /var/log/*somefile.log) লগ ফাইলগুলির সাথে ম্যাচ করার জন্য আপনি ফাইল গ্লোবস (ওয়াইল্ডকার্ডস) বা হোয়াইটস্পেস (স্পেস, ট্যাবস, নিউলাইনস) দ্বারা পৃথক করে লগফাইনের একটি তালিকা ব্যবহার করতে পারেন logpath = /var/log/auth.log /var/log/auth.log.1
ট্রয় মোরহাউস

@ ট্রয়, আপনি উত্তরটি পেয়েছেন, সত্যিকারের উত্তর লিখাই আপনার পক্ষে ভাল হবে যাতে আমরা আপনাকে একটি +1 দিতে পারি।
অ্যালেক্সিস উইলক

@ অ্যালেক্সিস উইলক, আপনার পরামর্শ অনুসারে আমি একটি উত্তর যুক্ত করেছি
ট্রয়
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.