How to make IPtables log to a Separate log file

#~ مقدمة

كنت من فترة أريد أن أكتب عن هذا الموضوع لكني انشغلت كثيرا بأمور أخرى و قد وجدت وقت صغير لأكتب في هذا الموضوع. ألا وهو ,,

كيف أجعل الـ IPtables يسجل الأحداث في ملف منفصل عن الملف ” /var/log/messages ” ؟

يجب أن نعرف أولا أن الكيرنال يسجل الأحداث بناء على مستوى أهميتها أو تصنيفها بمعنى أصح, حيث هناك 7 تصنيفات كل تصنيف يحتل مستوى خاص به بناء على أهميته و الأهمية تنقص تصاعديا أي الرقم الأكبر هو الأقل أهمية
كالتالي

Level Keyword
1 alert
2 crit
3 error
4 warnings
5 notice
6 info
7 debug

لمذا نحتاج معرف ما سبق ؟ لأننا في شبكاتنا الكبيرة قد نحتاج أن نصنف سجلات الجدار الناري فمثلا هجمات تخمين كلمات المرور نعطيها “alert”, والبيناتا الذاهبة للشبكة الداخلية مباشرة نعطيها “notic”, والاتصالات الغير آمنة نعطيها التصنيف “crit”. طبعا أنا أقول مثلا للتوضيح

#~ الخطوات

1. أنشئ مجلد خاص بالـ iptables في مجلد الـ Logs

mkdir /var/log/iptables

أنشئ ملفات فارغة للمستويات التي تريدها و تستطيع أن تشئ ملفات لجميع المستويات لكي تستعملها مستقبلا إن أردت

touch /var/log/iptables/iptables.{debug,info,notice,warning,error,crit,alert}

2. نذهب إلى الملف الأساسي المسؤل عن السجلات في النظام

vim /etc/syslog.conf

و نضع إعدادات الفايروول بناء على المستويات اللتي نريدها للجدار الناري, وستكون بالشكل التالي

#–> IPtables’s Log Files
kern.LevelName /var/log/iptables/iptables.LevelName

مثال توضيحي

kern.debug /var/log/iptables/iptables.debug

تستطيع أن تضع أكثر من مستوى ولا يشترط الترتيب ولكني أفضله

kern.info /var/log/iptables/iptables.info
kern.error /var/log/iptables/iptables.error
kern.crit /var/log/iptables/iptables.crit
kern.alert /var/log/iptables/iptables.alert

و احفظ الإعدادات و أغلق الملف
أعد تشغيل الخدمة

service syslog restart

هكذا انتهينا من إعداد ملفات الـ Log.
حسناً!! كيف نستطيع أن نسجل الأحداث الأن عن طريق الـ iptables ؟
سيكون شكل القاعدة الأساسي هكذا

iptables -A INPUT -p icmp -j LOG --log-level Name/Number

طبعا ما يهمنا في الأمر السابق هو
-j LOG –log-level
تستطيع وضع بعدها اسم المستوى أو رقمه و الأسماء و أرقامها ذركناها آنفا
ملاحظة: هذا الأمر تستطيع إدراجه كيفما وافقك ولا يشترط هذا البروتوكول أو أو غيره أيضا لا يشترط أن يكون مع الـ INPUT فقط , لا بل مع ما أردت
مثال

iptables -A INPUT -p icmp -j LOG --log-level 4
iptables -A OUTPUT -p icmp -j LOG --log-level info

أظنك فهمت المقصد

لو عرضنا مثلا ملف الـ iptables.warning

tail -t /var/log/iptables/iptables.warning

نجد المخرجات مثل التالي

Sep 26 17:27:50 server1 last message repeated 3 times
Sep 26 17:27:51 server1 kernel: ICMPIN=eth0 OUT= MAC=00:21:5a:51:e6:18:00:0f:b0:c7:f1:6f:08:00 SRC=192.168.40.176 DST=192.168.40.2 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=56334 SEQ=63

ملاحظة: افترضت في شرحي أنك مُلم بسأساسيات الـ iptables

تحياتي و احترامي

3 آراء على “How to make IPtables log to a Separate log file

  1. سلام عليكم يا حبيبي الغالي
    كيفك يا د .. تونس اتصل عليك ليه بقى ؟!
    ها هو مش خلاص … خش على الميل
    وضيف مدونتي عندك ياد أحسن لك

  2. أبوحميد ,, نورتني يا مان

    التخاطر عامل عمايلة معانا و الله لرجة غريبه 😀

    المدونه أضفتها من زمان يا صديقي و الروابط إللي في الواجهة سيتم إزالتها لكن مشغول ببعض الأمور

     

    نورتني يا صديقي

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *