انتقل إلى المحتوى الرئيسي

TP 5 – مختبر: SSH، HTTP وجدار الحماية

عناصر التصحيح

تتوفر عناصر التصحيح لهذا المختبر في مستودع التمارين: 👉 module-17 – التصحيحات

وحدة إضافية: فهم بطاقات الشبكة في VirtualBox وVMware

يستخدم هذا المختبر حتى 3 بطاقات شبكة لكل جهاز افتراضي. للحصول على شرح مفصل لأنواع البطاقات (NAT، Internal Network، Host-Only، Bridged) وما يعادلها في VMware، راجع: 👉 Module 15 - وحدة إضافية: بطاقات الشبكة في VirtualBox مقابل VMware

العمل في فريق من اثنين

الاسم
الطالب 1........................
الطالب 2........................

الأهداف​

يهدف هذا المختبر إلى تطبيق المعرفة المكتسبة حول البروتوكولات والخدمات التي تمت دراستها حتى الآن (SSH، HTTP، جدار الحماية) في بيئة لينكس.


البيئة المطلوبة​

المشرف​

  • VirtualBox (أو VMware Workstation / VMware Player)

الأجهزة الافتراضية التي يجب إنشاؤها​

الجهازنظام التشغيلRAMالقرصCPUواجهات الشبكة
srvGatewayUbuntu Server 24.04 LTS (أو 22.04 LTS)1 جيجابايت كحد أدنى20 جيجابايت1 vCPU3 واجهات: NAT + شبكة داخلية lan + شبكة داخلية clientnet
srvSSHUbuntu Server 24.04 LTS (أو 22.04 LTS)1 جيجابايت كحد أدنى20 جيجابايت1 vCPU1 واجهة: شبكة داخلية lan
srvWEBUbuntu Server 24.04 LTS (أو 22.04 LTS)1 جيجابايت كحد أدنى20 جيجابايت1 vCPU1 واجهة: شبكة داخلية lan
ClientUbuntu Server 24.04 LTS (أو 22.04 LTS)1 جيجابايت كحد أدنى20 جيجابايت1 vCPU1 واجهة: شبكة داخلية clientnet
إعداد الشبكة في VirtualBox
  • srvGateway يحتاج إلى 3 بطاقات شبكة:
    • Adapter 1: NAT (وصول إلى الإنترنت)
    • Adapter 2: Internal Network → lan (شبكة LAN 10.11.12.0/24)
    • Adapter 3: Internal Network → clientnet (شبكة العميل 20.21.22.0/30)
  • srvSSH و srvWEB: Internal Network → lan
  • Client: Internal Network → clientnet

البرامج المطلوبة على الأجهزة الافتراضية​

الجهازالبرامج التي يجب تثبيتها
srvGatewayiptables, net-tools
srvSSHopenssh-server
srvWEBapache2, openssl, certbot (اختياري)
Clientopenssh-client, curl, wget
مهم

يجب تفعيل توجيه IP (ip_forward) على srvGateway لكي يتدفق المرور بين الشبكات. يجب أن تكون الأجهزة الأخرى (srvSSH, srvWEB, Client) لديها srvGateway كبوابة افتراضية.


طوبولوجيا الشبكة​

وصف الأجهزة​

الجهازالدورالواجهة(ات)
srvGatewayالتوجيه والبوابة إلى الإنترنتواجهة 1: NAT (الإنترنت)
واجهة 2: 10.11.12.1/24 (LAN)
واجهة 3: 20.21.22.1/30 (العميل)
srvWEBخادم ويب Apache10.11.12.150/24
srvSSHخادم SSH10.11.12.100/24
Clientجهاز عميل20.21.22.2/30

الاتصال المتوقع​

  • srvGateway لديه وصول إلى الإنترنت
  • يمكن للعميل، srvWEB و srvSSH الوصول إلى الإنترنت عبر srvGateway
  • مرور SSH، HTTP و HTTPS مسموح على srvGateway
مهم

