
ويندوز سيرفر للمحترفين #10: IIS، خادم الويب والمصادقة والتشفير
Murtaja
🧭 قبل أن نبدأ
في الحلقة السابقة استعرضنا خوادم التطبيقات، ووعدنا بأن نخصص حلقة كاملة لخوادم الويب. هذه هي الحلقة: الفصل العاشر: خدمات معلومات الإنترنت (IIS). سنتعرف على مفهوم خدمات الويب، وتثبيت IIS وإعداده، وخادم FTP، والمواقع والمنافذ، ثم أهم قسم في الفصل: أمان خادم الويب بالمصادقة والتشفير.
🌍 الفصل العاشر: خدمات معلومات الإنترنت (Internet Information Services)
🕸️ ما هي خدمة الويب؟
تعرّف W3C خدمة الويب بأنها نظام برمجي يوفّر طريقة قياسية للتشغيل البيني بين تطبيقات مختلفة على منصات مختلفة. وحتى الموقع الإلكتروني العادي خدمة ويب بسيطة. خصائصها:
- التشغيل البيني (Interoperability): أجهزة ومنصات مختلفة تتواصل عبر معايير مشتركة مثل HTTP وXML.
- القابلية للتوسع (Extensibility): وحدات إضافية، وتكامل مع خدمات أخرى (مثل RSS)، ودعم أطر مثل ASP وPHP وASP.NET.
- الترابط الضعيف (Loose Coupling): كل مكوّن لا يعرف التفاصيل الداخلية للآخر. تطبيق الويب لا يهمه كيف تجلب قاعدة البيانات البيانات، بل يهمه أن تصله.
ومن أمثلتها SOAP: مواصفة مبنية على XML لتتواصل خدمات الويب فيما بينها برسائل أحادية الاتجاه، أو طلب واستجابة، أو محادثة ند-لند.
⚙️ كيف يعمل IIS؟
IIS 7.0 يأتي مع Server 2008 وVista، وIIS 7.5 مع 2008 R2 وWindows 7. خادم الويب في جوهره يستجيب لطلبات HTTP للملفات:
العميل → طلب جلسة (TCP منفذ 80) → الخادم
العميل ← قبول الجلسة ← الخادم
العميل → GET (لكل ملف: الصفحة، ثم كل صورة...)
العميل ← الملف، حتى تنزل كل الملفات
فصفحة HTML فيها صورتان تحتاج ثلاثة طلبات GET: الصفحة نفسها، ثم كل صورة. وطريقتا POST وPUT ترسلان البيانات من العميل إلى الخادم. تذكّر أن HTTP يرسل البيانات كنص واضح، وأن SSL هو ما يحوّله إلى HTTPS.
مجموعات التطبيقات (Application Pools): مجموعة من العمليات العاملة (Worker Processes) تشغّل تطبيقات الويب. إذا شغّلت كل موقع في مجموعة مستقلة، فإن فشل مجموعة لا يُسقط إلا مواقعها.
🧱 التثبيت والإعداد
Server Manager > Add Roles > Web Server (IIS) > Install
ثم افتح http://localhost لترى الصفحة الافتراضية
🧯 IE ESC (Enhanced Security Configuration): مفعّل افتراضيًا ويمنعك من تصفح أي موقع خارج منطقة Trusted Sites. يمكن تعطيله من Server Manager، لكنك بذلك تزيد خطر إصابة الخادم ببرمجيات خبيثة.
مكوّنات IIS الأساسية:
- مستمعو البروتوكولات (Protocol Listeners): أهمها
HTTP.sysلـ HTTP وHTTPS. - W3SVC (WWW Publishing Service): يستقبل الطلبات ويعيد الاستجابات.
- WAS (Windows Process Activation Service): يدير مجموعات التطبيقات وعملياتها.
إذا توقف موقع عن الاستجابة: افتح IIS Manager، واختر اسم الخادم، واضغط Restart. يُفضَّل ذلك على services.msc لتجنب مشكلات الإعداد.
دعم ASP وASP.NET غير مثبت افتراضيًا:
Server Manager > Web Server (IIS) > Add Role Services > Application Development (بكل عناصرها)
تطبيقات 32-bit على خادم 64-bit: افتح Application Pools > Advanced Settings واضبط Enable 32-Bit Applications = True.
🧪 تجربة من الميدان
يروي الكاتب أنه شارك في عدة مشاريع IIS 7 و7.5 خُلطت فيها تطبيقات 32 و64 بت على خادم واحد. وحتى مع مجموعات تطبيقات منفصلة لكل نوع، لم يتحقق الاستقرار المطلوب، واضطروا إلى إعادة تشغيل الخدمات تلقائيًا بشكل متكرر. الحل كان فصل التطبيقات على خوادم مختلفة. يوضح الكاتب أنها ليست توصية رسمية من مايكروسوفت، ولا تناسب شركات الاستضافة التي تشغّل مئات المواقع على خادم واحد، لكنها مفيدة للخوادم الداخلية حيث الاستقرار أولوية.
📤 خادم FTP
- ينسخ الملفات بين الأجهزة عبر TCP/IP، ويبدأ الاتصال على المنفذ 21.
- ⚠️ ينقل البيانات كنص واضح افتراضيًا، ويمكن التقاطها بـ محلل بروتوكولات (Protocol Analyzer).
- أوضاع النقل: ASCII للنصوص، وBinary لكل ما عداها. عند الشك استخدم Binary: النص المنقول بـ Binary يبقى سليمًا، لكن الملف الثنائي المنقول بـ ASCII يتلف غالبًا.
خطوات الاتصال:
- العميل يفتح اتصال TCP على المنفذ 21.
- الخادم يرد بأنه جاهز.
- العميل يرسل اسم المستخدم.
- الخادم يقبل أو يطلب كلمة مرور.
- العميل يرسل كلمة المرور، ثم يبدأ طلب الملفات.
الإنشاء:
Add Role Services > FTP Server
IIS Manager > كليك يمين على Sites > Add FTP Site >
الاسم والمجلد → المنفذ 21 → No SSL → Anonymous + All Users (Read/Write)
الاتصال من العميل:
ftp 192.168.10.80
dir
?
عند الدخول كمستخدم مجهول (Anonymous)، العُرف القديم على الإنترنت أن تكتب بريدك الإلكتروني ككلمة مرور.
🔀 المواقع والمنافذ
- منفذ مخصص: كليك يمين على Sites > Add Web Site، واختر منفذًا مثل 8080.
- رؤوس المضيف (Host Headers): تتيح عدة مواقع على نفس IP ونفس المنفذ 80:
- أنشئ سجل Host في DNS، مثل
intranet.training.local. - في Bindings الخاصة بالموقع: المنفذ 80 مع Host name =
intranet.training.local.
- أنشئ سجل Host في DNS، مثل
🔐 أمان خادم الويب
🪪 المصادقة قبل كل شيء
المصادقة (Authentication) إثبات أن الشخص هو من يدّعي. التفويض (Authorization) منح الوصول بعد ذلك. والعلاقة بينهما:
"Authentication must be strong if authorization is to serve its purpose." — "يجب أن تكون المصادقة قوية حتى يؤدي التفويض غرضه."
فإذا أمكن انتحال المصادقة، يصبح التفويض كله بلا معنى.
عوامل المصادقة الثلاثة:
- شيء تعرفه: كلمة مرور أو PIN.
- شيء تملكه: بطاقة ذكية أو مفتاح.
- شيء أنت هو: بصمة أو قزحية.
المصادقة متعددة العوامل (MFA) تجمع أكثر من عامل، مثل بطاقة الصراف الآلي مع رقمها السري. واختر دائمًا حلًا متناسبًا مع قيمة ما تحميه، لا يرهق المستخدمين بتكلفة أكبر من قيمة المعلومات.
📜 لفتة لغوية جميلة
يلاحظ الكاتب أن كلمات Credentials وCredit وCredibility تعود كلها إلى الجذر اللاتيني credo أي "أنا أؤمن":
"Authentication uses credentials, and credentials are used to prove identity so that the system can 'believe' you are who you say you are." — "المصادقة تستخدم بيانات الاعتماد، وبيانات الاعتماد تُستخدم لإثبات الهوية، كي 'يصدّق' النظام أنك من تقول إنك هو."
🔑 أنواع المصادقة الخمسة في IIS
| النوع | متى تستخدمه؟ |
|---|---|
| Anonymous | المواقع العامة |
| Basic | اسم مستخدم وكلمة مرور بترميز Base64 سهل الفك، ومع SSL فقط |
| Digest | مفاتيح سرية لا تُرسل عبر الشبكة بأي شكل |
| Forms | نموذج تسجيل دخول في صفحة ويب، كما في SharePoint وOutlook Web App |
| Windows | حسابات AD عبر NTLM أو Kerberos |
"This is why basic authentication should never be used without an SSL connection." — "ولهذا لا يجب أبدًا استخدام المصادقة الأساسية دون اتصال SSL."
NTLM مقابل Kerberos: فعّل الاثنين معًا؛ سيُستخدم Kerberos إن كان متاحًا، وإلا فـ NTLM. وتذكّر:
"The most important thing to remember is that Kerberos is more secure than NTLM and should be used by internal clients as much as possible." — "أهم ما يجب تذكّره أن Kerberos أكثر أمانًا من NTLM، ويجب أن يستخدمه العملاء الداخليون قدر الإمكان."
ومن التفاصيل الطريفة أن NTLM الأصلي كان فيه خلل يجعل كلمات المرور بين 8 و13 حرفًا أضعف من 7 أو 14 حرفًا. أما مع NTLMv2 فصارت 8 أحرف أقوى من 7.
🔒 التشفير والشهادات
التشفير: تحويل النص الواضح (Plaintext) إلى نص مشفر (Ciphertext) باستخدام خوارزمية ومفتاح. مثال الكاتب المبسّط، بخوارزمية (البيانات ÷ المفتاح) + (3 × المفتاح):
108 ÷ 3 + (3 × 3) = 45
ولا يمكن استرجاع 108 إلا بمعرفة الخوارزمية والمفتاح معًا.
الشهادة: بيان موقّع رقميًا يحتوي معلومات الجهة ومفتاحها العام. ومصادرها:
- PKI داخلية: للمواقع الداخلية، لكن أجهزة مستخدمي الإنترنت لا تثق بها.
- جهة خارجية موثوقة (VeriSign أو Thawte): للمواقع العامة، لأن شهاداتها الجذرية مثبتة مسبقًا في أنظمة التشغيل.
- موقّعة ذاتيًا (Self-signed): سيظهر تحذير أمني لكل من يزور الموقع لأول مرة.
خطوات SSL في IIS Manager:
اسم الخادم > Server Certificates >
Create Self-Signed Certificate | Import | Create Certificate Request
الموقع > Bindings > Add > https + اختر الشهادة
الموقع > SSL Settings > Require SSL ← لفرض الاتصال المشفر
💎 اقتباسات هذا الجزء تستحق التوقف عندها
- "المصادقة القوية شرط لتفويض له معنى.": أمانك بقوة أول باب.
- "لا تستخدم Basic دون SSL أبدًا.": Base64 ترميز وليس تشفيرًا.
- "Kerberos أكثر أمانًا من NTLM.": اختر الأقوى متى كان متاحًا.
- "المصادقة تجعل النظام يصدّقك.": الأمان في جوهره مسألة ثقة.
🎯 خلاصة الجزء
IIS يحوّل Windows Server إلى خادم ويب وتطبيقات وFTP. مجموعات التطبيقات تعزل الأعطال، ورؤوس المضيف تجمع عدة مواقع على منفذ واحد، والمصادقة المناسبة مع SSL وشهادة موثوقة هي ما يحمي كل ذلك.
في الحلقة القادمة نعود إلى أقدم وظيفة للخوادم مع الفصل الحادي عشر: خوادم الملفات والطباعة: صلاحيات المشاركة وNTFS وDFS والطباعة. 🚀