بسم الله ارحمن الرحيم إذ كنت مضجرا من رؤية ملف /var/log/messages ممتلئا من الرسائل المرسلة من قبل الـجدار الناري apf فيوجد حل بإنشاء ملف لوغ منفصل من أجل TCP/UDP OUTPUT and drops وهذا سيحعل ملف لوغ الرسائل غير ممتلئ كثيرا وسهل التصفح المتلطلبات: ----- اصدار جادر ناري APF Firewall 0.9.3 او أعلى كما انه يمكن أن يعمل على إصدار أدنى لكن ذلك لم يجرب لمعرفة إذا كان يعمل أم لا تغيير إعدادات الـ APF Firewall ------------------------ 1- قم بالدخول إلى السيرفر كرووت 2- انشئ ملف لوغ جديد فقط من أجل the TCP/UDP output/drops from APF كود PHP:
touch /var/log/iptables
3- قم بتغيير السماحيات من أجل تقييد النفاذ: كود PHP:
chmod 600 /var/log/iptables
4- يجب علينا القيام بعمل باك لملف الـ syslog من أجل الأمان في حال قمنا باي خطأ عبر التلعليمة: كود PHP:
cp /etc/syslog.conf /etc/syslog.conf.bak
5- تغيير الـ syslog ليجبر الـ iptables ليستخدم ملف اللوغ الجديد: كود PHP:
pico /etc/syslog.conf
6- أضف ما يلي في نهاية الملف: كود PHP:
# Send iptables LOGDROPs to /var/log/iptables
kern.=debug /var/log/iptables
- احفظ التغييرات ctrl + X then Y 8- اعد تشغيل خدمة syslogd لتنفيذ التعديلات الجديدة : كود PHP:
/sbin/service syslog reload
9- عمل نسخة احتياطية للـ أ.ب.اف: كود PHP:
cp /etc/apf/firewall /etc/apf/firewall.bak
10- فتح الـ أ.ب.ف وعمل تعديلات عليه: كود PHP:
pico /etc/apf/firewall
11- قم بالبحث عن DROP_LOG ستجد المقطع التالي كود PHP:
if [ "$DROP_LOG" == "1" ]; then
# Default TCP/UDP INPUT log chain
$IPT -A INPUT -p tcp -m limit --limit $LRATE/minute -i $IF -j LOG --log-prefix "** IN_TCP DROP ** "
$IPT -A INPUT -p udp -m limit --limit $LRATE/minute -i $IF -j LOG --log-prefix "** IN_UDP DROP ** "
قم بتبديله بالتالي: كود PHP:
if [ "$DROP_LOG" == "1" ]; then
# Default TCP/UDP INPUT log chain
$IPT -A INPUT -p tcp -m limit --limit $LRATE/minute -i $IF -j LOG --log-level debug
$IPT -A INPUT -p udp -m limit --limit $LRATE/minute -i $IF -j LOG --log-level debug
12- ابحث عن DROP_LOG أكثر من مرة حتى تجد المقطع التالي: كود PHP:
if [ "$DROP_LOG" == "1" ] && [ "$EGF" == "1" ]; then
# Default TCP/UDP OUTPUT log chain
$IPT -A OUTPUT -p tcp -m limit --limit $LRATE/minute -o $IF -j LOG --log-prefix "** OUT_TCP DROP ** "
$IPT -A OUTPUT -p udp -m limit --limit $LRATE/minute -o $IF -j LOG --log-prefix "** OUT_UDP DROP ** "
قم بتبديله إلى كود PHP:
if [ "$DROP_LOG" == "1" ] && [ "$EGF" == "1" ]; then
# Default TCP/UDP OUTPUT log chain
$IPT -A OUTPUT -p tcp -m limit --limit $LRATE/minute -o $IF -j LOG --log-level debug
$IPT -A OUTPUT -p udp -m limit --limit $LRATE/minute -o $IF -j LOG --log-level debug
- احفظ التغييرات على الجدار الناري: Ctrl + X then Y 14- أعد تشغيل الـجدار الناري لتنفيذ التعليماتت الجديدة عبر الأمر: كود PHP:
/etc/apf/apf –r
15- نفذ الأمر للتأكد من أن ملف اللوغ الجديد يستقبل الرسائل: كود PHP:
tail –f /var/log/iptables
كود PHP:
Aug 27 15:48:31 fox kernel: IN=eth0 OUT= MAC=00:0d:61:37:76:84:00:d0:02:06:08:00:08:00 SRC=192.168.1.1 DST=192.168.1.1 LEN=34 TOS=0x00 PREC=0x00 TTL=118 ID=57369 PROTO=UDP SPT=4593 DPT=28000 LEN=14
كذلك يمكن فحص ملف اللوغ الأساسي بانه لا يتسقبل معلومات من الجدار الناري عبر الأمر كود PHP:
tail –f /var/log/messages
لمزيد من المعلومات يمكن الإطلاع على الرابط http://www.rfxnetworks.com/apf.php مدة التطبيق واعداد الشرح .. 4 ساعات ونصف اخوكم
علي
أرجو التقييم