عدم الالتزام بالطوبولوجيا أو تقديم لقطات شاشة لا تتوافق مع التعليمات سيؤدي إلى خصم نقاط.


الجزء 1 – إعداد التوجيه ومشاركة الاتصال (40 نقطة)​

1.1 – إعداد العناوين IP الثابتة​

قم بإعداد العناوين IP الثابتة على كل من الأجهزة الأربعة وفقًا للطوبولوجيا.

قم بالتقاط صورة للواجهات لكل جهاز.

1.2 – تفعيل التوجيه الدائم على srvGateway​

قم بتفعيل التوجيه (IP forwarding) بشكل دائم على srvGateway.

أدرج لقطة شاشة لتفعيل التوجيه الدائم.

1.3 – إعداد مشاركة الاتصال بالإنترنت على srvGateway​

أضف قواعد iptables لـ:

a) السماح بالمرور الصادر من LAN، الذي يتم تمريره عبر srvGateway​

لقطة مطلوبة.

b) السماح فقط بمرور SSH، HTTP، HTTPS و ICMP للأجهزة الأخرى​

لقطة مطلوبة.

c) تفعيل MASQUERADE​

لقطة مطلوبة.

d) اختبار الاتصال بالإنترنت​

اختبر الاتصال بالإنترنت من العميل، srvSSH و srvWEB.

لقطة مطلوبة.


الجزء 2 – إعداد الخدمات (40 نقطة)​

2.1 – إعداد خادم ويب Apache على srvWEB​

a) إنشاء مضيفين افتراضيين​

قم بإنشاء مضيفين افتراضيين على srvWEB:

المضيف الافتراضياسم النطاق
الموقع 1www.test.local
الموقع 2www.labo.local

لقطة مطلوبة.

b) صفحات HTML بأسماء الطلاب​

أدرج صفحات HTML بأسماء طلاب الفريق.

لقطة مطلوبة.

c) ملفات التكوين والصفحات الويب​

أدرج لقطات شاشة لملفات التكوين والصفحات الويب المعروضة.

2.2 – إعداد الوصول الآمن عبر HTTPS​

a) تثبيت شهادات SSL​

قم بتثبيت شهادات SSL للمضيفين الافتراضيين.

المضيفون الافتراضيون المعنيون:

لقطة مطلوبة: الشهادات والصفحات HTTPS.

2.3 – تقييد الوصول إلى srvWEB من العميل​

a) حظر الوصول من 20.21.22.2​

قم بتعديل التكوين لـ حظر العنوان 20.21.22.2.

لقطة مطلوبة.

b) اختبار باستخدام curl​

اختبر باستخدام curl وأدرج لقطة شاشة لرفض الوصول.


الجزء 3 – إعداد الوصول عن بعد (20 نقطة)​

3.1 – إعداد خادم SSH على srvSSH​

a) إنشاء المستخدم bob​

قم بإنشاء مستخدم bob مع /home/bob و /bin/bash.

اللقطات المطلوبة:

  • مخرجات ss -tan
  • مخرجات tail /etc/passwd

3.2 – إعداد إعادة توجيه SSH محلية (نفق)​

استخدم نفق SSH لكي يتمكن العميل من الوصول إلى www.labo.local عبر srvSSH.

مبدأ نفق SSH:

اللقطات المطلوبة:

  • أمر نفق SSH
  • الوصول الناجح إلى www.labo.local من العميل عبر النفق

ملخص الطوبولوجيا والتدفقات​


جدول التقييم​

الجزءالمعاييرالنقاط
الجزء 1إعداد التوجيه ومشاركة الاتصال40
إعداد العناوين IP الثابتة + لقطات10
تفعيل التوجيه الدائم5
قواعد iptables (SSH، HTTP، HTTPS، ICMP)10
MASQUERADE5
اختبارات الاتصال بالإنترنت (العميل، srvSSH، srvWEB)10
الجزء 2إعداد الخدمات40
مضيفين افتراضيين Apache (www.test.local، www.labo.local)10
صفحات HTML بأسماء الطلاب5
ملفات التكوين + الصفحات المعروضة5
شهادات SSL وHTTPS10
تقييد الوصول (حظر 20.21.22.2)5
اختبار curl + لقطة لرفض الوصول5
الجزء 3إعداد الوصول عن بعد20
المستخدم bob + لقطات (ss -tan، /etc/passwd)10
نفق SSH + الوصول إلى www.labo.local10
المجموع100

