Iptables বার্তাগুলি একটি পৃথক ফাইলে লগ করতে আমি কীভাবে syslog.conf ফাইল কনফিগার করতে পারি?


10

নির্দিষ্ট ফাইলটিতে /etc/syslog.confলগ সম্পর্কিত তথ্য সংরক্ষণ করার জন্য আমি কীভাবে ফাইল কনফিগার করব iptables

আমি এই তথ্যগুলি আলাদাভাবে সংরক্ষণ করতে চাই, তাই আমি যা চাই সহজে এবং দ্রুত তা বের করতে পারি।


আপনি কি syslog.conf বা rsyslog.conf ব্যবহার করছেন?
slm

উত্তর:


13

syslog- র

ম্যান পৃষ্ঠাতে একবার দেখুন iptables। এটি এমন একটি লক্ষ্য দেখায় LOGযা আপনার যা করতে পারে তা করতে পারে।

উদাহরণ

  1. লগিং স্তরটি LOG4 এ সেট করুন ।

    # DROP everything and Log it
    iptables -A INPUT -j LOG --log-level 4
    iptables -A INPUT -j DROP
    
  2. syslog.confএই বার্তাগুলি একটি পৃথক ফাইলে লেখার জন্য কনফিগার করুন।

    # /etc/syslog.conf
    kern.warning     /var/log/iptables.log
    
  3. সিসলগড পুনরায় আরম্ভ করুন।

    Debian / Ubuntu-

    $ sudo /etc/init.d/sysklogd restart
    

    ফেডোরা / সেন্টওএস / rhel

    $ sudo /etc/init.d/syslog restart
    

দ্রষ্টব্য: লগিংয়ের এই পদ্ধতিটিকে স্থির অগ্রাধিকার বলা হয়। তারা হয় সংখ্যা বা নাম (1,2,3,4, ..) বা (ডিইবিইউজি, ওয়ার্ন, ইনফো) ইত্যাদি।

নিম্নলিখিত rsyslog

যদি সুযোগটি ব্যবহার করে থাকেন তবে rsyslogআপনি এর মতো একটি সম্পত্তি ভিত্তিক ফিল্টার তৈরি করতে পারেন:

# /etc/rsyslog.conf
:msg, contains, "NETFILTER"       /var/log/iptables.log
:msg, contains, "NETFILTER"     ~

তারপরে আপনার iptables নিয়মে আপনি লগ করতে চান তা যুক্ত করুন:

–log-prefix NETFILTER

বিকল্প হিসাবে আপনি এই ধরণের সম্পত্তি ফিল্টার ব্যবহার করে বার্তাগুলি লগ করতে পারেন:

:msg, startswith, "iptables: " -/var/log/iptables.log
& ~
:msg, regex, "^\[ *[0-9]*\.[0-9]*\] iptables: " -/var/log/iptables.log
& ~

দ্রষ্টব্য: এই ২ য় পদ্ধতিতে কোনও পরিবর্তন দরকার নেই iptables

তথ্যসূত্র


এক্ষেত্রে ইনফরমেশনটি সেভ করা হবে /var/log/iptablesএবং এর মধ্যেও থাকবে /var/log/messages। আমি এই তথ্য থেকে কেবল একটি অনুলিপি চাইiptables.log
আবিদ

1
আমি আবিদের প্রশ্ন, এবং অনুপস্থিত লোগ্রোটেট কনফিগার কভার করার জন্য আমার নিজের উত্তর যুক্ত করেছি। "স্টপ" বা "& ~" বার্তাগুলিকে / var / লগ / বার্তাগুলিতেও পেতে আরএসস্লগের নিয়মাবলী অব্যাহত রাখতে বাধা দেয়।
পিটার

6

এটি ধরে নেয় আপনার ফায়ারওয়াল ইতিমধ্যে লগ তৈরি করেছে, যেমন কোনও বুদ্ধিমান ফায়ারওয়াল উচিত। কিছু উদাহরণের জন্য এটির জন্য একটি সনাক্তকারী বার্তা প্রয়োজন যেমন স্ল্যামের উদাহরণে "নেটফিল্টার"।

rsyslog.d এ একটি ফাইল তৈরি করুন

vim /etc/rsyslog.d/10-firewall.conf

এটি সেন্টোস in-এ কাজ করে I আমি এবং আউট খুঁজে না পেয়ে এটি ফায়ারওয়াল থেকে এসেছিল কিনা তা যাচাই করতে জানি না ... সেন্টোস অদ্ভুত। পরবর্তী সংস্করণটি কাজ না করে এটি ব্যবহার করবেন না।

# into separate file and stop their further processing
if  ($msg contains 'IN=' and $msg contains 'OUT=') \
then {
    -/var/log/firewall
    & ~
}

এটি CentOS 7 এ কাজ করে এবং বার্তার সামগ্রীগুলিও পরীক্ষা করে (আপনার-জে LOG নিয়মের বার্তায় যা আছে তার সাথে "শোরওয়াল" প্রতিস্থাপন করুন):

# into separate file and stop their further processing
if  ($msg contains 'Shorewall') and \
    ($msg contains 'IN=' and $msg contains 'OUT=') \
then {
    -/var/log/firewall
    & ~
}

এটি অন্যদের মধ্যে কাজ করে (উবুন্টু, দেবিয়ান, ওপেনসুস)। এবং এটি এটি করার সেরা উপায়। বার্তায় স্ট্রিংগুলির জন্য অনুসন্ধান করা হচ্ছে না:

# into separate file and stop their further processing
if  ($syslogfacility-text == 'kern') and \\
($msg contains 'IN=' and $msg contains 'OUT=') \\
then    -/var/log/firewall
    &   ~

এবং এখানে একটি ডিফল্ট ওপেনসুএস মেশিনটি রয়েছে (যা আমি মনে করি প্রতিটি ডিস্ট্রো থাকা উচিত এবং অনুপস্থিত) (পার্থক্যটি "& ~" এর পরিবর্তে কেবল "স্টপ" বলে মনে হয়; সমস্ত সিস্টেম উভয় বাক্য গঠন সমর্থন করে না):

if  ($syslogfacility-text == 'kern') and \
    ($msg contains 'IN=' and $msg contains 'OUT=') \
then {
    -/var/log/firewall
    stop
}

এবং উপরের সমস্তটির জন্য, লোগ্রোটেট.ডি ফাইলটিও ভুলে যাবেন না:

vim /etc/logrotate.d/firewall

ধারণকারী:

/var/log/firewall {
    rotate 7
    size 500k
    postrotate
        # before using this, run the command yourself to make sure 
        # it is right... the daemon name may vary
        /usr/bin/killall -HUP rsyslogd
    endscript
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.