طريقة فلترة حزم ARP من خلال arptables

قبل فترة كتب لنا الأخ ماجد عن عملية سرقة الإتصال من خلال سرقة المنافذ أو ما يسمى Port Stealing في موضوعه هنا

ذكر أخونا ماجد في موضوعه الـ Static ARP فقلت لما لا نشرح كيفية عملها في جنو/لينوكس ؟ :)

موضوعي هذا هو مجرد شرح لكيفية عملية تثبيت الـ ARP من خلال إستعمال ARPTables …

تعريف: arptables
هي الأداة التي من خلالها يتم التحكم بعملية فلترة حزم الـ ARP

إستعمالها بسيط جداً وليست صعبة … حيث يوجد لها جداول مثل جداول iptables تقريبا والتي هي:

IN
OUT
FORWARD

من أسمائها نعرف ما هي أهدافها … على كل حال لنقوم بعمل مثال يوضح كل شيء … لنفرض إننا نريد من جهازنا أن يتخاطب مع الـ Gateway فقط، وكان الـ Gateway له المعلومات التالية:

IP address: 10.0.0.1
MAC address: 00:AA:AA:AA:AA:AA


الآن لنقوم بكتابة الأوامر التي تمنع باقي الإتصالات وتسمح لهذا الجهاز بالتواصل معنا …

نقوم أول شيء بإعداد السياسة العامة لكل جدول وذلك من خلال:

arptables -P IN DROP
arptables -P OUT DROP
arptables -P FORWARD DROP

الآن لنقوم بعمل الإعدادات التي تسمح بمرور حزم القادمة من Gateway ومتجة الى جهازنا …

arptables -A IN -s 10.0.0.1 --source-hw 00:BB:BB:BB:BB:BB -j ACCEPT
arptables -A OUT -d 10.0.0.1 --target-hw 00:BB:BB:BB:BB:BB -j ACCEPT

وبعد ذلك لنقوم بتثبيت الـ MAC address الخاص بجهاز الـ Gateway:

arp -s 10.0.0.1 00:AA:AA:AA:AA:AA

الآن لكي تحتفظ بهذه الإعدادات، كلما عليك فعله هو:

arptables-save > /etc/sysconfig/arptables

بعد ذلك قم بتثبيت عمل arptables_jf لتعمل بشكل تلقائي بعد إعادة الإقلاع … أكيد عارفين الطريقة ؟ :)

السكربت النهائي هو:

arptables -P IN DROP
arptables -P OUT DROP
arptables -P FORWARD DROP
arptables -A IN -s 10.0.0.1 --source-hw 00:BB:BB:BB:BB:BB -j ACCEPT
arptables -A OUT -d 10.0.0.1 --target-hw 00:BB:BB:BB:BB:BB -j ACCEPT
arp -s 10.0.0.1 00:AA:AA:AA:AA:AA

تريد تضيف آخرين ؟ الأمر اصبح بسيط … كل ما عليك فعله هو إضافتهم بنفس الطريقة التي عملناها في الأعلى … أو أحب الطريقة المباشرة، وهي تحرير ملف الإعدادات الذي قمنا بحفظه:

# Generated by arptables-save version on date
*filter
:IN DROP [0:0]
:OUT DROP [0:0]
:FORWARD DROP [0:0]
-A IN -s 10.0.0.1 -z 00:AA:AA:AA:AA:AA -j ACCEPT 
-A IN -s 10.0.0.175 -z 00:BB:BB:BB:BB:BB -j ACCEPT 
-A OUT -d 10.0.0.1 -y 00:AA:AA:AA:AA:AA -j ACCEPT 
-A OUT -d 10.0.0.175 -y 00:BB:BB:BB:BB:BB -j ACCEPT 
COMMIT
# Completed on date

هذا على إعتبار إني قمت بإضافة الجهاز 10.0.0.175 صاحب الـ MAC Address التالي 00:BB:BB:BB:BB:BB …

كما رأيتم العملية جداً بسيطة وليست صعبة بتاتاً …

سؤال قبل أن أهرب :)، هل نحتاج الى عمل إعدادات معينة على الجدار الناري iptables ؟ ولماذا ؟

هذا لكم :)

———————
للنقاش، يرجى زيارة الرابط الأصلي هنا