
هذا جدار ناري مصغر يعزل الجهاز الهدف تمامًا عن الشبكة المحلية.
هذا جدار ناري مصغر يعزل جهازًا مستهدفًا تمامًا عن الشبكة المحلية. هذا للسماح للأجهزة المصابة بالوصول إلى الإنترنت، ولكن دون تعريض الشبكة المحلية للخطر.
يعتمد هذا المشروع على libpcap، وبالطبع مترجم C.
على نظام Debian، يجب أن يعمل ما يلي:
# apt-get install git gcc make libpcap-dev
# git clone https://github.com/robertdavidgraham/isowall
# cd isowall
# make
سيؤدي هذا إلى وضع الملف الثنائي isowall في الدليل المحلي isowall/bin.
يجب أن يعمل هذا أيضًا على Windows وMac OS X و xBSD وأي نظام تشغيل يدعم libpcap.
أولاً، قم بإعداد جهاز بثلاث واجهات شبكة.
سيتم تكوين واجهة الشبكة الأولى (مثل eth0) بشكل طبيعي، مع حزمة TCP/IP، حتى تتمكن من الاتصال بها عبر SSH.
يجب ألا تحتوي واجهتا الشبكة الأخريان على أي حزمة TCP/IP، ولا عنوان IP، ولا شيء. هذه هي أهم خطوة في التكوين، وهي أكثر شيء قد تخطئ فيه. على سبيل المثال، قد يتم تكوين برنامج DHCP على الجهاز لإرسال طلبات DHCP تلقائيًا على هذه الواجهات الإضافية. يجب عليك إصلاح ذلك بحيث لا يكون هناك شيء مرتبط بهذه الواجهات.
لتشغيله، اكتب ببساطة:
# ./bin/isowall --internal eth1 --external eth2 -c xxxx.conf
حيث يحتوي xxxx.conf على تكوينك، والذي تم وصفه أدناه.
يوضح ما يلي ملف تكوين نموذجي
internal = eth1
internal.target.ip = 10.0.0.129
internal.target.mac = 02:60:8c:37:87:f3
external = eth2
external.router.ip = 10.0.0.1
external.router.mac = 66:55:44:33:22:11
allow = 0.0.0.0/0
block = 192.168.0.0/16
block = 10.0.0.0/8
block = 224.0.0.0-255.255.255.255
الجهاز المستهدف الذي نعزله له عنوان IP وعنوان MAC المشار إليهما.
يتم تمرير حزم IPv4 و ARP فقط.
يجب أن تستوفي الحزم الصادرة الشروط التالية:
internal.target.macexternal.router.macinternal.target.ipallow، ولكن ليس ضمن نطاق blockexternal.router.ipيجب أن تستوفي الحزم الواردة الشروط التالية:
internal.target.macexternal.router.macinternal.target.ipallow، ولكن ليس ضمن نطاق blockexternal.router.ipلا يوجد ضمان بالطبع، لكن هذا البرنامج يتمتع بأمان جيد جدًا.
يعتمد الأمان على حقيقة أنه لا توجد حزمة IP مرتبطة بالمهايئات. ما يعنيه هذا هو أن الجهاز المصاب المستهدف لا يمكنه لمس جهاز جدار الحماية بأي شكل، باستثناء ما هو مسموح به داخل دالة is_allowed(). تمثل هذه الدالة الجزء الأكبر من سطح الهجوم لجهاز جدار الحماية. وكما يمكنك أن تعرف من قراءة الدالة، فهي لا تحتوي تقريبًا على أي وظائف، مما يعني أن سطح الهجوم صغير جدًا بالفعل.
هناك بعض الهجمات النظرية التي قد تحدث على الطبقة المادية، لكن في الغالب، لا داعي للقلق بشأنها.