تم إنشاء المختبر في: فبراير 2025


وحدة إضافية – فهم المصافحة TLS (مبسطة)​

الهدف هنا هو شرح، بكلمات بسيطة جدًا، ما يحدث عندما تكتب عنوانًا في HTTPS.

وحدة إضافية (نسخة "وحدة")

نسخة "وحدة إضافية" (خارج هذا المختبر) متاحة هنا: Module 15 – وحدة إضافية: مصافحة TLS (مبسطة).

1) قبل TLS: "المصافحة" TCP (SYN / SYN‑ACK / ACK)​

قبل الحديث عن التشفير (TLS)، يجب أولاً إنشاء الاتصال الشبكي. بالنسبة لـ HTTPS، يكون عادةً TCP على المنفذ 443.

يستخدم TCP مصافحة في 3 رسائل:

  • SYN: «مرحبًا، أريد التحدث إليك، هل أنت هنا؟»
  • SYN‑ACK: «نعم، أنا هنا، وقد استلمت SYN الخاص بك. هل تسمعني؟»
  • ACK: «نعم، أسمعك، لقد استلمت رسالتك. يمكننا البدء.»
ما هو "ACK"؟

ACK = إقرار بالاستلام (يعني فقط: «لقد استلمت»).

👉 مهم: هذه المصافحة TCP لا تشفر أي شيء. إنها فقط لتقول: «الاتصال جاهز».


2) بعد ذلك: المصافحة TLS (لتأمين المحادثة)​

بمجرد إنشاء TCP، نبدأ TLS (الذي يجعل HTTP → HTTPS).

فكر في TLS كـ: الاتفاق على قفل، التحقق من هوية الخادم، ثم التحدث بلغة سرية.

إليك الفكرة العامة (دون الدخول في التفاصيل التشفيرية):

  • ClientHello (العميل → الخادم):
    • «مرحبًا، يمكنني استخدام TLS، إليك الإصدارات والخوارزميات التي أدعمها.»
  • ServerHello (الخادم → العميل):
    • «حسنًا، نختار هذا الإصدار من TLS وهذه الخوارزميات.»
    • يرسل الخادم أيضًا شهادته (بطاقة هويته).
  • التحقق من الشهادة (جانب العميل):
    • يتحقق العميل من أن الشهادة صالحة، تتوافق مع اسم الموقع، وموقعة من سلطة معروفة (أو مقبولة يدويًا إذا كانت موقعة ذاتيًا).
  • إنشاء سر مشترك:
    • يقوم العميل والخادم بإعداد مفاتيح للتشفير (غالبًا عبر تبادل مفاتيح نوع Diffie‑Hellman).
    • من هناك، يمكنهم إنشاء مفاتيح جلسة.
  • Finished (من كلا الجانبين):
    • يرسلون رسالة أخيرة لتأكيد: «لدينا نفس المفاتيح، نحن جاهزون».

✅ بعد ذلك، كل ما يلي مشفر: عناوين URL كاملة، محتويات، كلمات مرور، ملفات تعريف الارتباط، إلخ.


3) ملخص صغير "في جملة واحدة"​

  • TCP (SYN/SYN‑ACK/ACK): نفتح الباب (الاتصال)
  • TLS (ClientHello… Finished): نضع قفلًا ونتحقق من الهوية (الأمان)
  • HTTP/HTTPS: هذا ما نقوله بمجرد فتح الباب ووضع القفل
نصيحة Wireshark (ما يجب أن تلاحظه)
  • في HTTP، سترى المحتوى (غالبًا قابل للقراءة).
  • في HTTPS، سترى بشكل أساسي المصافحة TLS ثم حزم مشفرة (محتوى غير قابل للقراءة).