اذهب إلى المحتوى

البحث في الموقع

المحتوى عن 'أمان'.

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المحتوى


التصنيفات

  • الإدارة والقيادة
  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • السلوك التنظيمي في المؤسسات
  • عالم الأعمال
  • التجارة والتجارة الإلكترونية
  • نصائح وإرشادات
  • مقالات ريادة أعمال عامة

التصنيفات

  • مقالات برمجة عامة
  • مقالات برمجة متقدمة
  • PHP
    • Laravel
    • ووردبريس
  • جافاسكربت
    • لغة TypeScript
    • Node.js
    • React
    • Vue.js
    • Angular
    • jQuery
    • Cordova
  • HTML
  • CSS
    • Sass
    • إطار عمل Bootstrap
  • SQL
  • لغة C#‎
    • ‎.NET
    • منصة Xamarin
  • لغة C++‎
  • لغة C
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • لغة Rust
  • برمجة أندرويد
  • لغة R
  • الذكاء الاصطناعي
  • صناعة الألعاب
  • سير العمل
    • Git
  • الأنظمة والأنظمة المدمجة

التصنيفات

  • تصميم تجربة المستخدم UX
  • تصميم واجهة المستخدم UI
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب GIMP
    • كريتا Krita
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • نصائح وإرشادات
  • مقالات تصميم عامة

التصنيفات

  • مقالات DevOps عامة
  • خوادم
    • الويب HTTP
    • البريد الإلكتروني
    • قواعد البيانات
    • DNS
    • Samba
  • الحوسبة السحابية
    • Docker
  • إدارة الإعدادات والنشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
    • ريدهات (Red Hat)
  • خواديم ويندوز
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • شبكات
    • سيسكو (Cisco)

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • استسراع النمو
  • المبيعات
  • تجارب ونصائح
  • مبادئ علم التسويق

التصنيفات

  • مقالات عمل حر عامة
  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • العمل الحر المهني
    • العمل بالترجمة
    • العمل كمساعد افتراضي
    • العمل بكتابة المحتوى

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
    • بريستاشوب
    • أوبن كارت
    • دروبال
  • الترجمة بمساعدة الحاسوب
    • omegaT
    • memoQ
    • Trados
    • Memsource
  • برامج تخطيط موارد المؤسسات ERP
    • تطبيقات أودو odoo
  • أنظمة تشغيل الحواسيب والهواتف
    • ويندوز
    • لينكس
  • مقالات عامة

التصنيفات

  • آخر التحديثات

أسئلة وأجوبة

  • الأقسام
    • أسئلة البرمجة
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات

التصنيفات

  • كتب ريادة الأعمال
  • كتب العمل الحر
  • كتب تسويق ومبيعات
  • كتب برمجة
  • كتب تصميم
  • كتب DevOps

ابحث في

ابحث عن


تاريخ الإنشاء

  • بداية

    نهاية


آخر تحديث

  • بداية

    نهاية


رشح النتائج حسب

تاريخ الانضمام

  • بداية

    نهاية


المجموعة


النبذة الشخصية

تم العثور على 15 نتائج

  1. طُوّرت على مدار تاريخ الإنترنت العديد من الأدوات والطرق للتأكد من حماية المواقع من الاختراق، أو على الأقل جعله مستعدًا لمجابهة ذلك الخطر. أيًا كان مشروعك، متجرًا إلكتروني، أو مدونة عصرية أو حتى موقعًا لإحدى الشركات، تجب مراعاة تدابير الحماية في كل الأوقات. إذا كنت مطور/مصمم ويب، فمهمتك لم تعد تقتصر على بناء صفحات ويب جميلة، بل عليك المحافظة عليها محمية من جميع الجهات التي قد ترغب باختراقك واستغلال موقعك. ستحتاج لإجراء تدابير أمنية لمنع حصول شيء كذلك. هنالك العديد من الطرق لاختراق المواقع، لذلك يجب وضع تدابير حماية متعددة لقطع جميع تلك الطرق. لكن لا وجود لطريقة محددة قادرة على حمايتك بالكامل من المخترقين، أفضل ما يمكنك فعله هو تصعيب المهمة على المخترقين على نحو كافِ لدرجة تجعلهم ييأسون من المحاولة. طرق الاختراق الشائعة كما أسلفنا، هناك العديد من الطرق يستعملها المخترقون لتخطي حماية الموقع بهدف تدميره أو التلاعب به. سنذكر هذه الطرق حتى يمكنك إجراء تدابير وقائية للتصدي لهذه المحاولات. حقن استعلامات SQL لا يمكن إنكار أن حقن استعلامات SQL‏ (SQL Injection) هي إحدى أكثر طرق الاختراق خطرًا على كل من المواقع والأنظمة. على نحو عام، تتضمن هذه الطريقة إدخال استعلامات SQL في حقول الإدخال مثل حقول تسجيل الدخول أو حتى شريط العناوين الخاص بالمتصفح. بفعل ذلك يتمكن المخترق من الوصول لقواعد البيانات الخاصة بالموقع أو النظام. عندما تدخل اسم المستخدم وكلمة السر في حقل تسجيل الدخوليُدرَج النص الذي أدخلته إلى استعلام SQL. ذلك الاستعلام سيفحص البيانات التي أدخلتها ويوازنها بقاعدة بيانات الموقع أو النظام. بمجرد تطابق القيم المدخلة مع المسجلة ستحصل على تصريح دخولك، إذا لم تتطابق فلا يسعك الدخول. حقن قواعد البيانات يحدث عندما يحاول المخترق إدراج استعلامات SQL في حقول الإدخال الخاصة بموقعك. في العادة سيفحص الموقع البيانات المدرجة ويتأكد من صلاحيتها. إذا حدث واحتوت بياناتك مجرد علامة اقتباس (‘) بنهاية بيانات اسم المستخدم قد تفسرها قاعدة البيانات كاستعلام SQL بنَّاء، وهكذا سيُعدُّ استعلامًا صحيحا. قد لا يدخل المخترقون إلى موقعك عن طريق ذلك الاستعلام بالتحديد، لكن هذه الطريقة ستسمح لهم بالوصول إلى اسم قاعدة بياناتك، والجداول وحقول المفاتيح. وبامتلاك هذه البيانات سيحتاجون فقط إلى إدخال استعلام SQL في أحد حقول موقعك، عندها سيتمكنون من رؤية كامل محتويات قاعدة بياناتك. كيف يمكن التصدي لحقن SQL التأكد من إدخال نوع البيانات الصحيح الاستعلام باستخدام الوسائط (Parameters) تحديد الصلاحيات ترشيح IIS موحَّد تفعيل توثيق طلبات الاستعلام فكر باستخدام إطار لربط العلاقات بالكائنات (ORM) هجمات XSS الهجمات بالسكربتات العابرة للمواقع Cross Site Scripting، التي تُعرف اختصارًا بهجمات XSS، هي إحدى أكثر طرق الاختراق التى يصعب التصدي لها. في الأعوام السابقة، واجه كلٌّ من Microsoft، و MySpace، و Google صعوبات كبيرة في التعامل مع تلك الهجمات. تعتمد هجمات XSS على إرفاق سكربتات خبيثة مكتوبة بلغة جافا سكربت بالروابط الداخلية بهدف التحكم بسجلات الجلسات (Sessions) الخاصة بالموقع، أو اختطاف الإعلانات أو سرقة المعلومات الشخصية. لابد أنك تذكر حدوث هذا: قمت بالضغط خطأً على إعلان غريب الشكل، فأرسلك إلى صفحة شبيهة بتطبيقات الدردشة. ثم ترى رسالة من فتاة لطيفة تطلب منك الضغط على رابط ما للدردشة معها. وعند الضغط على الرابط يظهر لك عنوان URL غريب الشكل مثل العنوان التالي: [%63%61%74%69%6f%6e%3d%274%74%70%3a%2f%2f%77%7…] قد تعتقد أن لا شئ قد حدث ولكن لا، أنت مخطئ بالتأكيد. هذه الروابط تساعد على سرقة ملفات تعريف الارتباط (Cookies) والتي بدورها تعين المخترق على سرقة معلوماتك الشخصية. كيف يمكنك التعامل مع برمجيات تخطي المواقع لا تسمح بإدخال بيانات غير موثوقة إلا إذا تطلب الأمر ذلك خلّص (Escape) وسوم HTML عند معالجة البيانات المدخلة للحقول خلّص خصائص العناصر قبل إدراج البيانات على الموقع خلّص نصوص JavaScript من الحقول حتى تتفادى تسلل بيانات غير موثوقة إلى قيم جافاسكريبت. تخطي الاستيثاق كما يوحي الاسم، تخطي الاستيثاق مخيف. يستهدف عادةً التطبيقات أو أنظمة إدارة المحتوى سيّئة التصميم، ويمكن له إحداث فوضى عارمة بموقعك. يحدث الاختراق على نحو مشابه للتالي: البحث وإيجاد صفحة تسجيل دخول ضعيفة الحماية. فتح الشفرات المصدرية للصفحة. نسخ الشفرات إلى محرر نصِّي. حذف تعليمات JavaScript الخاصة بإدارة التصاريح وتعديل رابط أو اثنين. حفظ التغييرات على النص البرمجي. فتح الملف البرمجي الجديد على متصفحك، سجل الدخول كما لو أنك تمتلك الموقع. وهكذا نجح الاختراق! هل موقعك عُرضة لهذا الاختراق؟ هذا يعتمد على إجابة الأسئلة التالية: هل يقوم خادم موقعك بتشغيل العمليات مستعملًا صلاحيات الجذر، أو مدير النظام، أو النظام المحلي أو حسابات إدارية أخرى؟ هل يُمنح موقعك/تطبيقك صلاحيات الوصول لقاعدة البيانات عبر حساب SA (بالنسبة لأوراكل) أو حسابات أخرى مشابهة؟ هل يمتلك تطبيقك القدرة على الوصول لقاعدة البيانات عبر حسابات تمتلك صلاحيات أعلى من المطلوب؟ هل تعمل الحوسبة الافتراضية بخادم موقعك باستعمال كل الصلاحيات أو بثقة كاملة ببيئات عمل J2EE و NET.؟ هل بالإمكان تحديد إمكانية الوصول لموارد موقعك باستعمال قدرات المنصة المستعملة؟ إذا أجبت بنعم ولو على سؤال واحد فموقعك معرَّض للخطر. كيف يمكنك حماية موقعك تطوير الموقع، واختبارات الأداء ومنهجية التطوير يجدر القيام بها باستعمال أقل صلاحيات ممكنة. تأكد من أن الحسابات التى تدير بيئة العمل محدودة الإمكانات بأقصى قدر ممكن. لا يجوز أن يستخدم خادم موقعك صلاحيات مدير النظام، أو صلاحيات الجذر، أو غيرها من الحسابات الحسّاسة. حدّدد صلاحيات حسابات المستخدمين بموقعك على نحو يتناسب مع حاجتهم. لا يجوز أن تحظى حسابات الشركاء بصلاحيات إدارية والعكس صحيح. عليك استخدام حسابات مختلفة لمهام مختلفة. التدابير الشائعة لمنع الاختراق حافظ على الملحقات والبرامج محدَّثة باستمرار لا شيء يسعد المخترق أكثر من برمجية/ملحق منتهي الصلاحية. عادةً هذه هي أهدافهم المفضلة لاحتوائها على أعطال، أو خلل أو ثغرة أمنية. هذا هو السبب الرئيسي لتحديثها أساسا. لنقلها بهذه الطريقة، أنت تستخدم نوعًا ما من أقفال الأبواب تم التحايل عليه ألاف المرات. هل تتوقع أن يواجه اللص التالي مشكلة في التعامل معها؟ لذا استمع لهذه النصيحة، حدّث الآن! استخدم كلمات مرور قوية كم مرة تمت التوصية بهذا؟ من المهم للغاية استعمال كلمات مرور قوية. ربما لا تدرك أن المخترقين يحاولون سرقة كلمات مرورك باستمرار. إذن، كيف ننشىء كلمة مرورفعّالة؟ طريقة التبديل هذه طريقة جيدة للحفاظ على كلمات مرورك آمنة. حسب المبدأ، عليك استبدال الأحرف والأرقام بأحرف خاصة باستخدام طريقتك الشخصية. مثلاً: استعمل رمز '@' عوضًا عن حرف 'a' استعمل رمز '$' عوضًا عن حرف 's' استعمل رمز '%' عوضًا عن المسافات استعمل الرقم '0' عوضًا عن حرف 'o' استعمل رمز '!' عوضًا عن حرف 'i' بهذه الطريقة قمنا بتحويل كلمة سر بسيطة مثل ‘whoisjohngalt’ إلى كلمة أكثر تعقيدًا ‘wh0!$j0hng@lt’. طريقة Business Insider ابتكرت مجلة Business Insider مؤخرًا طريقة لتشكيل كلمة مرور قوية يسهل تذكرها. طبقًا للمجلة عليك إنشاء كلمة مرور طويلة لأنها تجعل الحواسيب تستغرق وقتًا طويلًا لتكتشفها. المبدأ الرئيسي لهذه الطريقة هو إنشاء كلمات مرور طويلة جدًا باستخدام كلمات غير ذات علاقة بك أو ببعضها. استخدم أداة Google Webmaster لدى Google طريقة لمساعدتك في تأمين موقعك. باستعمال أدوات Webmaster ستحظى بتنبيهات في حال العثور على برمجيات خبيثة. في حال اختراقك وعدم قدرتك على إزالة الاختراق، ستساعدك غوغل عن طريق إضافة موقعك للقائمة السوداء مما يمنحك متسعًا من الوقت للتعامل مع البرمجيات الخبيثة بموقعك، أيضًا هذه الخدمة تتيح لك رؤية تفاصيل المشكلة المرصودة. لا تعرض رقم إصدار WordPress بجانب تحديثك لمنصة التدوين، عليك دائمًا منع المخترقين من معرفة أي من إصدارات WordPress تستعمله. فعل ذلك سيمنعهم من استغلال ثغرات الحماية في موقعك. يمكنك فعل ذلك بتعديل ملف functions.php الخاص بموقعك وإضافة التعليمات التالية: function remove_version() { return ''; } add_filter('the_generator', 'remove_version'); تشديد الحماية على ملف htaccess. عادةً، حماية ملف htaccess متساهلة افتراضيًّا، لكن يمكنك تخصيصها لحمايتك من الاختراق عبر التلاعب بعناوين URL، أو حقن قواعد البيانات أوغيرها. هنالك الكثير من الطرق لتعديل ملف htaccess. لكننا سنشير إلى أكثرها جدوى. تذكّردائمًا أخذ نسخ حتياطية من الملف. order allow,deny deny from all أضف الاستعلامات التالية لمنحك مزيدًا من الأمان، علمًا أنه لن يُسمَح بالوصول غير المرغوب فيه، وستمنع زواحف محركات البحث من الوصول إلى ملف wp-admin.php. يمكن تطبيق تعليمات مماثلة على ملفات أخرى مثل install.php و eror_log. RewriteEngine On RewriteBase / RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC]RewriteRule ^(.*)$ - [F,L]RewriteCond %{QUERY_STRING} \.\.\/ [NC,OR]RewriteCond %{QUERY_STRING} boot\.ini [NC,OR]RewriteCond %{QUERY_STRING} tag\= [NC,OR]RewriteCond %{QUERY_STRING} ftp\: [NC,OR]RewriteCond %{QUERY_STRING} http\: [NC,OR]RewriteCond %{QUERY_STRING} https\: [NC,OR]RewriteCond %{QUERY_STRING} (\|%3E) [NC,OR]RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [NC,OR]RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [NC,OR]RewriteCond %{QUERY_STRING} ^.*(\[|\]|\(|\)||ê|"|;|\?|\*|=$).* [NC,OR]RewriteCond %{QUERY_STRING} ^.*("|'|<|>|\|{||).* [NC,OR]RewriteCond %{QUERY_STRING} ^.*(%24&x).* [NC,OR]RewriteCond %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127\.0).* [NC,OR]RewriteCond %{QUERY_STRING} ^.*(globals|encode|localhost|loopback).* [NC,OR]RewriteCond %{QUERY_STRING} ^.*(request|select|insert|union|declare).* [NC]RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$ RewriteRule ^(.*)$ - [F,L] الخاتمة التعرض للاختراق بالتأكيد محبط. أنت ترى ثمرة جهودك تنهار مثل برج رملي. لكن درهم وقاية سيكون دائمًا أفضل من دينار علاج، لذا بينما كل شيء على ما يرام قم بتحسين وإصلاح كل ما يمكن إصلاحه تحسبًا لوقوع الكوارث. ترجمة -وبتصرف- للمقال Security Advice for Preventing Your Website from Being Hacked من إعداد فريق موقع 1stwebdesigner
  2. تعد Let’s Encrypt خدمة تقدم شهادات SSL مجانية من خلال واجهة برمجة تطبيقات تلقائية (automated API). أما عميل Let’s Encrypt الأكثر شيوعًا فهو عميل Certbot الخاص بـ EFF. يقدم Certbot مجموعة متنوعة من الطرق للتحقق من صحة المجال الخاص بك، وجلب الشهادات، وتكوين Apache و Nginx تلقائيًا. في هذا المقال، سنناقش الوضع المستقل لـ Certbot وكيفية استخدامه لتأمين أنواع أخرى من الخدمات، مثل خادم البريد أو وسيط الرسائل مثل RabbitMQ. لن نناقش تفاصيل تكوين طبقة المنافذ الآمنة (SSL)، لكن عند الانتهاء ستحصل على شهادة صالحة يتم تجديدها تلقائيًا. وإنك ستكون قادرًا على أتمتة إعادة تحميل الخدمة للحصول على الشهادة المُجددة. المتطلبات قبل مباشرتك بقراءة هذا الدليل, ستحتاج إلى: خادم دبيان 10، مستخدم غير جذري بإمتيازات sudo، وجدار حماية أساسي. اسم نطاق يشير إلى الخادم الخاص بك. يجب عدم استخدام المنفذ 80 أو 443 على الخادم الخاص بك. وإذا كانت الخدمة التي تحاول تأمينها موجودة على جهاز مزود بخادم ويب يشْغل كلا هذين المنفذين، فسيلزمك استخدام وضع مختلف مثل وضع webroot_ الخاص بـ Certbot أو وضع التحدي المعتمد على DNS. الخطوة الأولى - تثبيت Certbot يحوي دبيان 10 على عميل Certbot في المستودع الافتراضي الخاص به، حيث يجب أن يكون محدثًا بما يكفي للاستخدام الأساسي. وإذا كنت بحاجة إلى القيام بتحديات مرتبطة بـ DNS أو استخدام ميزات Certbot الأحدث الأخرى، عندها يتوجب عليك التثبيت من buster-backports repo كما هو موضح في توثيق Certbot الرسمي. قم بتحديث قائمة الحزمة: $ sudo apt update استخدم apt لتثبيت حزمة certbot: $ sudo apt install certbot يمكنك اختبار التثبيت عن طريق مطالبة certbot بإخراج رقم إصداره: $ certbot --version certbot 0.31.0 بعد قيامك بتثبيت Certbot، قم بتشغيله للحصول على شهادتك. الخطوة الثانية - تشغيل Certbot يحتاج Certbot للرد على اختبار تشفير صادر عن واجهة برمجة التطبيقات (API) الخاص بـ Let’s Encrypt لإثبات أننا نتحكم في نطاقنا. حيث يستخدم المنافذ 80 (HTTP) أو 443 (HTTPS) لتحقيق ذلك. قم بفتح المنفذ المناسب في جدار الحماية: $sudo ufw allow 80 استبدل 443 أعلاه إذا كان هذا هو المنفذ الذي تستخدمه. حيث سيخرج ufw تأكيدًا بأنه قد تم إضافة ادارتك: Rule added Rule added (v6) يمكننا الآن تشغيل Certbot للحصول على شهادتنا. حيث سنستخدم ‎--standalone لإخبار Certbot بالتعامل مع التحدي باستخدام خادم الويب المدمج الخاص به. ويرشد خيار ‎--preferred-challenges إلى Certbot لاستخدام المنفذ 80 أو المنفذ 443. فإذا كنت تستخدم المنفذ 80، فستستخدم خيار ‎--preferred-challenges http. وأما بالنسبة إلى المنفذ 443، استخدم ‎--preferred-challenges tls-sni. والآن سنستخدم الراية ‎-d لتحديد النطاق الذي نطلب شهادة له. حيث يمكنك إضافة رايات ‎-d متعددة لتغطية نطاقات متعددة في شهادة واحدة. للتوضيح سنستخدم ‎‎--preferred-challenges http، لكن يتحتم عليك استخدام الخيار المناسب حسب حالة الاستخدام الخاصة بك. والآن قم بتشغيل الأمر التالي مع الخيارات المفضلة لديك للحصول على شهادتك: $sudo certbot certonly --standalone --preferred-challenges http -d your_domain عند تشغيل الأمر سيُطلب منك إدخال عنوان بريد إلكتروني والموافقة على شروط الخدمة. وبعد قيامك بذلك من المفترض أن ترى رسالة تخبرك عن مكان تخزين الشهادات موضحاً فيها بأن العملية كانت ناجحة: IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/your_domain/privkey.pem Your cert will expire on 2019-08-28. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le ها قد حصلنا على شهاداتنا. دعنا الآن نلقي نظرة على ما قمنا بتنزيله وكيفية استخدام الملفات مع برنامجنا. الخطوة الثالثة - إعدادات التطبيق لن نتطرق في هذه المقالة إلى إعداد SSL لتطبيقك، حيث أن لكل تطبيق متطلبات وخيارات تهيئة مختلفة، لكن دعنا نلقي نظرة على ما تم تنزيله من قِبل Certbot. استخدم ls لعرض المجلد الذي يحوي مفاتيحك وشهاداتك: $sudo ls /etc/letsencrypt/live/your_domain سترى الناتج التالي: cert.pem chain.pem fullchain.pem privkey.pem README يحتوي ملف README في هذا المجلد على مزيد من المعلومات حول كل ملف من هذه الملفات. غالبًا ما ستحتاج فقط إلى ملفين من هذه الملفات: privkey.pem: هذا هو المفتاح الخاص بالشهادة. ويجب الإبقاء على هذا المفتاح بشكل آمن وسري، فهذا هو السبب في أن معظم ما في مجلد ‎/etc/letsencrypt لديه أذونات مقيدة للغاية حيث يمكن الوصول إليه فقط من قبل المستخدم الجذر root. ستشير معظم إعدادات البرامج إلى هذا الملف على أنه ملف ssl-certificate-key أو ssl-certificate-key-file. fullchain.pem: هذه هي شهادتنا مرفقة بجميع الشهادات الوسيطة. ستستخدم معظم البرامج هذا الملف للحصول على الشهادة الفعلية، وستشير إليه في إعداداتها باسم مثل ssl-certificate. لمزيد من المعلومات حول الملفات الأخرى الموجودة، راجع قسم Where are my certificate?‎ من توثيق Certbot. ستحتاج بعض البرامج إلى شهاداتها في تنسيقات أو مواقع أخرى، أو بأذونات مستخدم أخرى. من الأفضل ترك كل شيء في مجلد letsencrypt وعدم تغيير أي أذونات هناك (سيتم استبدال الأذونات عند التجديد على أي حال)، ولكن قد لا يكون هذا الخيار مناسبًا، ففي هذه الحالة ستحتاج إلى كتابة نص برمجي لنقل الملفات وتغيير الأذونات حسب الحاجة. حيث يجب تشغيل هذا النص البرمجي عند تجديد Certbot للشهادات والتي سنتحدث عنها بعد ذلك. الخطوة الرابعة - التعامل مع التحديثات التلقائية لـ Certbot تعد شهادات Let's Encrypt صالحة لمدة تسعين يومًا فقط. وهذا لدفع المستخدمين إلى أتمتة عملية تجديد الشهادة. حيث تقوم بذلك حزمة certbot التي قمنا بتثبيتها عن طريق إضافة سطر برمجي إلى ‎/etc/cron.d. ويعمل هذا السطر البرمجي مرتين يوميًا ليقوم بتحديث أي شهادة ستنتهي صلاحيتها خلال ثلاثين يومًا. مع تجديد شهاداتنا تلقائيًا ما زلنا بحاجة إلى طريقة لتشغيل مهام أخرى بعد التجديد. حيث سنحتاج على الأقل إلى إعادة تشغيل خادمنا أو إعادة تحميله لاستلام الشهادات الجديدة، وكما ذكرنا في الخطوة الثالثة قد نحتاج إلى التلاعب في ملفات الشهادات بطريقة ما لجعلها تعمل مع البرنامج الذي نستخدمه. وهذا هو الغرض من خيار renew_hook. لإضافة renew_hook، نحتاج إلى تحديث ملف تكوين تجديد الخاص بـ Certbot. حيث يتذكر Certbot جميع التفاصيل عن كيفية جلبك الشهادة لأول مرة، وسيتم تشغيله بنفس الخيارات عند التجديد. نحتاج فقط إلى إضافة الخطاف (hook) الخاص بنا. قم بفتح ملف التكوين باستخدام أي محرر تفضله: $sudo nano /etc/letsencrypt/renewal/your_domain.conf سيتم فتح ملف نصّي ‎/etc/letsencrypt/renewal/your_domain.conf مع بعض خيارات الإعدادات. بعدها قم بإضافة خطافك (hook) على السطر الأخير. نستخدم في هذه الحالة مثالًا يعيد تحميل خدمة rabbitmq: $renew_hook = systemctl reload rabbitmq قم بتحديث الأمر أعلاه بإضافة كل ما تحتاج تشغيله لإعادة تحميل الخادم أو قم بتشغيل سكربت مخصص للقيام بذلك. عادةً ما نستخدم في دبيان خدمة systemctl لإعادة تحميل الخدمة. احفظ الملف وأغلقه، ثم قم بتشغيل Certbot بوضعية التشغيل الجاف (dry run) للتأكد من أن الصيغة صحيحة: $sudo certbot renew --dry-run إذا لم ترَ أي أخطاء فأنت جاهز تمامًا. فقد تم تعيين Certbot للتجديد عند الضرورة وتشغيل أي أوامر مطلوبة للحصول على الخدمة باستخدام الملفات الجديدة. الملخص في هذا المقال، ثبّتنا Certbot Let’s Encrypt Client، وتنزيل شهادة SSL باستخدام الوضع المستقل، كما وقمنا بتمكين عمليات التجديد التلقائي بخطافات التجديد (renew hooks). فمن المفترض أن يمنحك هذا بداية جيدة لاستخدام شهادات Let’s Encrypt مع خدمات مغايرة خادم الويب الإعتيادي. لمزيد من المعلومات يرجى الإطلاع على توثيق Certbot ترجمة -وبتصرف- للمقال How To Use Certbot Standalone Mode to Retrieve Let's Encrypt SSL Certificates on Debian 10 لأصحابه Brian Boucheron و Kathleen Juell و Hanif Jetha
  3. أحد أسوأ الأمور في موسم الأنفلونزا حتمية إصابتك بالمرض. فقد يأتي زملاء العمل وهم يعانون من رشح في الأنف. أو ربما تستقل الحافلة إلى مكان عمل مشترك، فيسعل ركاب آخرون ويلمسون نفس المَسند الذي تمسك به. أو ربما كنت تعمل من منزلك "الآمن" إلا أنه من المحتمل أن ينقل لك أطفالك جراثيم خطيرة تعرضوا لها في المدرسة. بغض النظر عن المكان الذي تذهب إليه أو من تكون محاطًا بهم فقد تشعر في بعض الأحيان أنه لا يوجد مكان آمن. ولكن هذا ما يحدث عندما تعمل وتعيش بالقرب من الآخرين. إذا كان شخص واحد مصابًا فانتشار المرض مسألة وقت فقط. الأمر نفسه ينطبق على التعرض لمخاطر الثغرات العابرة للمواقع (Cross-Site). من البديهي أن الأمن يشكل مصدر قلق كبير لكل من له علاقة بموقع ويب، سواء كان صاحب الموقع أو الشخص الذي يتسوق عليه أو المطور الذي قام بإنشائه. لذا، يبدو أن هناك خطرًا عند كل منعطف. لكن لنفترض أنك قررت اتخاذ القرار الاقتصادي والفعال بوضع عدة مواقع على شبكة واحدة (سواء كان ذلك من خلال استخدام ووردبريس مُتعدّد المواقع أو تشغيلها ببساطة من حساب الاستضافة نفسه). قد تؤدي ثغرة أمنية واحدة في واحد فقط من تلك المواقع إلى تعريض الشبكة بالكامل للخطر. يعد مقال أفضل ممارسات الأمان في ووردبريس جيدًا للبدء به، و لكنه قد لا يكون كافيا. إذا كنت تدير شبكة من مواقع ووردبريس جميعها من مكان واحد فهذا المنشور يناسبك. سأغطي بإيجاز المخاوف التي تتعلّق بالثغرات العابرة للمواقع Cross-Site، ثم أعرض قائمة مرجعية خاصة من النصائح لاستخدامها عند تشغيل شبكة من المواقع. من ينبغي أن يكون قلقًا بشأن مخاطر الثغرات العابرة للمواقع في ووردبريس؟ دعنا نواجه الأمر: يحتاج القراصنة هذه الأيام للمزيد من الإبداع في كيفية اختراق مواقع الويب. قد يكون الووردبريس هدفًا سهلاً بسبب شعبيته، ولكنه ليس منصة سهلة الاختراق إذا كان الأشخاص الذين يبنون ويديرون مواقع الويب يمتثلون لأفضل ممارسات الأمان. بالطبع يبدأ ذلك الالتزام بالتذبذب قليلاً مع تزايد عدد مواقع الويب على شبكتك. في ما يلي طرق يمكن بها تجميع مواقعك على الويب مما يعرضها عن غير قصد لمخاطر الثغرات العابرة للمواقع. ووردبريس مُتعدّد المواقع على الرغم من أن شبكة ووردبريس متعددة المواقع تعدّ ميزة رائعة لمطوري الويب الذين يرغبون في إدارة شبكة من المواقع بكل سهولة من خلال تثبيت واحد ووردبريس مرة واحدة فقط، إلّا أنها تعني أيضًا أن تفاحة فاسدة واحدة يمكن أن تفسد المجموعة بالكامل بسهولة. جوهر المسألة هو أنّ كل هذه الموارد المشتركة من ملفات، وملحقات، وبيانات الدخول، المخزَّنة في المكان نفسه تزيد من خطر أنّ أذية موقع ويب واحد يمكن أن تؤدّي إلى إصابة مواقع الشبكة كلها. حساب استضافة متعدد النطاقات ينطبق الأمر نفسه على مواقع الويب التي تشترك في حساب استضافة (ليس بالضرورة تلك الموجودة على استضافة مشتركة، بل فقط تلك المواقع التي تشترك في حساب واحد). كل ما يتطلبه الأمر هو موقع ويب واحد غير مؤمَّن على نحو سليم (من خلال ملحق سيئ أو كلمة مرور ضعيفة)، ويمكن بعد ذلك للمخترقين إحداث الفوضى في شبكة كاملة من المواقع. يوجد عدد من الأطراف التي من المحتمل أن تتأثر: الوكالات التي تريد إدارة جميع مواقع عملائها من حساب استضافة واحد، المطورين الذين يريدون أن يفعلوا الشيء نفسه، المطورين الذين يستخدمون حساب الاستضافة الخاص بهم لاختبار مواقع الويب وإعدادها، الشركات التي لديها عدد من مواقع الويب تحت مظلة علامتها التجارية الرئيسية وتريد الاحتفاظ بها جميعًا معا. إعادة بيع الاستضافة قد يجد مطورو الويب أن بيع الاستضافات، إما بدوام كامل أو تكملةً لعملهم اليومي، طريقة مربحة لكسب أموال إضافية باستخدام ووردبريس، وهو ما يعني أنك إذا لم تقم بتهيئة نظام الاستضافة الخاص بك بدقة فيمكنك أن تعرّض جميع مواقع عملائك للخطر. لا يمكنني التأكيد على الأمر بما فيه الكفاية: كل ما تتطلبه إصابة شبكة مواقع وتدميرها بالكامل هو إصابة موقع واحد منها. تخيل أثر ذلك، إنْ حدث، على عملك. أكدت للعملاء أنك ستهتم بمواقعهم على الويب، وتعتقد بصدق أن كل شيء سيكون على ما يرام. لكنّك تركت موقعًا مرحليًا غير مؤذٍ دون مراقبة، أو كنت تثق في أن عملاء الاستضافة سيؤمّنون مواقعهم الفردية على نحو صحيح … وحدث خطأ ما. إذن مالعمل الآن؟ حسنًا، أنت بحاجة إلى عدم الانتظار حتى "الآن.. ماذا نفعل؟". تحتاج إلى اتخاذ إجراء حاليًا لتأمين شبكة مواقع ووردبريس الخاصة بك على نحو صحيح من مخاطر الثغرات العابرة للمواقع. القائمة المرجعية: 8 أشياء تحتاج إلى القيام بها للتصدي للأضرار الناتجة عن الثغرات العابرة للمواقع من البديهي أنّ هذه القائمة ليست معدّة لتحل محل القائمة المرجعية لتأمين ووردبريس التي تعتمدها سلفا. تسري نصائح تلك القائمة سواء كنت تدير موقع ووردبريس واحدًا أو شبكة كاملة. ومع ذلك ينبغي أن تُضاف العناصر التالية إلى تلك القائمة المرجعيةإنْ كنت تنوي إدارة شبكة من المواقع. 1- فحص كل موقع الهدف من وراء جمع مواقع مختلفة في حساب استضافة مشترك واحد، أو إعداد ووردبريس مُتعدّد المواقع هو أن تتمكّن من إدارة المواقع في وقت واحد بصورة أكثر ملاءمة وفعالية. ومع ذلك، تبقى تلك المواقع ملكيات فريدة يجب التعامل معها على ذلك الأساس. لذا، بدلاً من افتراض أن إجراءات الأمان المستخدمة من قبل مزود الاستضافة، استخدم ملحقًا لفحص الأمان على كل موقع من مواقع ووردبريس الخاصة بك. يقوم ملحق Defender لأمن ووردبريس، بطبيعة الحال، بعمل رائع في فحص موقعك بانتظام، وفرض ممارسات أمنية صارمة، وتوثيق جميع الأنشطة، لذلك أقترح البدء به. 2- إضافة جدران نارية منفصلة تعلم أنك عندما تسجّل لدى مزوّد استضافة موثوق فإنه عادةً يروّج لوجود جدار ناري لحماية خوادمهم ومنع المخترقين. مع ذلك، إذا كنت تدير مواقع ووردبريس خاصة بك من حساب الاستضافة نفسه، فهذا يعني أن شبكتك مؤمنة من خلال جدار ناري واحد فقط، ولا يوجد حاجز منفصل يقف بين كل واحد من مواقعك مع البقية. بما أنّ سبب تأثير الثغرات العابرة للمواقع هو عدم وجود حواجز بين تلك المواقع، فمن المهم إضافة جدار ناري إلى كل موقع ويب. يؤّدي Cloudflare هذه المهمة بنجاح. يأتي جدار Cloudflare الناري لتطبيقات الويب مزودًا بقواعد مضمنة، ومن بينها قواعد تتصدّى للتهديدات والثغرات الخاصة بووردبريس. بمجرد تمكين جدار Cloudflare الناري لتطبيقات الويب فستطمئن لعلمك أن موقعك محمي من أحدث التهديدات. 3- استخدام ملحق موثوق لتعدّد مواقع ووردبريس إذا كانت الثغرة الأمنية في شبكة مواقعك ناتجة عن استخدام نظام ووردبريس مُتعدّد المواقع، فأفضل ما يمكنك فعله هو استخدام ملحق موثوق لهذا الغرض، مثل WP Ultimo. بهذه الطريقة تتيقّن أنْ تتحكّم أكثر في ما يفعله عملاؤك مع مواقعهم على الويب، وفي الوقت نفسه تتأكد أيضًا أن الملحق الذي تستخدمه غير خطر وآمن. 4- حجب السخام على شبكة مواقع ووردبريس بالطبع، لا تنسَ التعليقات غير المرغوب فيها، فهي أحد أهم الأسباب التي تجعل الكثير من المدونات والمواقع تقرر إيقاف التعليقات تماما. عندما تشغّل شبكة كبيرة من المواقع - خاصةً إذا كانت سيطرتك على محتوى المدونة أو التعليقات التي تظهر عليها ضئيلة أو معدومة - فأنت بحاجة إلى الملحق Akismet لكي يحمي مواقعك من السخام وحُقَن المحتوى الضارة الأخرى. 5 - تنظيف النطاقات القديمة كلما زادت شبكة مواقعك كلما أصبح من الأسهل فقدان أثر تلك المواقع. لهذا السبب يجب عليك تحديد موعد دوري - من الأفضل أن يكون كل مرة في الشهر أو في الأسبوع - لمراجعة حسابك على الاستضافة متعدّدة النطاقات، أو شبكة مواقع ووردبريس. يجب التخلص من أي نطاقات قديمة أو غير مستخدمة، ينطبق الأمر نفسه على مواقع الاختبار والتحضير. بمجرد إتاحة موقع ووردبريس العموم تصبح هذه المواقع غير ذات فائدة، إذا واجهت أي مواقع لم يتم تحديثها منذ عام فاستفسر من مالك الموقع لمعرفة ما إذا كان لا يزال بحاجة إلى الاستضافة. من خلال الحفاظ على خادمك خاليًّا من النطاقات القديمة فستقلّل من احتمال أن يصادفها القراصنة ويستفيدوا من البيئة الممهدة المثالية المتمثّلة في الأنشطة غير الخاضعة للرقابة، وبرنامج ووردبريس وملحقاته غير المحدثة، وما إلى ذلك. 6- الحفاظ على الإضافات والسمات محدثة إنْ كنت تمضي وقتًا طويلًا في مستودع ملحقات ووردبريس فستتعرّف على هذه الرسالة. إذا كنت تجمع مواقع ويب في بيئة ووردبريس متعدّدة المواقع أو في حساب الاستضافة نفسه، فنرجو أن تكون لديك مجموعة الملحقات والسمات الموثوقة نفسها على جميع مواقعك. على الرغم من أن بيئة ووردبريس متعدّدة المواقع تبسط عملية الحفاظ على الملحقات والسمات "المشتركة" محدَّثة عبر جميع المواقع، إلّا أن ذلك لا يقلّل من أهميّة المراجعة المنتظمة لكل تكامل مع خدمات طرف ثالث. قد لا تعرف أبدًا متى يقرر مطوّر إيقاف دعم خدمة، أو متى توضع إشارة تحذير على ملحق في مستودع ووردبريس، أو متى تظهر ثغرة أمنية جديدة في أحد هذه البرامج. مع ذلك، تجد أحيانًا عناءً كبيرًا في المواكبة المستمرة لجميع تحديثات ووردبريس، وكذلك الملحقات والسمات التي لا تعد ولا تحصى؛ وهو ما يجعل من ملحق أو برنامج يحدّث تلقائيًا الملحقات والسمات أمرًا مفيدًا للغاية. يتمتع أعضاء WPMU DEV، على سبيل المثال، بميزة التحديثات التلقائية التي تشغّل التحديثات وتأخذ نسخًا احتياطية تلقائيّا. 7- تهيئة الخادم بطريقة صحيحة سواء تعلّق الأمر بيئة ووردبريس متعدّدة المواقع أو حساب استضافة مشترك فإن الحفاظ على أمان المواقع يتطلّب إدارة إعدادات الشبكة بذكاء. في ما يلي نصائح بسيطة لمساعدتك في القيام بذلك: إنشاء حسابات منفصلة لمنصات مواقع الويب: إذا قمت بإنشاء مواقع ويب باستخدام منصات أخرى غير ووردبريس، فيجب أن تكون لديك حسابات منفصلة لمواقع ووردبريس، ومواقع دروبال، ومواقع جوملا وغيرها. تجنب خلط الحابل بالنابل في وظائف المضيف: نعني بذلك نوعية الاستضافة. لذا، إذا كنت تعمل في بيع استضافة مواقع الويب فقد تزود العملاء أيضًا باستضافة البريد الإلكتروني. لا تخلط بين تلك الوظائف، وأبق كلّ واحدة منها منفصلة عن الأخرى. افصل بين مواقع الويب التجريبية ومواقع الويب المتاحة للعموم: على الرغم من أنك قد تميل لوضع مواقع ما زالت في مراحل التطوير والاختبار على نفس الحساب مع تلك المتاحة للعموم، إلّا أنه من الأفضل ألّا تفعل ذلك. سيكون الفصل بينها أكثر أمانًا، خاصة إذا لم تكن جيدًا في استحضار حذف مواقع أو التحضير بعد الانتهاء منها. والأفضل من ذلك أن تفصل بين الأدوات التي تستخدمها للاختبار وتلك التي تستخدمها للتحضير، حتى تتمكن من تجنب هذه المشكلة تماما. 8- استخدام مضيف موثوق في نهاية المطاف يعتمد أمان مواقع الويب الخاصة بك على مدى تأمين كل واحد على حدة. مع ذلك إذا لم تبدأ بمضيف موثوق يوفر لك خوادم آمنة ومُعدة بطريقة صحيحة فربما تواجه مشاكل على المدى الطويل. يشيع ذلك في الحالات التي لا تتبع أفضل الممارسات لتأمين كل موقع، والحفاظ على المستخدمين محجوزين في مواقعهم الخاصة. بالطبع إذا استمررت في القلق بشأن إصابة المواقع في شبكتك فيمكنك دائمًا استضافة كل موقع على حدة باستخدام طريقة أكثر أمانًا وعزلًا، مثل الخادم الافتراضي الخاص أو استضافة خادم مخصص. على الرغم من أن تلك الطرق تلغي الحاجة لإنشاء شبكة متعددة المواقع فإنها تجنبك احتمالية الإصابة بالثغرات العابرة للمواقع. في الختام كل ما يتطلبه الأمر تفاحة واحدة فاسدة لتدمير الباقي. أحيانًا يكون من الصعب رؤية تلك التفاحة الفاسدة عندما يكون لديك الكثير من التفاح لمراقبته، لهذا السبب تجب حماية كل موقع في شبكتك. إذا كان موقع ما لا يهمك بما يكفي للاهتمام بحمايته فيجب ألا يكون ضمن بيئة ووردبريس مُتعدّدة المواقع، أو يتشارك مساحة على حساب الاستضافة مع مواقعك الأخرى. الأمر بسيط. عليك الالتزام بالنصائح المذكورة أعلاه وستكون قادرًا على تشديد أمان شبكتك بدرجة تكفي لكي لا تقلق بعد الآن بشأن الثغرات العابرة للمواقع. ترجمة -وبتصرف- للمقال The Dangers of Cross-Site Contamination and How to Prevent It لصاحبته Suzanne Scacca
  4. توجد الكثير من التطبيقات الموفِّرة للوقت وأطر عمل CSS ومكتبات جافاسكربت التي يمكن لمطور ووردبريس استخدامها لتبسيط سير العمل. لكن ماذا بخصوص ملحقات ووردبريس؟ خاصةً تلك الموجودة في مستودع ووردبريس الرسمي أو المتاحة للمشتركين في المستودعات الخاصّة. ممّا لا شك فيه أنّ الملحقات هي إحدى المميّزات التي يضيفها ووردبريس لبناء مواقع الويب. رغم ذلك، يمكن أن تمثل الملحقات خطرًا حقيقيًّا على أمان موقعك إذا لم تكن حريصًا على اختيارها من مصدر موثوق. نظرًا لأن 54٪ من الثغرات المكتشفة تُنسَب إلى الملحقات فليس سرًا أنها السبب الرئيسي لانتهاكات أمان ووردبريس. بالطبع يمكن عادًة تقليل ذلك إلى خطإ المستخدم (أي لم تُحدَّث الملحقات في حين كان الأجدر أن يتم ذلك). لكنْ في بعض الأحيان لا ترتبط مشكلات أمان الملحقات بهذا النوع من أخطاء المستخدم. بدلًا من ذلك فإنها تنشأ من المستخدمين الآخرين. على وجه التحديد المخترقين الذين يحقنون ملحقاتهم الخاصة، عن قصد، ببرمجيات خبيثة. نعم هذا صحيح، توجد ملحقات ووردبريس مزيَّفة مصمَّمة لغرض محدَّد هو إصابة المواقع. ليس من السهل دائمًا، كما سترى أدناه، اكتشاف هذه الإصابات بالفيروسات على الفور. دعونا نلقي نظرة على سبب استخدام المخترقين لملحقات ووردبريس لشق طريقهم إلى موقع الويب الخاص بك وكيف يقومون بذلك وما يمكنك القيام به لمنع ذلك. ملحقات ووردبريس المزيفة التي خدعت الجميع حسنًا، تعرف جيّدًا كيفية حماية موقع ووردبريس. تحتاج لوحة إدارة الموقع إلى الاهتمام، والأمر نفسه ينطبق على المجلَّد الجذر لموقعك. كما يلزم تأمين أي اتصال مباشر بين الموقع والمستخدمين، وهو ما تفعله خوادم الويب الخاصة بك. أساسًا، يلزم أن تُغطَّى كل زاوية. لكن مالعمل إنْ أتى الاختراق من داخل موقع الويب الخاص بك؟ يعرف المخترقون الذين يتحملون مشقة إنشاء ملحقات ووردبريس مزيَّفة ما يقومون به. مرّت العديد من الملحقات المزيَّفة التي أضرّت فعلًا بمواقع المستخدمين، مرّت دون أن تُكتشَف، لأنّ الشفرة - للوهلة الأولى على أية حال - تبدو شرعية. توجد كذلك ملحقات مزيَّفة أخرى لم تسلُك تلك الطريق، وهي محلقات أكثر خطرًا وأشد تأثيرًا (مثلًا، إصدار أول بدون أية مشاكل، ثم بعد ذلك تحديثات خطِرة أمنيّا). إذا لم تصادف من قبل ملحقات ووردبريس مزيَّفة، فالفقرة التالية تعرض عددًا من الحالات المعروفة. الملحق Pingatorpin في العام 2013 كان يوجد ملحق باسم Pingatorpin، ولم يُتعرَّف فورًا على حقيقته. صادفت Sucuri عددًا كبيرًا من مواقع الويب التي تحتوي على برامج ضارة تتشارك في مجموعة متماثلة من الملفات. تطلّب الأمر تعميق البحث والتدقيق ليكتشفوا في النهاية أن الملحق Pingatorpin هو مصدر السخام (Spam) المستفحل في تلك المواقع. الملحق SI CAPTCHA لمكافحة الإزعاج الإلكتروني (البريد المزعج) هل تريد رؤية أمر مخادع؟ إذن انتبه للتالي. كان ملحق SI CAPTCHA حتى صيف عام 2017 ملحقًا صالحًا لحروف التحقق CAPTCHA. بيع المُلحق في يونيو إلى طرف آخر وتغيرت الملكية، وحينها بدأت المشاكل. أضاف المالك الجديد شفرة برمجية إلى الملحق من شأنها أن تسمح لخادم منفصل بإدخال إعلانات قروض يوم الدفع في منشورات مدونة المستخدمين. لم يكن الملحق الوحيد الذي استخدمه المخترِق، إذ استخدم ثمانية ملحقات أخرى لتكون وسيلة للوصول عبر باب خلفي إلى المواقع من أجل تشغيل إعلانات سخام عليها. يوجد قراصنة بارعون مثل هؤلاء، يشترون ملحقات معروفة من المطورين ثم يصدرون تحديثات بها ثغرات أمنية تمنحهم الوصول إلى مواقع المستخدمين. يعرف هؤلاء أن مطوري ووردبريس والمستخدمين الآخرين الذين يتسمون بالحذر الشديد بشأن الأمان سيحجمون - على الأرجح - عن استخدام أي ملحقات غير شائعة في مستودع ووردبريس، و لذا ستدرك عند التفكير في هذه الخطوة أنها ذكية جدّا. ملحق WP-Base-SEO للتحسين لمحركات البحث أدّى تثبيت ملحق WP-Base-SEO إلى اختراق ما يقارب 4000 موقع ووردبريس في إبريل 2017. لم يبن المخترق الملحق من لا شيء، كما أنه لم يشتر ملحقًا معروفًا من أجل كسب ثقة المستخدمين. بدلًا من ذلك، نسخ شفرة برمجية من ملحق آخر لكي تبدو شفرته طبيعية، وربما هذا هو السبب في عدم إثارته لانتباه أدوات البحث التلقائي عن البرمجيات الخبيثة. بالطبع لم يكن الملحق طبيعيًّا كما أراد أن يبدو، وأدرك المستخدمون وجود خطب غير طبيعي. سرعان ما تبيّن عند الفحص وجود عدد من الملفات المشبوهة إضافة إلى استعلام PHP مُرمَّز بترميز Base64 كان هو المتسبّب في الاختراق. الملحق X-WP-SPAM-SHIELD-PRO الحالة الأحدث من حالات الملحقات المزيَّفة مرعبة بحق. نتحدّث عن X-WP-SPAM-SHIELD-PRO. يبدو الملحق في جميع أهدافه ومقاصده ملحقًا أمنيًّا ذي شفرة برمجية مكتوبة بعناية. حتى إن بنية المجلدات فيه تشبه ملحقًا طبيعيًّا وآمنا. لكن بمجرد وضع Sucuri أيديهم عليه - إضافة إلى مواقع مصابة به - لاحظوا وجود مشكلات كبيرة في الشفرة البرمجية.. في ما يلي بعض من الأمور التي يجمعها الملحق: إصدار ووردبريس الحالي، قائمة بجميع الملحقات المثبتة على الموقع، قائمة بالمستخدمين الذين لديهم صلاحيات إدارة الموقع، أسماء المستخدمين المتصلين بالموقع، وكلمات المرور الخاصة بهم ، وكذلك عناوين IP، من بين بيانات حساسة أخرى. بمجرد الحصول على كل هذه المعلومات أصبح لديه القدرة على: إضافة مدير جديد مما يمنحه القدرة على التجول بحرية في الموقع، تعطيل أي ملحق مستخدم على الموقع بما في ذلك الملحقات الأمنية، تحميل أي ملف إلى الموقع، استلام إشعار عندما يثبت شخص ما الملحق، وبالتالي يعرف صاحب الملحق الوقت الذي يحصل فيه على إمكانية الولوج إلى الموقع وبالتالي إمكانية تدميره. لذلك دعنا نلقي نظرة على ما يمكنك فعله لحماية موقع ووردبريس الخاص بك من الملحقات المزيفة. 9 من أفضل الممارسات لتأمَن خطر الاختراق عند التعامل مع ملحقات ووردبريس حالياً بعد أن عرفت ما يبحث عنه القراصنة في الملحقات المزيفة فمن مهامك أن تتأكد من عدم الوقوع في مصائدهم. إليك 9 من أفضل الممارسات التي عليك الالتزام بها عند التعامل مع ملحقات ووردبريس. 1- مراجعة الملحق للتحقق من جودته بصفة عامة إذا عثرت على ملحق ووردبريس تريد استخدامه وكان موجودًا في مستودع ووردبريس أو مصدر آخر موثوق به لملحقات ووردبريس (مثل CodeCanyon) فعليك مراجعته على نحو شامل. وإليك صورة توضح كيفية استخدام معلومات المحلق في مستودع ووردبريس للتحقق منه: إليك ما تحتاج إلى البحث عنه: أولا وقبل كل شيء سمعة مطوّر الملحق. إنْ لم تتعرف عليه فابحث عنه للتحقق من مصداقيته. تواتر التحديثات مهم أيضًا، فبقاء الملحقات مدة طويلة دون تعديل عليها أو صيانة لها يمكن أن يكون إشارة جديّة إلى حدوث مشاكل. ربما لا يكون الملحق مزيَّفًا، لكنه مهمل وتوقّف دعمه. يمكنك عادةً معرفة الكثير عن جودة ملحق استنادًا إلى عدد الأشخاص الذين يستخدمونه. أستطيع أن أقول إن أكثر من بضعة آلاف عدد آمن يمكنك الوثوق به. تسير التقييمات جنبًا إلى جنب مع عدد المستخدمين. إذا كانت النتيجة أقل من 4.5 فذلك يتطلب منك أن تتساءل "لماذا؟" أخيرًا يتعين عليك استكشاف التعليقات التي تركها المستخدمون عند تقييم الملحق. ستعطيك التعليقات فكرة أفضل عن المشكلات المتكررة المتعلقة بالملحق. إذا كانت هناك أي ملاحظات سلبية على أمان الملحق فيلزم التخلص منه على الفور. إذا وجدت الملحق خارج موارد ووردبريس الموثوقة المتعارف عليها، فستحتاج إلى إجراء بحث خارجها. يعد البحث في جوجل مكانًا جيدًا للبدء، وكذلك منتديات ووردبريس . ستحصل على فكرة عن نوع الشكاوى أو المشكلات التي واجهها المستخدمون الآخرون. 2- مراجعة الشفرة البرمجية أول ما يتعين عليك فعله قبل تثبيت ملحق جديد هو فحص بنية المجلدات والتأكد من أنها تبدو طبيعية. إذا تجاوزت الفحص فيمكنك بعدها إلقاء نظرة عن قرب على الشفرة. حتى إنْلم تكن مطور ملحقات ووردبريس، فستقدر على اكتشاف المشكلات المحتملة المتعلقة بالتعليمات البرمجية في ملفات الملحقات إنْ أخذت الوقت الكافي لذلك. إنْ وجدت طلبات للحصول على معلومات حسّاسة بدون مبرّر واضح، فذلك يعني وجود أمر على غير ما يُرام. 3- مراجعة السمة هل سمعت عن استغلال ثغرات TimThumb أو Slider Revolution؟ على الرغم من أنّ الملحقيْن المذكوريْن ليسا مزيَّفيْن، إلّا أنّ الثغرات كانت تتسلّل عبرهما بسبب الطريقة التي يُستخدمان بها. تتضمن بعضٌ من سمات ووردبريس مجموعة من الملحقات بداخلها. قد تبدو هذه الطريقة مناسبًة لكونها تجعل كل تلك الوظائف جاهزة للاستخدام معًا، إلّا أن تضمينها مع السمة قد يتسبّب في مشاكل خطيرة إنْ لم يكن مطوّر السمة منتبهًا لثغرات الملحقات التي يستخدمها ويحدّثها لزبنائه. لذا، قدّم لنفسك خدمة، وراجع السمة الخاصة بك لمعرفة ما إذا كانت تتضمن أي ملحقات مدمجة معها. تعد TimThumb و Slider Revolution و Gravity ثلاثة من الملحقات الأكثر إشكالية عند تركها بدون تحديث؛ لذا، سيكون وجودها أول الإشارت الحمراء. عمومًا، من الجيّد أن تعرف ما يوجد في سمة ووردبريس الخاصّة بك لتعرف ما يمكنك فعله في حال ظهور ثغرة جديدة أو ملحق مزيَّف. 4- استخدام فاحص ثغرات قد لا يتمكن فاحص الثغرات (Vulnerability Scanner) من كشف حقيقة الملحقات المزيفة، ولكنه بالتأكيد سيُعلمك عند اكتشاف برامج ضارة أو بريد مزعج أو نوع آخر من الإصابات. 5- استخدام ملحق أمني تتكفّل الملحقات الأمنية بعدد من المسؤوليات في موقعك، ومن بينها إبلاغك عند إزالة ملحق تستخدمه من مستودع ووردبريس أو عند تغير وضعها. 6- إدارة الملحقات الخاصة بك وصيانتها نتمنى لو كانت الملحقات من الأشياء التي تفعلها مرة واحدة وتنسى أمرها، إلّا أنّ الواقع يختلف عن ذلك. تحتاج مساعدات ووردبريس هذه إلى العناية والاهتمام المستمرَّيْن. إليك في ما يلي ما يمكنك القيام به لإدارة قائمة ملحقاتك والحفاظ عليها بطريقة صحيحة: الحفاظ على تحديث جميع الملحقات (وكذلك برنامج ووردبريس الأساسي والسمة الخاصة به). احذف أي ملحقات قديمة أو غير مستعملة. تخلّص فوراً من أي ملحقات مزيَّفة أو مصابة بثغرات أمنية خطيرة أو مشاكل في الأداء. راجع قائمة SiteLock للملحقات المزيَّفة للتأكد من عدم وجود ملحقاتك فيها. 7- مراجعة موقعك بعد تثبيت الملحق تأكّد، كل ما ثبّت ملحقًا جديدًا أو حدّثت ملحقًا مثبَّتا، من مراجعة ما يراه الزوار على موقعك. لم يدرك الكثير من المستخدمين أنه قد تم تثبيت ملحقات مزيفة إلّا بعد أن لاحظوا ظهور إعلانات مزعجة على مدوناتهم. 8- استخدام قاعدة بيانات WPScan لثغرات ووردبريس يحتفظ هذا المتتبع عبر الإنترنت بقائمة محدَّثة باستمرار للثغرات المكتشفة في ووردبريس والملحقات والسمات. إذا كنت قلقًا من احتمال وجود مشكلات في ملحق تستخدمه فاستخدم قاعدة البيانات تلك لكون نقطة مرجعية. كإجراء عملي، يمكنك الاشتراك في تنبيهاتهم حتى تكون على اطّلاع دائمًا عندما يُبلَغ عن مشكلة في وورد بريس. 9- ثق فقط في الأفضل في حالة الشك، اختر ملحقات ووردبريس فقط من مصادر موثوقة، وابحث في مستودع ووردبريس و CodeCanyon عن المطوّرين ذوي السمعة الطيبة. الخاتمة حتى مع وجود أكثر معايير الأمان صرامةً سيجد المخترقون طريقة لاستغلال الثغرات المعروفة في ووردبريس. يعدّ اعتمادنا على الملحقات للتعامل مع جزء كبير من العمل نيابة عنا، لسوء الحظ، واحدة من نقاط الضعف تلك. بالطبع لا يعني ذلك أنه يجب عليك التوقف عن استخدام ملحقات ووردبريس. بل يعني ببساطة أنك بحاجة إلى أن تكون أكثر يقظة وتوخيًّا للحذر الشديد عند تحديد الملحقات التي يلزم استخدامها على موقع ووردبريس الخاص بك. طالما أنك تلتزم بأفضل الممارسات في استخدام الملحقات وتثق فقط في الجهات الخارجية المعروفة والمدققة تمامًا لتزويد موقعك بميزات ووظائف محسّنة، فستجد أن الملحقات المزيَّفة لا تمثّل تهديدًا حقيقيًّا لك. ترجمة-وبتصرف –للمقال Fake WordPress Plugins: What You Need to Know لصاحبته Suzanne Scacca
  5. تعدّ المواقع المبنية على ووردبريس من أكثر الأهداف عرضةً للهجوم على الإنترنت، إذ أن قابلية تعرضها للاختراق أكثر من أي نوع آخر من المواقع. فإذا كنت تملك موقعًا مبني على ووردبريس، أو أحد أصدقائك، أو أحد معارفك ولم يتعرض أي منكم للاختراق بعد، فأنتم إما محظوظون جدًا أو أنك تملك أشخاص حذرين جدًا يحيطون بك! وبما أن هذه المواقع تعمل على الإنترنت وتُشغّل مئات الآلاف من الشيفرات البرمجية في الخلفية، فمن المهم الاهتمام بالقضايا الأمنية الخاصة بالموقع وخاصة أن ووردبريس منصة معروفة ومشهورة واستهدافها من قبل المهاجمين هو أمر وارد الحدوث. عندما كانت شركة مايكروسوفت ويندوز منصة جديدة نسبيًا ومسيطرة على مواضيع تخص قضايا الحماية والأمن، صرّح القائمون عليها أن من أسباب تعرض المنصة لعدد من الهجمات هو الأخطاء والثغرات الأمنية المرتكبة من قِبل الشركة نفسها، وهو ما تم استغلاله على الفور عند صدور نظام الويندوز. وكذلك هو الحال في المواقع المبنية على ووردبريس والّتي تحتل وبقوة حوالي 34.8% من إجمالي عدد المواقع على مستوى العالم وذلك بحسب إحصائية نشرها موقع w3techs. وهذا شيء رائع، ولكنه أيضًا يفرض علينا أن نأخذ قضايا الحماية الأمنية على محمل الجد، فعلى سبيل المثال لو وجد شخصٌ ما ثغرة أمنية رئيسيّة في ووردبريس عندها سيكون بإمكانه وبكل سهولة أن يسيطر على الآلاف من الخوادم في غضون ساعات. ولهذا السبب تعد مواقع ووردبريس الهدف الأكثر عرضةً للهجوم ويجب علينا الاهتمام بحمايتها اهتمامًا بالغًا. هل يعدّ هذا المقال دليلًا كاملًا لحماية ووردبريس بالطبع لا وإنما هو مجموعة من أفضل الممارسات الأمنية في ووردبريس. أدرك جيدًا أن عنوان هذا المقال "الدليل الكامل في أمن مواقع ووردبريس" مبالغ فيه قليلًا، فهو بحد ذاته ليس كذلك وذلك لأن المسائل الأمنية ليست عبارة عن قواعد ثابتة، أو مجرد تثبيت إضافة أمنية معينة، أو عمل أي شيء آخر مقيّد بفترة زمنية. لا إنه ليس كذلك! بل هو عبارة عن ممارسات تتطور باستمرار وذلك لأن الثغرات الأمنية متجددة باستمرار وتفرض علينا دومًا تحديث سياساتنا الأمنية الّتي نتبعها. يمكن تمثيل مفهوم الأمن بأشياء تم وضعها في صندوق ومن ثم تم وضع الصندوق بعمق 400 قدم تحت سطح الأرض في مكان لا يعرفه أحد وسط الصحراء، الواضح هنا أن الأشياء في مأمن ولكنها غير مفيدة أبدًا. من الجدير بالذكر هنا أن أي شيء يعمل على شبكة الإنترنت، على سبيل المثال المواقع المبنية على ووردبريس، لديها بيئة متغيرة باستمرار ويمكن أن يشكّل ذلك خطرًا عليها فيصبح من الواجب العمل على حمايتها من التهديدات. وحتى يتم ذلك، سوف نعمل جاهدين على تحديث كافة المعلومات الّتي تحتاجها في هذا المقال. سأغطي في هذا المقال جميع الأساسيات الّتي ستحتاجها والكثير من الممارسات الأخرى الّتي ستساعدك في مواجهة القضايا الأمنية. بالرغم من أنني أتفق بأنه لا يمكن اعتباره دليلًا كاملًا. هل مواقع ووردبريس ليست آمنة؟ من الأمور الأكثر شيوعًا عند الناس الّذين يبحثون في موضوع أمن وورد بريس أنهم يشكّون في كونه آمن ومحمي في الأصل، أو أنهم يسمعون من شخص أخر يؤكد لهم على أنه ليس كذلك، وهذه تعد شائعات وشكوكًا حول أمان ووردبريس، هناك الكثير ممن يحاولون استغلال جهلك بآلية حماية ووردبريس فيحاولون بيعك منتجاتهم على الإنترنت سواءً أكانت خطة لأمن ووردبريس، أو خطة استضافة، أو حتى برنامج يدير كلمات المرور، لذلك هدفي في هذا المقال إزالة الغموض عن أفضل ممارسات الأمنية لحماية موقعك المبني على ووردبريس. وحتى نجيب على هذا التساؤل يجب علينا معرفة أن ووردبريس عبارة عن نظام نظام إدارة محتوى إلكتروني مفتوح المصدر ويتميز بأنه واسع وله العديد من الطرق للتركيب على مواقع الاستضافة وضبط إعداداته وتخصيصه والّتي يمكن أن تكون بأكثر من طريقة. وانطلاقًا من هذا التنوع نجد في بعض الأحيان مواقع ووردبريس غير آمنة والّتي من المحتمل أن تُخترق خلال الـ 24 أو 48 ساعة القادمة. وإذا كنا نتحدث عن النظام الأساسي الموجود في الملف المضغوط والّذي يمكنك تنزيله من الموقع الرسمي للوردبريس فإنه وبرأيي الشخصي آمن تمامًا. بشكل عام، كلّ يوم هناك احتمال 0.00001٪ بأن تظهر مشكلة غير مسبوقة في ووردبريس والّتي يمكن أن يتعرض من خلالها هذا النظام للهجوم على مستوى العالم. في الوقت الحالي تأتي مواقع ووردبريس مع ميزة التحديث التلقائي المدمج، وبإمكان شركات الاستضافة تحديث إصدار موقعك في حال فشل التحديث التلقائي. فهذا أمر بالغ الأهمية، لأنه يمكن أن يكون الإصدار 5.2.4 يواجه مشكلة أمنية ما والّتي سيكتشفها شخص ما في الأشهر أو السنوات القادمة. فتعمل منظمة ووردبريس جاهدة على تحديث نظامها باستمرار، فتصدر مثلًا إصدار 5.2.5 وتصدر بعدها إصدار 5.2.50 والّذي يعمل على إصلاح تلك المشاكل أو الثغرات الأمنية المكتشفة في الإصدار الّذي قبله. يمكن عد ووردبريس آمن وذلك عندما تحافظ على تحديث موقعك بأحدث إصدارات ووردبريس المتاحة. والتأكد من أن موقعك موجود على استضافةٍ موثوقٍ بها، والقيام بتثبيت التحديثات الموثوقة للإضافات الموجودة لديك، وعندها فقط يمكنك عد ووردبريس آمنًا تمامًا. ولكن عندما لا تقوم بأي شيء مما سبق، فمن المحتمل وبشدة أن يكون موقعك غير محمي بل ومُعرض للاختراق أيضًا. شبكة الروبوتات المقرصنة (Botnets) عمومًا إن المواقع المبنية على ووردبريس ليست معرضة للخطر بسبب الهجمات الفردية من أشخاص مجهولين وإنما الخطر الحقيقي يأتي من الهجمات الآلية. بالتأكيد هناك احتمال كبير أن تجد ولو شخص واحد يحاول الوصول لموقعك. ولكنه لن يشكل خطرًا مثل الهجمات الآلية. بالطبع هذا في حال ما لم تكن أغضبت أحدًا من عباقرة الاختراق. في الحقيقة إن التهديد الحقيقي لمواقع ووردبريس والّذي يعرضها للخطر هو الهجمات الآلية والّتي تُبرمج من قِبل أشخاص يحاولون الاستيلاء على موقعك، فيتحكم هؤلاء الأشخاص بالهجمات باستخدام الحواسيب، ولذلك ليس هنالك أشخاص يحاولون بأنفسهم الدخول إلى موقعك بواسطة أسماء مستخدمين وكلمات مرور مختلفة وإنما هي عملية آلية تُدار بواسطة الحواسيب. وغالبًا ما تجد هؤلاء الأشخاص (المخترقين) يكتبون برامج للبحث عن مواقع ووردبريس على شبكة الإنترنت بالكامل ومحاولة تسجيل الدخول إلى جميع هذه المواقع الّتي يجدونها. وهم نفسهم أيضًا من يحاولون استغلال الثغرات الأمنية المعروفة في الإضافات. ويكون هدفهم في أغلب الأحيان اختراق الكثير من الحواسيب لتكوين شبكة كبيرة من الحواسيب المقرصنة والّتي تسمى شبكة الروبوتات المقرصنة وتسمية الروبوتات جاءت من كون جميع هذه الحواسيب تخدم المخترق دون اختيارها تمامًا مثل أجهزة الروبوت وبمجرد أن ينضم جهاز جديد لشبكة الروبوتات فإن المخترق يستطيع التجسس على صاحب الجهاز دون أن يشعر صاحب الحاسوب بذلك. ويكون هدف هذا المخترق إما جمع المعلومات من خلال التجسس وسرقة معلوماتك السرية مثل بطاقات الائتمان والحسابات البنكية أو شن هجمة حجب الخدمة الموزعة (DDos Attack)، أو إرسال رسائل مزعجة (Spam)، أو تنفيذ مهام أخرى يريدها المخترق. وهنا يبرز لدينا مفهوم واضح لنموذج التهديد الخاص بموقع ووردبريس الخاص بك إذ أنه يتكون في الغالب من هجمات تلقائية مُدارة من قِبل أشخاصٍ بواسطة عناصر غير بشرية، ولذلك فإن القيام ببعض الممارسات الأمنية أمر مهم للغاية. لماذا تتعرض مواقع ووردبريس للاختراق؟ يجب في معظم الأحيان أن تقلق بشأن الهجمات الآلية، بدلًا من التركيز على هجمات الأفراد، وأن تعرف السبب وراء محاولتها الهجوم والسيطرة على الموقع الخاص بك. فهذا الموقع الصغير بالنهاية موقع ويب خاص بك أنشئ لأحد هذه الأسباب: مشاركة صورك الخاصة مع الأصدقاء. بيع الحاجات الخاصة بك على الإنترنت. الكتابة والتدوين للترفيه والسعادة …إلخ. هذه الروبوتات في الحقيقة لا تستهدف موقع ووردبريس الخاص بك إلا إذا كان موقعك يحتوي على بعض الثغرات الأمنية والّتي ستكون مدخلها للسيطرة عليه. وتختلف الأهداف الّتي تدفع المخترقين للاستيلاء على موقعك ولكن من أكثر الأسباب شيوعًا للاستيلاء المواقع هي كالتالي: إعادة توجيه حركة المرور إلى مواقعهم. الاستيلاء على تفضيلات محرك البحث الخاص بك المتصدر في جوجل (SEO rankings) لسرقة عصير الروابط ووضعها في صفحاتهم. تشويه الموقع للغطرسة والتفاخر أو لإيصال رسائل سياسية. التنزيل بالتنقل - مما يتسبب بجعل زوار موقعك ينزلون برامج ضارة وفيروسات …إلخ. فتح ثغرات في الموقع لاستغلالها لاحقًا. الوصول إلى بيانات موقعك، وقوائم المستخدمين، وسجل عمليات الشراء …إلخ. إرسال رسائل عبر البريد الإلكتروني عشوائيًا - فإذا كان موقعك يمكنه إرسال بريد إلكتروني، فيمكنهم استخدام ذلك لإرسال رسائل البريد الإلكتروني الخاصة بهم أيضًا. استخدام موارد الخادم (وحدة المعالجة المركزية في الغالب) لإجراء عمليات حسابية مفيدة والّتي تقوم غالبًا بتعدين العملات الرقمية مثل البتكوين. إن هذه الهجمات الآلية هي الّتي يتوجب عليك التفكير بها والحذر منها. فمن المحتمل جدًا أن يكون المتسلل ذكيًا ولديه أسبابه الدافعة اختراق موقعك والّتي من الممكن أنني لم أذكرها. ما أحاول توضيحه هو أن موقعك غير محمي حمايةً كافية. قد تظن أنه لا يوجد لديك قائمة مستخدمين مثيرة للاهتمام، ولكن عليك أن تضع ببالك أن هناك خادمًا يمكن استخدامه لتعدين العملات الرقمية أو لإرسال رسائل البريد المزعج، وذلك باعتبار أن لكل خادم وحدة معالجة مركزية، ولذا فإن الغالبية العظمى من الخوادم تستطيع إرسال بريد إلكتروني. الحماية المتكاملة للموقع يعتمد أمان مواقع ووردبريس على تكامل مجموعة من المسائل، وليس على مسألة واحدة بحد ذاتها. وفي الحقيقة إن ووردبريس قائم على مجموعة كبيرة ومتنوعة من التقنيات، وهذا ما يجب علينا أخذه بالحسبان فمن الممكن أن تحتوي بعض الأجزاء الّتي يتكون منها ووردبريس على ثغرات. على سبيل المثال يستخدم ووردبريس لغة PHP (وهي لغة برمجة صُمّمت أساسًا لتطوير وبرمجة تطبيقات الويب) في بناء نواته الأساسية ومن الممكن إن تحتوي بعض إصداراتها أحيانًا على ثغرات أمنية. ولكن إذا كنت تُحدّث الإصدارات بانتظام، فلن تؤثر عليك. أما إذا لم تكن كذلك، فقد تؤثر المشكلات الّتي تحتوي عليها لغة PHP على الموقع الخاص بك. هناك احتمال بأن يكون هناك شيء آخر في ممارسات الأمان الرئيسية الخاصة بالموقع غير صحيحة. فمثلًا إذا كانت خبرتك قليلة في ضبط إعدادات خوادم الويب، فقد تفعل أشياءً تظن بأنها ضرورية لتشغيل شيء ما في موقعك دون أن تدرك أنها ستؤدي إلى آثار أمنية سلبية عميقة. وهذا يعد أحد الأسباب الرئيسية الّتي تجعلني أعطي أكبر قدر من الأهمية لضبط إعدادات خوادم الويب للمحترفين. هذا لا يعني أنه لا يمكنك إعداد الخادم الفعلي الخاص بك بنفسك، أو شراء خادم افتراضي خاص VPS بسعر رخيص وضبط إعداداته باستخدام سكربت إعداد كتبه شخص آخر. ولكن فعليًا عليك أن تكون على ثقة ودراية في الاعدادات الّتي تشغّل ووردبرس فوقها. لأنك إذا قمت بضبط موقعك ضبطًا صحيحًا، ولم تنتبه لوجود خطأ في ضبط إعدادات قواعد البيانات MySQL، فعندها لا تزال أشياء سيئة جدًا ممكن أن تحدث لموقعك. تجنب توصيات الأمان الشائعة غير الضرورية قبل ذكر ما يجب عليك اتباعه، لابد أن أذكر لك أمرًا أرى أنه من الواجب ذكره هنا إذ شاع استخدامه رغم قلة الفائدة المرجوة منه. معظم هذه النصائح لا تضر نسبيًا بالموازنة مع فائدتها إذا أدت عملها. ولكن سبب عدم توصيتي لك باستخدامها هو أن فوائدها وإن وجدت ستكون قليلة جدًا. ومن الممكن أن تتجاهل الممارسات الأمنية الأكثر قيمة منها عندما تنفق على هذه الممارسات وقتًا طويلًا لا تستحقه بالموازنة مع المكاسب الّتي تحققها. لديك مطلق الحرية بالقيام بها أو لا. ومن هذه التوصيات ما يلي: 1. إخفاء نسخة ووردبريس سنبدأ بأكثر نصيحة مشهورة وهي إخفاء رقم إصدار ووردبريس الخاص بك، أو إخفاء بأنك تعمل على ووردبريس من الأساس وهذا صعب جدًا القيام به أما الخيار الأول فهو في الأساس لا قيمة له. عمومًا من الصعب إخفاء أنك تقوم بتشغيل ووردبريس، ومعظم الأشخاص يحاولون القيام بذلك يغيرون وسم في مواقعهم أو التخلص منها. ولكن أي مخترق ذكي لن يعتمد فعليًا على ذلك، فذكر أحد مشرفي المواقع الّتي تعمل على أنظمة مختلفة غير ووردبريس بأنه لاحظ أشخاص يبحثون في موقعهم كما لو أن موقعهم مبني على ووردبريس بالفعل. إخفاء إصدار ووردبريس الخاص بك أقل حساسية. جوهر الموضوع هنا هو أن الهجمات الآلية ستقوم بالتحقق في كون موقع ووردبريس الخاص بك موجود على إصدار معروف ومحدّث من ووردبريس، ومن ثم يهاجمك إذا كان إصدار ووردبريس مدرجًا في قائمة الإصدارات المستهدفة. شخصيًا لم أسمع بأي أحد ذكر أن الهجمات الآلية تعمل بهذا الأسلوب، ولا أدري لماذا يفترضون مثل هكذا افتراض. اعتقد أن هذه النصيحة تفقد قيمتها لو كان موقعك محدّث بأحدث إصدار من ووردبريس، لذلك هنا تكمن أهمية تحديث الإصدار بدلًا من إخفاء رقم إصدار ووردبريس. 2. تعطيل الواجهتان البرمجيتان XML-RPC و JSON REST في هذا الصعيد أشعر أن الحديث موجه إلى الأشخاص الّذين يستخدمون موقعهم كواجهة تطبيقات برمجية (API) فقط، فليس هناك أي ضرر حقيقي في تعطيل الواجهة البرمجية XML-RPC لووردبريس (وهو بروتوكول إجراء عن بعد يستخدم صيغة الترميز XML لتمثيل البيانات ويستخدم HTTP لنقل البيانات ولتنفيذ الإستدعاءات). تُستخدَم الواجهة XML-RPC بواسطة عدة أدوات مثل أداة Marse edit وتطبيق ووردبريس للهواتف المحمولة وأدوات أخرى مشابهة من أجل الاتصال بموقعهم. وأصبح من الممكن الآن لتلك الأدوات الاعتماد على واجهة التطبيقات البرمجية Restful (وهي طريقة للتخاطب بين الأنظمة على الإنترنت والّتي تعتمد على بروتوكول HTTP وعلى الدوال المعروفة في هذا البروتوكول وتعتمد أيضًا على خاصية أن كلّ خدمة يمكن الوصول إليها عن طريق رابط فريد) أصبح من الممكن أيضًا استخدام هذه الأدوات للاعتماد على واجهة Rest بدلًا من XML-RPC، على الرغم من أن أغلب هذه الأدوات لم تُنشأ لهذا الغرض. وتعد واجهة التطبيقات البرمجية JSON REST إضافة جديدة إلى ووردبريس، ويمكن أن تلبي استخدامات مشابهة للتقنيات السابقة. بالإضافة إلى ذلك، تعمل ووردبريس داخليًا على الاستفادة من الواجهة JSON Rest للميزات الّتي توفر تفاعلًا أفضل. إن كلا الطريقتين السابقتين تعد من الطرق الّتي يمكن للمهاجم تتبعها بعد موقعك. وهناك سجلات معروفة للأشخاص الّذين يقومون بهذه الهجمات. والسبب وراء إدراجها في قائمة الأشياء الّتي لا أوصي بها، هو أن كلا النوعين من الهجمات ليسا شائعين للغاية. كما أن واجهات التطبيقات البرمجية (APIs) مفيدة للغاية، وربما تجد شيئًا ما في المستقبل يكون مفيدًا لموقعك وعندما تحاول القيام به على موقعك فتجد أنه لا يعمل أو يتسبب في تعطل موقعك وذلك لأنك حظرت واجهات التطبيقات البرمجية بشكل كامل. إذًا الحل الأفضل هو الحصول على جدار حماية على الإنترنت، ومن الناحية المثالية أن يكون مضيف موقعك يحتوي على جدارٍ ناري. وإن لم يكن الحال كذلك، فيمكنك شراء جدار ناري بنفسك من شركات مثل Sucuri (وهي شركة أمنية معروفة، ولديها شهرة كبيرة على شبكة الإنترنت. توفر جدار حماية قوي للمواقع المبنية على ووردبريس، وتعمل على حماية المواقع من هجمات الحرمان من الخدمة [DDos Attack]، وغيرها من تهديدات أمان مواقع ووردبريس) أو Cloudflare وكلاهما يوفر خدمات متشابهة. وباستعمال هذا الجدار يجب أن يتوقف احتمال حدوث حركة زيارات غير طبيعية لواجهات التطبيقات البرمجية، وعمومًا أن تدع الأشياء الجيدة فقط تمر عبرها هو أمر غير مضمون ولكنه يعتبر حلًا أفضل من إيقافها بالكامل. 3. تغيير بادئة قاعدة بيانات في مرحلة ضبط إعدادات ووردبريس يوجد حقل نصي يتطلب بادئة لقاعدة البيانات، والقيمة الافتراضية له تكون _wp. يخزن ووردبريس بياناتك، والمنشورات والتعليقات والمنتجات وغيرها في جداول قاعدة البيانات والّتي تبدأ بهذه البادئة. ما أريد توضيحه هنا هو أن القيمة الافتراضية أقل أمانًا ويجب عليك بدلًا من ذلك جعلها مثل _jadfl، والّتي من غير المحتمل أن تمتلكها مواقع ووردبريس أخرى. في هذه الحالة احتمالية حمايتك بتطبيق هذه الخطوة قليل. بدلًا من ذلك يجب عليك أن تحمي نفسك بشكل خاص من هجوم حقن قواعد البيانات (SQL-injection) لأنه غالبًا من خلاله تُخترق مواقع وورديريس، ولكن لكي يحدث ذلك، يجب أن يكون إصدار ووردبريس أو مكون إضافي يحوي على ثغرة تُمكّن المخترق من حقن قواعد البيانات من خلالهم. لذلك إذا كانت الإضافات أو القوالب في ووردبريس محدّثة، فلن تحصل فعليًا على فائدة إضافية من ذلك. وعلاوةً على ذلك أنه من السهل جدًا إذا كان لديك ثغرة أمنية تتيح هجوم حقن قواعد البيانات في موقعك، فإن المهاجم سيستعرض جداول قاعدة البيانات الخاصة بك، ولكن ليس بالسرعة العمياء على افتراض أن المنشورات موجودة في جدول باسم wp_posts، بل إن عدد المهاجمين الّذين يفترضون أن هذا هو موقع جدولك ولا يتحققون منه ربما يكونون نسبة مئوية صغيرة من الأشخاص الأذكياء بما يكفي للقيام بالهجوم في المقام الأول. أعتقد أنه إذا كنت تقوم بضبط إعدادات موقع جديد، ووجدت طريقة سهلة لتغيير بادئة قاعدة البيانات الخاصة فغيّرها مباشرةً، ولكن إذا كان موقعك يستخدم بادئة _wp لقواعد البيانات، فلا تُضع وقتك في محاولة القيام بذلك وخاصةً إن لم تكن مطور ويب. 4. إعادة تسمية عنوان URL لتسجيل الدخول إلى ووردبريس النصيحة الأخيرة الّتي اعتقد أنها لا تستحق الاهتمام فعلاً هي نقل عنوان URL لتسجيل الدخول الخاص بك من example.com/wp-login.php إلى شيء مثل example.com/my-secret-url-for-puppy-login. تم تسهيل ذلك من خلال بعض إضافات الأمان في ووردبريس وهي ليست مضيعة للوقت تمامًا. لا أستطيع أن أنكر فكرة أنه إذا تعذر على المهاجم العثور على صفحة تسجيل الدخول الخاصة بك، فلن يتمكن حتى من محاولة شن هجوم القوة الغاشمة (Brute force) على كلمات المرور الخاصة بك (سنتحدث لاحقًا في هذا المقال عن هذه النقطة بالتفصيل). المشكلة في هذه النصيحة هي أنه إذا وجد أحد المهاجمين صعوبة في العثور على صفحة تسجيل الدخول لموقعك، فربما ستجد أنت أو زملاؤك صعوبةً في ذلك أيضًا. إذا كانت لديك طريقة آمنة وموثوق بها لوضع إشارة مرجعية (Bookmark) على الصفحات الّتي تجدها سهلة الاستخدام، ففعل ذلك مباشرة فأنت بهذه الخطوة تحظى ببعض الفوائد الأمنية المتواضعة. ولكن مرة أخرى، فإن الفائدة ليست كبيرة إذا قمت ببعض الأشياء الأخرى بشكل صحيح. إذا كانت جميع الحسابات على موقعك تملك كلمات مرور جيدة، فمن غير المرجح أن ينجح هجوم تخمين كلمة المرور. أضف إلى ذلك أنه إذا كان لديك طريقة ما للحد من عدد محاولات تسجيل الدخول الفاشلة لحساب معين في موقعك ضمن فترة زمنية قصيرة، فأنت بذلك تقلص احتمال نجاح هجوم تسجيل الدخول. وهذان العاملان معًا - كلمات مرور جيدة وقيود على عمليات تسجيل الدخول الفاشلة - أكثر قيمة من عنوان URL الغامض لتسجيل الدخول إلى موقعك. أفضل الممارسات العامة لتأمين مواقع ووردبريس هناك بعض المهام الشائعة الّتي يجب عليك القيام بها إذا كنت تريد أن تحافظ على أمان موقعك. يوجد العديد منها ولكن سأسرد لك أبرزها وما يحب عليك فعله دائمًا. هذه القائمة ليست مرتبة حسب الأهمية، ولكن نسبيًا عند قيامك بالخطوات الخمس الأولى، فستكون متقدمًا على 50٪ من مواقع ووردبريس الأخرى على الإنترنت. ومن غير المحتمل أن تواجه مشكلة أمان لا يمكن إصلاحها في موقعك، وإذا كنت تطبق جميعها، فسأتفاجأ حقًا إذا تعرض موقعك للاختراق. هذا بالطبع ليس ضمانًا، بل إحتمال أرجحه من واقع خبرتي الشخصية. 1. استعمال كلمات مرور قوية الطريقة الأساسية الّتي يمكن من خلالها مهاجمة كلّ موقع من مواقع ووردبريس على الإنترنت هي طريقة بسيطة وهي تخمين الروبوتات كلمات المرور للحساب بانتظام، على كلّ موقع من مواقع ووردبريس على الإنترنت تقريبًا. فإذا كان لديك كلمة مرور سيئة فاحتمال أن تفقد حسابك كبيرة، وبالتالي موقعك. بعض كلمات المرور السيئة مثل: password p455w0Rd [اسم الموقع] charlieiscute هناك العديد من المدارس الّتي تشرح أهمية قوة كلمة المرور وطريقة جعلها كذلك. لكن جميعنا نتفق على أن هذه الكلمات سيئة إلى حد كبير، نظرًا لاحتمالية أن يخمنها المهاجم إذا علِم المنهجية المتبعة في صنع كلمة المرور. كلمة "password" وما شابهها -حتى تلك البدائل الرائعة الممزوجة بالمحارف والأرقام- تكون دائمًا على رأس قائمة البرامج المخصصة لتخمين كلمة المرور الّتي يجب تجربتها. أسماء المواقع هي أيضا مرشحة بشكل كبير للتخمين. وبعبارة "[اسم الموقع]"، أقصد مثلا مثل "academy.hsoub" أو "hsoub" ككلمة مرور لحساب المدير. تتميز "charlieiscute" عن غيرها بأنها ليست كلمة مأخوذة من القاموس، وهي أطول من سابقتها. كما أنها أيضًا فريدة من نوعها بعض الشيء، ولكن ليس من الصعب تخمينها لأنها تستخدم أحرفًا صغيرة فقط، فلا توجد فيها أحرف كبيرة أو أرقام أو رموز. رغم أنه من غير المرجح أن يعرف المهاجم ذلك، ولكن عندما تقوم بتضمين فئات أخرى من المحارف، فإنك تقلل من احتمال قيام نظام التخمين العشوائي بتخمين كلمة المرور بشكل أسرع. خطوات لتعزيز قوة كلمات المرور للووردبريس هناك مجموعة من الخطوات تحسّن أمان كلمة المرور في موقع ووردبريس. ولكن سأذكر هنا أهم ثلاثة خطوات: امتلك كلمة مرور يصعب تخمينها: كلمات المرور الجيدة تكون صعبة القراءة ومعقدة مثل "RP@yu3ohd&LtpwzM}rWhgp6#AtY6HAzjvxKnz9zh". كلمة المرور هذه طويلة وعشوائية وفريدة من نوعها. وهنا احتمالية تخمينها منخفضة. ولأنها فريدة من نوعها - وهي طبعًا ليست كلمة المرور الخاصة بي على Facebook أو ArtWorld أو RandomInternetReseller أو أي شيء آخر- فكشف كلمة المرور الخاصة بموقع ووردبريس لن يعرض بقية الحسابات للخطر. إبطاء هجمات التخمين لكلمة المرور: بشكل افتراضي، يستطيع الروبوت تخمين 1000 كلمة مرور في الدقيقة (تقريبًا) على موقع ووردبريس الخاص بك. وهذا العدد كبير أو مرتفع. إذا منعت الأشخاص من الاستمرار في محاولة تسجيل الدخول بعد عدد معين من المحاولات الفاشلة مثل ثلاث أو أربع أو خمس مرات، أياً كان - فسوف تبطئ من هجمات كثيرة محتملة. الطريقة المفضلة للقيام بذلك هي تقييد محاولات تسجيل الدخول. استعن بهذا الدليل السريع والّذي يشرح كيفية الحد من محاولات تسجيل الدخول بخطوات تفصيلية. استخدم مدير كلمات المرور: إذا نفذت الخطوة الأولى، فسوف تتعب بسرعة من كتابة كلمة المرور هذه، أو ربما تنساها. بهذه اللحظة ستحتاج برنامج يدير لكلمات المرور. هناك أنواع كثيرة جدًا من مديري كلمات المرور الّتي بإمكاني إخبارك باستخدامها ولماذا. ولكنني شخصيًا أستخدم 1Password ولكن يمكنك استخدام أي مدير كلمات مرور أخر مثل KeePass و LastPass والّتي تعدّ من البرامج المشهورة أيضًا. 2. تحديث إصدار ووردبريس وجميع الإضافات والقوالب الطريقة الأخرى الّتي من المؤكد أن كلّ موقع من مواقع ووردبريس على الإنترنت مضمون للهجوم من قبل الهجمات الآلية المنتشرة وهو استغلال الثغرات المعروفة في البرامجيات الّتي تشغّل على الموقع. سواءً أكنت تستخدم Revolution Slider أو TimThumb أم لا أو أحد إضافات ووردبريس الشهيرة، فمن المحتمل أن تحاول الروبوتات الاستفادة من المشاكل المكتشفة في الإصدار القديم من هذه الإضافات. ولذا فإن هناك فرصة جيدة للاختراق بالرغم من أن هذه الطرق تعدّ قديمة جدًا، إلا أن الروبوت تحاول مهاجمتك عن طريقها. لهذا السبب يجب عليك أن تبقي إصدار ووردبريس محدّثًا باستمرار. بالإضافة إلى كلّ القوالب الّتي تستخدمها أيضًا. من الشائع حاليًا أن تحوي إضافات أو قوالب ووردبريس على ثغرات أمنية أكثر من نظام ووردبريس بحد ذاته، مع العلم أنه يمكن أن يكون الثلاثة يحتوون على ثغرات. عندما يدرك باحث خارجي أو مطور داخلي أن هناك مشكلة أمنية في بعض الشيفرات البرمجية في مواقعهم، فتقع على مسؤوليته أن يُنشىء نسخة جديدة من الموقع لا تحتوي على هذه الثغرة الأمنية. ومعظم المستخدمين لنظام ووردبريس يجيدون القيام بذلك. لذلك السبب، يجب عليك أن تؤدي دورك عندما يقدمون تحديثات بالإصلاحات أو ترقيعات الأمان فيجب عليك تثبيتها مباشرةً. ويمكنك جعل ووردبرس يثبت هذه التحديثات نيابةً عنك، أو يمكنك القيام بذلك بنفسك، أو حتى باستخدام إضافة مخصصة لإدارة موقعك الخاص مثل ManageWP. بعض الاستضافات توفر ذلك نيابةً عنك، ويمكنك أيضًا استئجار شخص ما للقيام بذلك إن لم تكن تستطيع فعلها بنفسك. ولكن يجب عليك فعل ذلك إذا كنت جادًا بشأن أمان وحماية موقعك. 3. إنشاء نسخ احتياطية بشكل دوري وتلقائي من أفضل الأشياء الّتي يمكنك القيام بها للحفاظ على أمان موقعك هو التأكد من حماية بياناتك في حال حدث أي مكروه لموقعك أو بياناتك. أي يجب أن يكون لديك على الأقل نسخة احتياطية حديثة واحدة لموقعك يمكنك استخدامها لإعادة بناء موقعك أو استعادته في حالة حدوث اختراق أو تخريب. أعتقد أن الطريقة الوحيدة للحصول على نسخة احتياطية حديثة وموثوقة من موقعك هي القيام بذلك تلقائيًا. نظرًا لأننا بشر، وومن الممكن جدًا أن نخطئ، أو ننسى، فغالبًا إذا طلبتُ منك أن تضغط 1-10 نقرات في موقعك للحصول على نسخة احتياطية محدّثة، فغالبًا لن تقوم بذلك. لهذا السبب يجب أن تحاول استخدام الإضافات الجاهزة الّتي توفر النسخ الاحتياطي. ويجب أن يكون هذا النسخ الاحتياطي مثاليًا أيضًا بحيث يحتوي على كلّ ملفاتك من صور وملفات PDF وقاعدة البيانات وجميع المعلومات المهمة في موقعك. وستقوم الإضافات نسخة احتياطية لبياناتك ووضعها على خادم آخر غير الخادم الّذي تستخدمه، لأن ذلك سيجعل موقعك أكثر أمانًا في حال استطاع المتسلل التسلل إلى خادمك فلن يستطيع بسهولة الوصول إلى الخادم الّذي يحوي النسخ الاحتياطية الخاصة بك. نظرًا لأن هذا منشور حول أمان ووردبريس وليس عن النُسخ الاحتياطية، فلن أملأ لك قائمة كاملة بجميع الخيارات المتاحة للنسخ الاحتياطي ولكنني أظن أن Updraft Plus و Jetpack/Vaultpress و Backup Buddy الّتي تتبادر إلى ذهني حاليًا هي حلول جيدة للنسخ الاحتياطي. 4. التحقق من موقعك وفحصه بانتظام في الحقيقة أن هذه الخطوة مهمة ولكنها لن تستطيع أن تمنع حدوث شيء سيء لموقعك، والسبب في أنه من المهم أن تبقى على اطلاع على حالة موقعك كي تمنع حدوث أشياء أسوأ. فعندما ترى أشياء غريبة تحدث على موقعك، فمن السهل إصلاحها مبكرًا. ويصبح الأثر أقل سوءًا - لأن محرك البحث Google سيحذر الزائرين من موقعك في حال اكتشافه أي مشكلة أمنية تسبب الضرر للزوار - وتخفف الضرر الّذي سيلحق بموقعك. إذا لم تُسجل الدخول بانتظام إلى موقعك لتفقده، فيجب عليك على الأقل التأكد بانتظام بأن الشكل الّذي يظهر للزبائن يبدو جيدًا. وإذا لم تكن قادرًا على القيام بذلك، فيجب أن تتأكد على الأقل من متاح ويمكن الوصول إليه وذلك باستخدام خدمات خارجية (مثل Pingdom). تتأكد هذه الخدمات من إمكانية استعادة نسختك الاحتياطية عند الدخول الجديد للموقع مباشرةً في حالة حدوث شيء سيء أو غريب. هذا في أسوأ الحالات، ولكنه ضروري لصحة الموقع على المدى الطويل. 5. تجنب الشيفرات البرمجية المقرصنة أو المسروقة هذه ليست خطوة مهمة للغاية لمعظم الناس. فمعظمنا يستخدم إصدار ووردبريس من الموقع الرسمي أو من المطورين الّذين استأجرناهم أو من البائعين الآخرين ذوي السمعة الطيبة. فإذا كنت تقوم بكل هذه الأشياء فليس عليك القلق من هذه النقطة. في الغالب الّذي يجب عليه أن يقلق هم الأشخاص الّذين يحاولون توفير المال عن طريق قرصنة الإضافات، أو القوالب، وما إلى ذلك أو الأشخاص الّذين يحاولون توفير المال عن طريق الحصول على الشيفرات البرمجية من "نوادي الإضافات" أو غيرها من المصادر منخفضة الثقة. إذا قمت بذلك، فمن المحتمل أن تكون هذه الشيفرات مجانية وذلك لأن شخصًا ما وضع ثغرة بداخله تتيح له التسلل إلى موقعك في المستقبل. في بعض الأحيان، يمكن للإضافات المجانية لووردبريس المتاحة في الموقع الرسمي أن يستولى عليها من قِبل جهات شريرة وتجري عمليات سيئة لها. ولكنه ولحسن الحظ نادر الحدوث، وفريق المشرفين على حماية ووردبريس يقوم بمراقبة وإصلاح أي مشكلة. ولكن إذا كنت قلقًا بشأن هذه النقطة فإن أفضل حلّ هو أن تكون أكثر تركيزًا ومعرفةً في الإضافة الّتي ستقوم بتثبيتها. 6. تعزيز أمان تسجيل دخول للووردبرس بواسطة HTTPS و 2FA واحدة من أكثر الأشياء شيوعًا في نصائح الأمان للووردبريس هي الحصول على شهادة SSL. إنها بالتأكيد خطوة جيدة. ولكن الشيء المهم الّذي يدركه عدد قليل جدًا من الأشخاص هو أن HTTPS / SSL لا تؤمن حقًا موقع ووردبرس الخاص بك، ولكن تؤمن الاتصال بين موقعك ومن يتصفحه؛ لذلك فهو ذو قيمة عالية، ولكن هذا ليس كلّ شيء. في صميم الموضوع، يجب اعتبار HTTPS بمثابة نفق آمن بين موقعك وأي شخص يشاهده في متصفح الويب. يمكن اختراق اتصالات HTTP بواسطة أي من الأجهزة المختلفة الموجودة بين الزائر والخادم. أما مع HTTPS، فإنه من المستحيل تقريبًا أن يتطفل هؤلاء الأشخاص على الاتصال. لذا فإن الفائدة المباشرة من HTTPS هي أن بيانات تسجيل الدخول الخاصة بك من اسم المستخدم وكلمة المرور أو بيانات اعتماد بطاقة الائتمان أو أي بيانات حساسة ستكون أكثر أمانًا. ومن غير المرجح أن يرى شخص ما يتطفل على الشبكة اللاسلكية الموجودة في المقهى على كلمة المرور الخاصة بك إذا كنت تستخدمها. لذلك يجب أن تحصل على شهادة HTTPS بكل الوسائل. لا تعتقد أن ذلك يؤمن تثبيت ووردبريس الحقيقي على الخادم بأي طريقة من الطرق، لأنه ليس كذلك. وهناك خطوة أخرى جيدة ولكنها غير مريحة إلى حد ما وهي استخدام الاستيثاق الثنائي (Two-Factor Authentication) والّذي يعرف اختصارًا 2FA وتثبيته على موقعك. عند القيام بذلك، ستحتاج إلى ثلاثة أشياء لتسجيل الدخول بدلًا من شيئين. عادةً ما نقوم بتسجيل الدخول إلى موقع ووردبريس باستخدام اسم المستخدم أو عنوان البريد الإلكتروني وكلمة المرور.ولكن مع الاستيثاق الثنائي، فستحتاج أيضًا إلى "معلومة أخرى"، وبما أن الهواتف أصبحت أساسيات الحياة في عصرنا الحالي فيمكننا إرسال رسائل نصية إليه للتحقق من المستخدم. في كلتا الحالتين، فأنت أكثر أمانًا لأن معرفة كلمة المرور الخاصة بك لن تكون كافية للاستيلاء على حسابك وسيحتاجون إلى رمز مكون من 4 أو 6 أرقام أيضًا والّذي سيرسل إلى هاتفك. هناك مجموعات متغيرة باستمرار من الإضافات الّتي تعطي هذه الميزة في ووردبريس حاليًا، فمثلًا Jetpack تقدم هذه الخدمة أو بإمكانك استخدام إضافة مستقلة. يمكنك الرجوع إلى مقالة كيف تستعمل SSL وHTTPS معووردبريس ومقالة كيف تحمي حسابك على مدوّنةووردبريسباستعمال الاستيثاق الثنائي2FA لمزيد من المعلومات. 7. التحكم في إمكانية الوصول لموقعك من المهم جدًا أن تكون على دراية وفهم كامل بما يتعلق بمن توفر لهم خدمة الوصول إلى موقعك ومعرفة الممارسات الأمنية اللازمة لتأمين ذلك. ويمكن عدها مجموعة من الخطوات إذ أنها أشمل من كونها خطوة واحدة. ومن بعض الخطوات الّتي اعتقد أنها مناسبة تحت هذا العنوان هي كالتالي: إعطاء كلّ مستخدم صلاحية الوصول إلى حساب مخصص مثلًا لديك جمال وسارة كلاهما يسجلان الدخول إلى موقعك باستخدام حساب مستخدم مثل المسؤول. هنا عليك تمييز كلّ منهم بحساب خاص به وصلاحيات خاصة بهم وذلك باستخدام إدارة صلاحيات المستخدمين وأدوارهم في ووردبريس. على سبيل المثال امنح الكاتب جمال حساب "محرر"، وامنح سارة حساب "المدير" والّذي يملك كافة الصلاحيات على الموقع. يعتمد هذا على مبدأ يسمى الحد الأدنى من الأمتيازات والّذي ينص على إعطاء القدرة على الوصول إلى المعلومات والموارد الضرورية فقط من الموقع أي أقل قدر من الصلاحيات الضرورية. لا تمنح المستخدمين إمكانية إنشاء حسابات بكلمات مرور ضعيفة إذا اتبعت النصيحة السابقة، فستريد أيضًا التأكد من عدم استخدام جمال وسارة كلمات المرور ضعيفة. يمكنك القيام بذلك عن طريق سؤالهم أو إخبارهم بعدم جواز ذلك عن طريق وضع رسالة خطأ تخبرهم عدم جواز ذلك أو عبر آلية معينة تمنع كلمات المرور الضعيفة بأوامر مثل استخدام إضافة مخصصة لذلك. لا تعطي صلاحيات الوصول للكثيرين، أعني بذلك المزيد من النصائح الحساسة، والّتي أصبحت في الغالب أسهل مع إضافات الكثيرة المتوفر لأمان ووردبريس، وإذا كنت مطورًا، قم بتعيين بعض ثوابت للووردبريس مثل عدم السماح بتحرير الملفات في منطقة إدارة الووردبرس، والتأكد من أنك لا تمنح الأشخاص حق الوصول إلى مخدم الموقع الويب أو الوصول إلى SFTP (وهو بروتوكول نقل البيانات بشكل آمن باستخدام التشفير من دون نقل أي بيانات خالصة في الملفات النصية ويعدّ أكثر أمانًا من بروتوكول FTP لنقل الملفات) ولا أي صلاحية لا يحتاجون إليها أي حافظ بذلك على إطار الحماية العام. 8. تثبيت الإضافات الأمنية الخاصة بووردبريس يوجد العديد من الإضافات الأمنية الجيدة في ووردبريس، والّتي تعد عاملًا مساعدًا جيدًا في العديد من الاحتياجات الأمنية الشائعة الّتي أدرجتها أعلاه (وبعضها أيضًا يساعد في ما لم أذكره أو ما عددته في الفئة غير المفيدة). من أسماء الإضافات الّتي تتبادر إلى ذهني سريعًا هي Sucuri و WordFence و Jetpack Protect و iThemes Security. وهناك العديد من الإضافات الأخرى، فهذه القائمة لا يمكن اعتبارها قائمة نهائية، وأتمنى منك ألّا تأخذ درجة الترتيب المذكورة كمقياس للأهمية. الإضافات تساعد في العمل فهي تفعل أشياء كثيرة مثل إنشاء سجلات الوصول، وتعمل على حظر واستبعاد الجهات السيئة المعروفة، وتعمل أيضًا على الحد من محاولات تسجيل الدخول الفاشلة، وتساعدك على إصلاح المزيد من المسائل الداخلية مثل مشاكل أذونات الملفات على موقعك. وتوفر لك الإضافات WordFence و Sucuri آلية مفيدة لمنع دخول الهجمات الآلية وإدارة حركة الزيارات الخبيثة إلى الموقع ومن ثم التخلص منها بما يسمى "جدار حماية تطبيق الويب". ختامًا الحصول على الأمن هو أمر صعب للغاية، ولكن أتمنى أن أكون وفقت في توضيح بعض الأمور المهمة، صحيح أن المقال طويل نوعًا ما، فهو يشتمل على 5000 كلمة، ولكن إذا ركزت بشكل جيد فيها، أو قرأت البنود الّتي ذُكرت بعناية، فسوف تتعلم الكثير وهذا ما أتمناه. بالرغم من أنني وكما ذكرت منذ البداية لا أشعر أن هذا العنوان الّذي وضعته "الدليل الكامل في أمن مواقع ووردبريس" عنوانًا دقيقًا، إلا أنني أعتقد بأني ذكرت بعض من أفضل الممارسات الأمنية لأصحاب مواقع ووردبريس. إن المسائل الأمنية في ووردبريس بشكل عام موضوع يحتاج منك فقط أن تحدّث إصدار ووردبريس وجميع الإضافات والقوالب باستمرار ويحتاج أيضًا لاستخدام كلمات مرور قوية ومن هنا تكون بقية النصائح الأمنية مفيدة ولكن غير ضرورية لأن ووردبريس بحد ذاته آمن تمامًا ولكن النسخ الاحتياطي يجلب لك الثقة في آمان موقعك مثل مشاهدة موقعك واستباق الخطوات في حال حدوث مكروه وضبط صلاحيات الوصول للمستخدمين والحصول على إضافات مخصصة للحماية ولكن العديد من النصائح الّتي تسمعها من الناس بالرغم من أنها ليست عديمة الفائدة، إلا أنني لا أنصح بقضاء بعض الوقت في التركيز عليها. وأخيرًا إن جعل موقعك آمنًا تمامًا إلى الأبد أمر مستحيل بضغطة أو خطوة واحدة. وإنما هي مهمة متغيرة ومتطورة باستمرار. حاول أن تكون على اطلاع بأخر الأخبار عن أمن ووردبريس، وفكر في انعكاس ذلك على موقعك، وستتعلم أكثر بكثير مما تعلمته في هذا المقال أو في أي مقال أخر يتحدث حول هذا الموضوع. ترجمة -وبتصرف- للمقال The Complete Guide to WordPress Security لصاحبه David Hayes
  6. سأقوم بتعليمكم كيفية تصميم رسومات فكتور لبطاقات الأمان كتلك الموجودة في الطائرات وكما هو موجود في موقع Airtoons.com. اتبع الخطوات في هذا الدرس لتتعلم كيفية تصميم إحدى هذه البطاقات. إذا لم تكن فنّانًا موهوبًا بإمكانك الاستعانة بصورة فوتوغرافية كقاعدةٍ لبدء الرسم عليها. يمكنك الحصول على إحدى هذه الصور عبر الإنترنت أو استخدام بعض الأصدقاء ليقفوا في الوضعيات المطلوبة وتصويرهم. افتح هذه الصورة في الفوتوشوب. بعض الأشخاص يمكنهم استيراد هذه الصور مباشرة إلى الإليستريتور والعمل عليها ولكنني وجدت العمل باستخدام أداة القلم في الفوتوشوب أكثر سهولة. استخدم أداة القلم لتتبع مسار حول الشخصية ويمكنك تخفيف بعض التفاصيل إذا لزم الأمر مثل طيّات وثنيات الملابس. استمر برسم المزيد من المسارات حول شكل الوجه، هنا استخدمت تقديري الخاص لمنح التصميم طابعًا خاصًا يجعله أنيقًا بنظري. استمر في رسم المزيد من التفاصيل لملامح الوجه الرئيسية كالعينين والحاجبين والأنف والفم. حدّد جميع المسارات باستخدام أداة تحديد المسار Path Selection Tool وانسخ Ctrl+C ثم انتقل إلى برنامج الإليستريتور وألصق ما تم نسخه هناك Ctrl+V اختر خيار Compound Path. ارسم تحديدًا حول المسار ثم ألغِ تجمّع هذه المجموعة Ungroup عبر الاختصار Shift+Ctrl+G. حدّد فقط المسار الكامل الخارجي ثم أضِف حدودًا بقيمة 3pt. ثم حدّد المسارات التي تميّز التفاصيل الداخلية ثم أضِف لها حدودًا بقيمة 2pt. الآن حدّد المسارات التي تميّز عناصر الوجه ثم أضِف حدودًا بقيمة 1pt. في هذه المرحلة قم برسم أية تفاصيل إضافية تراها ضرورية كبؤبؤ العيون. ارسم بشكل تقريبي مسارًا كاملًا داخل نقاط وحدود الوجه. اختر مخطط ألوان للرسم، أنا اخترت ثلاثة ألوان زرقاء ولوّنتُ الوجه باللون الأفتح بينها. اضغط ]+Ctrl+Shift لإرسال الشكل الملوّن للخلف تحت بقية العناصر. كرّر العملية لرسم أشكال تقريبية للشعر والحواجب ولوّنها بلون أزرق داكن أكثر من السابق. استمر بذات الطريقة مع بؤبؤ العينين وانتقل إلى باقي أجزاء الشخصية مع تلوين كل جزء باللون المناسب. الآن أصبح لدينا رسم أنيق لشخصية التصميم. بكل الأحوال التصميم لن يكتمل بدون رسم باقي توضيحات الخطر في تعليمات السلامة. سنقوم برسم شكل اللهب عبر البدء برسم شكل بيضوي ثم اختر أداة القلم واستمر بالضغط على Alt وانقر على النقاط العلوية والسفلية وحرّك مزالج البيزير الخاصة بها لجعلها منحنية أكثر. استخدم أداة التحديد المباشر Direct Selection Tool لتحديد وتدوير منحنيات البيزير بشكل فردي للنقاط اليمنى واليسرى حتى 45 درجة (استمر بالضغط على Shift أثناء ذلك). انسخ وألصق الشكل عدّة مرّات، مع تدوير بعض النسخ وعكس البعض الآخر عبر القائمة Object > Transform حتى تحصل على شكل النار باللهب الذي تعمل عليه. لوّن أشكال النار بمجموعة من الألوان البرتقالية ابتداءً من الدرجة الداكنة في قاعدة شكل النار وحتى اللون الأفتح في قمة الشكل. امنح شكل النار حدودًا بقيمة 2pt. لإنهاء الرسم حدّد الجميع Ctrl+A ثم انسخها وعُد بعد ذلك مجدّدًا إلى برنامج الفوتوشوب وألصق ما تم نسخه في ملف جديد. ضاعف الطبقة عبر سحبها إلى أيقونة طبقة جديدة أسفل لوحة الطبقات. اذهب إلى القائمة Filter > Pixelate > Color Halftone لمنح التصميم انطباع الطباعة الرخيصة المستخدمة عادة في مثل هذا النوع من المطبوعات الخاصة بتعليمات السلامة. في خيارات Color Halftone أدخل القيمة 4px للقياس الأدنى ثم غيّر القنوات إلى 45. غيّر خصائص المزج إلى Overlay مع درجة تعتيم 50% ثم ضاعف الطبقة الأساسية وضعها فوق جميع الطبقات. غيّر خصائص مزج هذه الطبقة إلى Multiply وخفّف التعتيم حتى تظهر نقاط الطبقة التي تحتها. أنهِ هذا التصميم عبر رسم الخلفية الأساسية المؤلفة من ألوان البيج باستخدام أداة التحديد المضلعة Polygonal Lasso Tool على طبقة خاصة بها أسفل جميع الطبقات. يمكنك الاستمرار برسم المزيد من بطاقات السلامة المماثلة لهذا التصميم عبر استخدام ذات الخطوات. المهم هو البدء بأوضاع عامة مع التفكير بتعابير وملامح الوجه. ترجمة -وبتصرّف- للمقال: Create Your Own Spoof Airplane Safety Illustrations لصاحبه: Chris Spooner
  7. يُوفّر التّحكّم بخادوم لينكس الخاصّ بك فرصةً لتجربة أشياء جديدة والاستفادة من صلابة ومرونة هذه المنصّة الرّائعة. مع ذلك يجب على مسؤولي خواديم لينكس الانتباه إلى أنّ ميزات المنصّة لا تُغني عن التّدابير اللّازم اتّخاذها عند التّعامل مع حاسوب متّصل بالشّبكة، من أجل تأمينه وحمايته. تندرج العديدُ من الموضوعات الأمنيّة في الفئة العامة المسمّاة “أمان لينكس”، كما توجد العديد من الآراء حول مستوى الأمان المناسِب لخاودم لينكس. الفكرة الأساسيّة الّتي يجب العمل عليها هي تقرير نوعيّة الإجراءات الأمنيّة المطلوبة لحماية نظامك. قبل ذلك، ولكي تتّخذ القرارات المناسبة؛ يجب أن تعيَ الأخطار الموجودة والمقايضات الممكنة ثمّ تحدّد نقطة التّوازن بين قابليّة الاستخدام والأمان. يهدف هذا المقال إلى مساعدتك في اتّخاذ قراراتك عبر عرض بعض الإجراءات الأمنيّة الأكثر شيوعًا في البيئات الّتي تستخدم خواديم لينكس. يُرجى الانتباه إلى أنّ هذه القائمة غير شاملة ولا تتطرّق للإعدادات المنصوح بها؛ لكنّها ستُحيل إلى روابط توفّر موارد أكثر وتناقش مدى أهميّة بعض العناصر في نُظُم مختلفة. استخدام الجدران النّاريّة Firewalls لمنع الوصول ضبط وإعداد جدار ناريّ إحدى الخطوات الأسهل الّتي ينبغي تطبيقها في عمليّة تأمين الخادوم. تعمل الجدارن النّارية كحاجز بين شبكة الإنترنت وخادومك الخاصّ؛ حيثُ تُراقب حركة البيانات من وإلى الخادوم، ثمّ تقرّر السّماح لها بالمرور أو منعها. تعتمد الجدران النّاريّة في قراراتها (السّماح بمرور بيانات أو منعها) على قواعد يضبطها مدير النّظام. في العادة، يستعمل الخادوم بضع منافذ Ports للخدمات المُرخَّصة بينما تبقى بقيّة المنافِذ غير مستعملة ويجب أن توضع وراء جدار ناريّ يمنع جميع الطّلبات الموّجهة عبر هذه المنافذ من الوصول. تسمح لك الجدران النّاريّة بتجاهل البيانات الّتي لا تنتظر توجيهها إليك، وفي بعض الحالات تقييد الوصول إلى الخدمات الفعليّة الموجودة في النّظام. تُوفّر قواعد الجدران النّاريّة المعدّة بطريقة صحيحة أساسًا جيّدًا لتأمين الشّبكة. نستعرض في الفقرات التّاليّة بعض برامج الجدران النّاريّة. 1- UFW يهدف UFW (اختصار ل Uncomplicated FireWall، أي جدار ناريّ غير معقّد) إلى توفير حماية جيّدة دون الاعتماد على صيّاغة معقَّدة للقواعد كما تفعل بقيّة الحلول. UFW هو في الواقع، مثله مثل أغلب الجدران النّاريّة على لينكس، برنامج للتّحكّم في الجدار النّاري المُضمَّن في نواة لينكس، والمسمَّى Netfilter. يُعدّ UFW حلًّا سهلًا لغير المعتادين على استخدام الجدران النّاريّة على لينكس؛ وهو عمومًا حلّ جيّد. يُمكن الحصول على معلومات أكثر عن UFW، ومعرفة كيفيّة تفعيله وضبطه عبر اتّباع هذا الرّابط. 2- IPTables ربّما يكون IPTables الجدار النّاري الأكثر شهرة في لينكس. IPTables هو الآخر وسيلة لإدارة Netfilter. يتوفّر برنامج IPTables منذ زمن بعيد، وتعرَّض للكثير من التّدقيق خلال هذه الفترة للتّأكّد من أمانه. توجد نسخة مخصّصة للإصدار 6 من عناوين IP، تُسمّى IP6Tables. ستلاقي على الأرجح إعدادات تتضمّن IPTables أثناء إدارة خواديم لينكس. قد تكون صيّاغة القواعد صعبة الفهم من الوهلة الأولى، إلّا أنّ IPTables يبقى أداةً قويّة يُمكن إعدادها عن طريق مجموعة قواعد مرنة جدًّا. يشرح هذا الدّرس إعداد بعض قواعد IPTables على توزيعتيْ أوبنتو ودبيان؛ في ما تجد في الرّابط التّالي شرحًا لاستخدام IPTables على توزيعات CentOS، وFedora و RHEL. 3- IP6Tables يُستخدَم IPTables للتّعامل مع قواعد تتضمّن عناوين IP من الإصدار الرّابع IPv4؛ إذا كان الإصدار السّادس IPv6 مفعّلًا على خادومك فيجب أن تنتبه أيضًا إلى إصدار IPTables المكافئ: IP6Tables. يحتفظ الجدار النّاري المضمَّن في نواة لينكس، Netfilter، بجداول منفصلة لكلّ من البيانات المنقولة عبر IPv6 وIPv4. من هذا المنطلق، تتحدّد القواعد المطبَّقة على حزمة بيانات بإصدار IP المستخدَم. يعني هذا، بالنّسبة لمدير النّظام، أنّه يتوجّب إعداد مجموعة قواعد جديدة خاصّة بالإصدار 6 من عناوين IP، عندما يكون مفعَّلًا. تتشارك قواعد IP6Tables نفس الصّيّاغة مع قواعد IPTables؛ وهو ما يعني أنّ إضافتها لين يُشكّل مشكلًا كبيرًا. ينبغي فقط الانتباه إلى أنّ القواعد يجب أن تُطابق البيانات المُمرَّرة عبر IPv6 حتى تعمل بالطّريقة المطلوبة. 4- NFTables يُعدّ IPTables المعيار Standard في عالم الجدران النّاريّة على بيئات لينكس منذ بعض الوقت، على الرّغم من ذلك أُضيف مؤخَّرًا جدار ناريّ جديد يُدعى NFTables إلى نواة لينكس. يقف خلف الجدار الجديد نفس الفريق الّذي يُطوِّر IPTables. ويهدف - على الأمد الطّويل - إلى الحلول محلّ IPTables. يُحاول جدار NFTables مراعاة صيّاغة أكثر قابليّة للقراءة من صيّاغة IPTables، ويدعم قواعد تتعامل مع كلا الإصداريْن IPv4 وIPv6 في نفس الأداة. يُتوقَّع أن يكون NFTables حاضرًا على معظم أو كلّ توزيعات لينكس في الأمد القريب، لذا يُستحسَن محاولة التّعوّد على استخدامه. استخدام SSH للولوج الآمن عن بعد ستحتاج لطريقة للدّخول عن بعد، إن لم تكن لديك فرصة الوصول المباشر إلى الخادوم. الإجراء المتبَّع في هذه الحالة للدّخول بشكل آمن هو استخدام بروتكول معروف يُسمَّى SSH (اختصار لSecure SHell). يُوفّر SSH التّعميّة من طرف إلى طرف End-to-end encryption، إمكانيّة تمرير بيانات غير مؤمَّتة عبر اتّصال آمن، إعادة توجيه الخادوم X (واجهة المستخدِم الرّسوميّة عبر الشّبكة)، وأكثر. بالمختصر إذا أردت الاتّصال عن بعد بخادومك فيجب أن يكون SSH خيّارك الأوّل. على الرّغم من أنّ بروتوكول SSH نفسه آمن جدًّا وتعرَّض للكثير من التّدقيقات الأمنيّة، إلّا أنّ خيّارات الإعداد يُمكن أن تُعزّز أو - على العكس - تقوِّض أمان الخدمة. سنناقش هذا الأمر أدناه. 1- كلمة السّرّ في مقابل مفاتيح SSH لتسجيل الدّخول يُتيح SSH العديد من طرق الاستيثاق Authentication؛ أشهر طريقتيْن هما كلمة السّرّ ومفتاح SSH. كلمة السّرّ، من بين الخيّارين أعلاه، هي الأيسَر للمستخدم ولكنّها في نفس الوقت الأقلّ أمانًا. يسمح الاستيثاق عن طريق كلمة السّرّ لمحاولي التّسلّل باستمرار تخمين كلمة السّر إلى أن يُعثَر على الكلمة المُناسبة. تُسمّى آليّة الاختراق هذه بهجمات القوّة القاسيّة Brute force attack ويُمكن تشغيلها آليًّا بيُسر عن طريق بعض الأدوات البرمجيّة. على الجانب الآخر، تعمل مفاتيح SSH على توليد زوج من المفاتيح، عموميّ وسرّي. يُنشَأ مفتاح عموميّ Public key ليُستعمَل في تحديد هويّة المستخدِم، ويُمكن تشاركه دون مشاكل. لا يُمكن استعمال المفتاح العموميّ لأغراض أخرى غير تعريف مستخدِم، والسّماح بالولوج بمفتاح سرّي Private key موافق للمفتاح العموميّ المستعمَل. ينبغي أن لا يُنشَر المفتاح السّريّ، حيث يُستخدَم في التحقّق من المفتاح العموميّ المُصاحِب له. المبدأ هوّ أن تُضيف مفتاح SSH العموميّ الخاصّ بك إلى الخادوم وسيُسمح لك بالولوج باستعمال المفتاح السّري المُصاحِب للمفتاح العموميّ المُضاف إلى الخادوم. هذه المفاتيح على درجة من التّعقيد تجعل استخدام هجمات القوّة القاسيّة لتخمينها غير عمليّ. إضافةً لذلك، يمكن تحديد عبارة سرّ Passphrase طويلة إلى المفتاح السّرّيّ وهو ما يعني أمانًا أكبر. راجع هذا الدّرس لمعرفة المزيد حول الاتّصال عن طريق على خادوم أوبنتو SSH. الرّابط التّالي يشرح كيفيّة توليد مفاتيح SSH على خادومك. 2- إعداد fail2ban لحظر عناوين IP الخبيثة تُساعد أداة fail2ban في تأمين إعدادات SSH، ومن ثَمَّ الأمان العامّ للخادوم. تعمل fail2ban على مراقبة السّجلّات Logs لتحديد إمكانيّة أن يكون من يُحاول الاتّصال عبر SSH غيرَ مصرَّح له بالدّخول؛ في هذه الحالة يعمل fail2ban على حظر حركة البيانات القادمة من عنوان IP المُستخدَم. يسمح إعداد إستراتيجيّة صحيحة لاستخدام fail2ban بتحديد الأجهزة الّتي تحاول باستمرار - دون نجاح - الولوج إلى الخادوم، وإضافة قواعد للجدار النّاريّ لتجاهل حركة البيانات القادمة من هذه الأجهزة لفترة من الوقت. تُستعمل هذه الطّريقة دائمًا لعرقلة هجمات القوّة القاسيّة، إذ أنّ المهاجِم سيحتاج عندما يُحظَر، للانتظار بعض الوقت قبل معاودة الكرّة. يكفي هذا الأمر عادةً لإحباط من يحاول الدّخول عبر هذه الهجمات. يُمكن التّعرّف في الرّابط على كيفيّة ضبط fail2ban على أوبنتو. توجد أيضًا أدلّة مشابهة لكل من Debian وCentOS. ضبط نظام للكشف عن التّطفّل Intrusion Detection System لكشف عمليّات الدّخول غير المرخَّصة يجب الانتباه إلى وجوب إعداد آليّة لكشف الاستخدام غير المرخَّص. يُمكن أن تعدّ تدابير وقائيّة لكنك تحتاج أيضًا إلى معرفة هل نجحت هذه التّدابير أم لا. تعمل أنظمة الكشف عن التّطفّل، IDS، على تجميع معطيات عن الإعدادات والملفّات عندما يكون النّظام في وضعيّة يُعرف بأنّها جيّدة؛ ثمّ يُجري النّظام مقارنات بالمعطيات المُسجّلة لرصد تغييرات على الملفّات أو الإعدادات. سنرصد في ما يلي بعض أنظمة الكشف عن التّطفّل. 1- Tripwire يُعدّ Tripwire أحد أنظمة الكشف عن التّطفّل الأكثر شهرة. يُنشئ Tripwire قاعدة بيانات بملفّات النّظام ويحمي ملفّات الإعداد والملفّات التّنفيذيّة بمجموعة من المفاتيح. تُشعِر عمليّاتُ تشغيل Tripwire التّاليّةُ لتعيين تفاصيل الإعداد وتحديد الاستثناءات بأيّ تحريف يحصُل للملفّات الّتي يُراقبها. يُقدّم Tripwire نموذجًا مرِنًا لإعداد السّيّاسات يسمح بتشكيل خواصّه لتتلاءم مع بيئة العمل. يُمكن بعدها ضبط Cron ليُشغّل Tripwire دوريًّا؛ بل ويُمكن إعداد إشعارات تُرسَل عبر البريد الإلكترونيّ عند وجود أنشطة غير طبيعيّة. اقرأ المزيد عن إعداد Tripwire. 2- Aide برنامج Aide هو خيّار آخر لأنظمة الكشف عن التّطفّل. يُشبه Aide في عمله Tripwire؛ حيثُ ينشئ قاعدة بيانات ثمّ يقارن الوضعيّة الحاليّة للنّظام مع قيّم محفوظة أثناء وجود النّظام في وضعيّة جيّدة. عند ملاحظة أي اختلاف يُمكن للبرنامج إشعار مسؤول النّظام. يوفّر كلّ من Aide وTripwire حلولًا متشابهة لنفس المشكل. راجع التّوثيق Documentation وجرّب الاثنين ثم اختر ما يُناسبك. اقرأ الدّليل التّالي لمعرفة كيف تستخدم Aide لكشف التّطفّل. ### 3- Psad يختلف برنامج Psad عن البرنامجيْن السّابقيْن من حيث إنّه يهتمّ بجزء مختلف من النّظام. بدلًا من مراقبة ملفّات النّظام، فإن Psad يُراقب سجلّات الجدار النّاريّ لمحاولة رصد النّشاطات غير الطّبيعيّة. على سبيل المثال، إذا وُجد من يبحث عن ثغرات Vulnerabilities في النّظام عن طريق فحص المنافذ Ports فإنّ Psad يُمكن أن يرصُد هذا النّشاط ويغيّر قواعد الجدار النّاريّ ديناميكيًّا لحظر المستخدِم المعنيّ. يُمكن لهذا البرنامج تسجيل مستويات عديدة للتّهديدات ثمّ يعتمد في تجاوبه مع التّهديدات على خطورة المشكل الّذي يواجهه. توجد أيضًا إمكانيّة إرسال بريد لمدير النّظام. اقرأ الدّرس التّالي للمزيد حول استخدام برنامج Psad. ### 4- Bro برنامج Bro هو وسلة أخرى لضبط نظام كشف عن التّطفّل يعتمد على حركة البيانات في الشّبكة. Bro هو في الأصل إطار عمل Framework لمراقبة الشّبكة؛ يُمكن استخدامه كنظام للكشف عن التّطفّل أو لأغراض أخرى مثل تجميع إحصائيّات عن الاستخدام، التّحرّي عن المشاكل أو التّعرّف على أنماط Patterns معيَّنة. يُقسًّم نظام Bro إلى طبقتيْن. الطّبقة الأولى تُراقب النّشاطات وتُولّد أحداثا Events. أمّا الطّبقة الثّانيّة فتشغّل الأحداث المُولَّدة تبعًا لسيّاسات تُملي ما يتوجّب عمله. يُمكن لهذه الطّبقة إرسال تحذيرات، تنفيذ أوامر، مجرّد تسجيل الحالة أو إجراءات أخرى. يشرح الدّليل التّالي كيفيّة استخدام Bro لكشف التّطفّل. ### 5- RKHunter لا يعدّ برنامج RKHunter - تقنيًّا - برنامجًا للكشف عن التّطفّل، إلّا أنّه يعمل بنفس المبادئ الّتي تستخدمها أنظمة الكشف عن التّطفّل المعتمدة على مراقبة ملفّات النّظام، مثل Tripwire وAide. يهدف RKHunter في الأساس إلى كشف برامج Rootkits (برامج تُساعد المهاجمين في إخفاء ما ينفّذونه من عمليّات على النّظام) والبرمجيّات الخبيثة Malwares المعروفة. على الرّغم من ندرة الفيروسات على لينكس إلّا أنّ البرمجيّات الخبيثة وبرامج Rootkits موجودة ويُمكن أن تُصيب الخادوم وتُعطي إمكانيّة ولوج مستمرّ لمستغلّي الثّغرات. يُنزّل RKHunter قائمة بالثّغرات المعروفة ويتأكّد من عدم وجودها على النّظام؛ كما أنّه يحذّر مدير النّظام في حال كشف إعدادات غير آمنة في بعض التّطبيقات الشّائعة. يوجد في الرّابط التّالي دليل لاستخدام RKHunter على أوبنتو. General Security Advice تُساعد الأدوات المذكورة أعلاه في تأمين أجزاء من نظامك، إلّا أنّ الأمان لا يأتي فقط من إعداد أداة ثمّ نسيانها. يظهر الأمان في بعض العقليّات؛ ويمكن أن يتحقّق عبر الاجتهاد، التّدقيق والانخراط في عمليّة التّأمين. توجد بعض القواعد الّتي يُساعد اتّباعها في وضعك على الطّريق الصّحيح للاستخدام الآمن لنظامك. 1- انتبه إلى التّحديثات وحدّث الخادوم بانتظام يُعثر على الثّغرات طول الوقت وفي كلّ أنواع البرامج الّتي يمكن أن تكون لديك على الخادوم. يؤدّي مطوّرو التّوزيعات على العموم عملًا جيّدًا في الاطّلاع على آخر الثّغرات الأمنيّة والحرص على إرسال تحديثاتها إلى المستودعات Repositories؛ إلّا أنّ توفّر التّحديثات الأمنيّة في المستودَع لا يعني أنّ الخادوم آمن ما لم تُنزّلها وتثبّتها عليه. على الرّغم من أن الخواديم تستفيد من إصدارات مجرَّبَة جيّدًا، إلّا أنّ التّرقيعات الأمنيّة يجب أن تُعدَّ حرِجة ويجب تثبيتها فور صدورها. تُوفّر العديد من التّوزيعات قوائم بريديّة خاصّة بالأخبار الأمنيّة ومستودعات أمنيّة منفصِلة لتنزيل التّرقيعات الأمنيّة. 2- كن حذِرًا عند تنزيل برامج من خارج القنوات الرّسميّة يلتصق الكثير من المستخدمين بالبرامج المتوفّرة في المستودعات الرّسميّة لتوزيعاتهم، كما أنّ أغلب التّوزيعات تُوفّر حزمًا Packages موَقَّعة Signed. يُمكن عمومًا للمستخدمين الوثوق في مطوّري التّوزيعات والتّركيز على التّهديدات الأمنيّة في البرامج المُتحصَّل عليها من خارج المستودعات الرّسميّة للتّوزيعة. يُمكن أن تثق في الحزم القادمة من التّوزيعة الّتي تستخدمها أو من مواقع ويب رسميّة، لكن انتبه إلى إمكانيّة وجود خطر أمنيّ، إلّا إذا كنت تدقّق كل جزء من البرامج بنفسك. يرى الكثيرون أنّ مستوى الخطر هذا مقبول. على العكس من ذلك، يمكن للبرامج المتحصَّل عليها من مستودعات عشوائيّة أو من مستودعات PPA (اختصار لPersonal Package Archives، أرشيف حزم شخصية) يُشرف عليها أشخاص أو منظَّمات غير معروفة، يمكن أن تكون خطرًا محدِقا. لا توجد قاعدة عامّة، ولكن يمكن عدّ أغلب البرامج المتوفّرة في المستودعات غير الرّسميّة آمنة؛ لكن يجب الحذر والانتباه إلى وجود خطر في كلّ مرة تثق في طرف ثالث. تأكّد من قدرتك على شرح السّبب الّذي يجعلك تثق في مصدر البرنامج. في النّهاية الخطر على أمان نظامك مشكل أكبر من عدم توفّر بعض وسائل الرّاحة في التّعامل مع النّظام. 3- اعرف خدماتك وعرّف حدود استخدامها على الرّغم من أنّ الهدف الأساسيّ من تشغيل خادوم هو توفير خدمات، إلّا أنّه يجب تحديد الخدمات المُشغّلة على الجهاز وعدم تشغيل خدمات لا تحتاجها. انظُر إلى كلّ خدمة مُفَعَّلة على أنّها ناقل للخطر؛ وحاول التّخلّص من كلّ ناقل خطر حسب استطاعتك بحيث لا تؤثّر على الوظائف الّتي تُريد توفيرها عبر الخادوم. يعني هذا أنّك يجب أن تُعطّل خادوم العرض X إذا لم توجد شاشة متّصلة بالخادوم ولم تكن تشغِّل أي برامج رسوميّة (برامج الويب لا تدخل في هذا التّصنيف). يُمكن اتّخاذ إجراءات مشابهة في مجالات أخرى؛ لا تستخدمُ طابعة؟ عطِّل خدمة lp. لا تشارك الملفّات مع وندوز؟ عطِّل خدمة samba. توجد طرق عديدة لمعرفة الخدمات المُشغَّلة على جهازك. يعرض المقال التّالي لطريقة إنشاء قائمة بالخدمات المُفَعَّلة. 4- لا تستخدم FTP، استعِض عنه بSFTP. قد تكون هذه النّقطة من أكثر الأمور صعوبة للتّطبيق على كثير من المستخدمين؛ لكن بروتوكول FTP غير آمن منذ بداياته. كلّ معلومات الاستيثاق تُرسل في نصوص صِرفة (غير معمّاة) Plain-text، وهو ما يعني أنّ باستطاعة كلّ من يراقب الاتّصال بين الجهاز المحلّي وبين الخادوم معرفة بيانات الاستيثاق. توجد حالات قليلة يُمكن أن يكون فيها استخدام FTP مبرَّرا. إذا كنت تشغّل مرآة تنزيل عموميّة، مجهولة وللقراءة فقط؛ فFTP ربّما يكون خيّارًا مناسِبا. يُمكن أيضًا استخدام FTP عند نقل ملفّات بين حاسوبيْن موجوديْن في شبكتيْن محميتْن بجدار ناريّ، وتثق في أن الشّبكتيْن آمنتان. يجب أن تستخدم في أغلب الحالات الأخرى بديلًا آمنًا. تأتي حزمة SSH ببروتكول بديل يُسمَّى SFTP، يُستخدَم بنفس طريقة استخدام FTP ويوفّر نفس درجة الأمان الّتي يُوفّرها بروتوكول SSH. يشرح درس كيف تستخدِم SFTP لنقل الملفّات بأمان إلى خادوم بعيد طريقة التّعامل مع SFTP. 5- اضبُط سيّاسات حسّاسة لأمان المستخدمين توجد عدّة خطوات يُمكن تطبيقها لتأمين النّظام عند إدارة المستخدِمين. الاقتراح الأوّل هو تعطيل دخول المستخدِم الجذر Root user. يُعدّ حساب المستخدِم الجذر مقصِدًا جذّابًا لمحاولات التّسلّل نظرًا لوجوده على كلّ الأنظمة المتوافقة مع معيار POSIX، وللامتيّازات اللّامحدودة الّتي يتمتّع بها في النّظام. تبدو فكرة تعطيل دخول المستخدم Root، بعد إعداد الوصول عن طريق sudo أو إذا كنت مرتاحًا مع أمر su، تبدو فكرةً جيّدة. لا يوافق الكثيرون على هذه الفكرة؛ جرّب جدوائيّتها بالنّسبة لك. توجد إمكانيّة تعطيل الدّخول عن بعد لحساب root ضمن إعدادات SSH، كما يُمكن تعطيل الدخول للحساب الجذر محلّيًا. يُمكن أيضًا إضافة تقييدات على الحساب ضمن ملف الإعداد etc/securetty/، أو ضبط برنامج Shell للمستخدم الجذر بحيث يُشير إلى برنامج آخر ممّا ينتج عنه تعطيل وصول root إلى Shell. خيّار آخر يتمثّل في إعداد قواعد PAM (أو Pluggable Authentication Modules، وهي طبقة لتمكين الاستيثاق بين خدمات مختلفة على الأنظمة الشّبيهة بيونكس) لتقييد ولوج المستخدم الجذر. توفّر RedHat مقالًا رائعًا حول كيفيّة تعطيل دخول المستخدم الجذر. يتوجّب أيضًا العمل على تنفيذ سيّاسة أمنيّة يُنشَأ بموجبها حساب وحيد لكلّ مستخدم أو خدمة، ثمّ يُعطى الأذون Permissions الدّنيا اللّازمة لعمله. امنع الوصول إلى كلّ ما لا تحتاج الوصول إليه ولا تعطِ للمستخدمين امتيّازات لا يحتاجون إليها. هذه السّيّاسة مهمّة جدًّا، ففي حالة اختراق مستخدِم أو خِدمة فلن يؤدّي ذلك إلى تأثير الدومينو الّذي يسمح لمهاجمٍ بالحصول على صلاحيّات واسعة في النّظام. تُساعد طريقة التّقسيم هذه في عزل المشاكل الأمنيّة، بحيث لا يتسبّب مشكل أمنيّ لدى حساب واحد في تعريض كامل النّظام للخطر. يجب كذلك التّأكّد من تعطيل حسابات المستخدمين عندما تنقضي الحاجة إليها؛ مثلًا، عند إلغاء تثبيت برنامج. 6- انتبِه لإعداد الأذون تمثّل صلاحيّات الملفّات مصدرًا كبيرًا للجزع لدى كثير من المستخدمين؛ فقد يكون من الصّعب العثور على نقطة توازن بحيث يُمكن للمستخدِم أداء عمله دون أن يعرّض نفسه أو النّظام للخطر. يحتاج هذا الأمر إلى الانتباه والتّفكير في كلّ سيناريو ممكن. يجب التّفكير في سيّاسة أمنيّة تضبُط umask (الخاصّيّة الّتي تحدّد الأذون الافتراضيّة للملفّات والمجلّدات الجديدة) بما يُناسِب؛ الأمر الّذي يُشكّل خطوة كبيرة على الطّريق الصّحيح. المقال التّالي يتطرّق لكيفيّة ضبط umask. القاعدة العامّة هي ألّا تضبط إذن الكتابة على أي ملفّ إلّا إذا كان ذلك ضروريًّا، خصوصًا إذا أمكن الوصول للملفّ عبر الإنترنت، لما قد ينتُج عنه من عواقب. إضافةً لذلك، يجب ألّا تُعدّل على بت SGID أو SUID، إلّا إذا كنت تدرك جيّدًا ما تفعل. تحقّق أيضًا من أنّ كلّ الملفّات لديها مالِك ومجموعة. يتغيّر إعداد الأذون كثيرًا حسب الحاجة، ولكن يجب دائمًا محاولة العثور على طريقة لتلبيّة الحاجة بأقل أذون ممكن. ينبغي الانتباه إلى سهولة الخطأ في إعداد الأذون، ووجود العديد من النّصائح الخاطئة حولها على الإنترنت. كيف تؤمِّن برنامجًا تستخدمه لا يكفي حجم هذا المقال للتّطرّق لخصوصيّات تأمين كلّ نوع من البرامج أو الخدمات، إلّا أنّه توجد العديد من الدّروس والأدلّة المتاحة على الشّبكة. يجب أن تقرأ النّصائح الأمنيّة لكلّ برنامج تريد إعداده للعمل على جهازك. بالنّسبة لبرامج الخادوم الشّهيرة مثل خواديم الويب ونُظُم إدارة قواعد البيانات، توجد مواقع ويب وقواعد بيانات كاملة مخصَّصة للأمان. على العموم، يجب أن تقرأ حول تأمين كلّ خدمة قبل إعدادها وتشغيلها. خاتمة يجب أن تكون لديك الآن معرفة جيّدة بالإجراءات الأمنيّة الممكن إعدادها على خادوم لينكس. حاولنا في هذا الدّليل التّعرّض للعديد من المجالات ذات الأهميّة الكبيرة، ولكن في نهاية المطاف ستحتاج اتّخاذ قرارات بنفسك. يتوجب عليك، بوصفك مديرًا للنّظام؛ تحمّل مسؤوليّاتك في تأمين الخادوم. تأمين الخادوم ليس إجراءً يُؤدّى مرةً واحدة، لكنّه عملّية مستمرّة تتضمّن فحص النّظام باستمرار، إعداد الحلول، التحقّق من السّجلاّت والتّنبيهات، إعادة تعريف الاحتيّاجات، …إلخ. اليقظة واستمرار تقويم ومراقبة الإجراءات المتَّبعة أمور ضروريّة للحفاظ على الأمن. ترجمة بتصرّف لمقال An Introduction to Securing your Linux VPS لصاحبه Justin Ellingwood.
  8. ينصبّ الاهتمام عند إعداد بنية تحتيّة Infrastructure - عادةً - على جعل التّطبيقات تعمل بالطّريقة المرجوّة. ما لا ينتبه له الكثيرون أنّ التّركيز على عمل التّطبيقات دون الاهتمام الكافيّ بالاحتيّاجات الأمنيّة للبنية التحتيّة يُمكن أن تنتُج عنه نتائج كارثيّة في حال حدوث عمليّات اختراق. سنشرح في هذا الدّليل بعض التّصرّفات الأمنيّة الأساسيّة الّتي ينبغي تنفيذها قبل إعداد تطبيقاتك أو أثناءه. مفاتيح SSH تُستخدَم مفاتيح SSH بديلًا عن الاستيثاق المعتمد على كلمات السّرّ Password-based authentication للاتّصال بخادوم SSH؛ وهي عبارة عن زوج من المفاتيح، علنيّ Public وسريّ Private، تُنشأ قبل الاستيثاق. يحتفظ المستخدم بالمفتاح السّرّي ولا يُشاركه مع أيّ كان، في حين يُمكن مشاركة المفتاح العلنيّ. يجب وضع المفتاح العلنيّ للمستخدِم ضمن مجلَّد خاصّ على الخادوم حتى يُمكنَ استخدامُ الاستيثاق عن طريق مفاتيح SSH. يطلُب الخادوم، عند محاولة المستخدِم الاتّصال به، دليلًا على أنّ العميل Client يمتلك المفتاح السّري الموافق للمفتاح العلنيّ الموجود على الخادوم. يستخدم عميل SSH طريقة تُثبت للخادوم امتلاكه للمفتاح السّرّي للمستخدِم؛ فيسمح الخادوم للمستخدِم بالولوج دون كلمة سرّ. 1- كيف تحسّن مفاتيح SSH من الأمان؟ تُعمّى Encryption تمامًا كلّ إجراءات الاستيثاق، بما فيها الاستيثاق عن طريق كلمة السّر، عند استخدام SSH. في المقابل، يُمكن لسيّئي النّيّات - عند السّماح بالاستيثاق عن طريق كلمات السّرّ - محاولة الولوج إلى الخادوم مرارًا وتكرارًا عبر تخمين كلمة السّرّ. تمنح القدرات الحاليّة للحواسيب المهاجمين على تشغيل محاولات الاختراق آليًّا إلى أن يُعثَر على كلمة السّرّ الصّحيحة. يسمح إعداد استيثاق يعتمد على مفاتيح SSH بتعطيل الاستيثاق عن طريق كلمات السّرّ؛ إذ تحوي مفاتيح SSH عمومًا محارف أكثر بكثير من أيّ كلمة سرّ وهو ما يعني وجود إمكانيّات أكثر يجب على المُهاجم تجربتها. تعدّ الكثير من خوارزميّات غير قابلة للكسر، لسبب بسيط هو أنّ العتاد المتوفّر حاليًّا سيستغرق عقودًا أو أكثر للمرور بجميع الاحتمالات الممكنة. 2- ما مدى صعوبة إعداد الاستيثاق اعتمادًا على مفاتيح SSH؟ ضبط مفاتيح SSH سهلٌ جدًّا، كما أنّها الطّريقة الّتي يُنصَح بها للولوج عن بعد إلى خواديم لينكس ويونكس. يُمكن في ظرف دقائق إنشاء زوج من مفاتيح SSH على جهازك الشّخصيّ ثمّ نقل المفتاح العلنيّ إلى الخواديم. إذا كنت تشعر أنّك تحتاج للاستيثاق بالاعتماد على كلمات السّر فمن الجيّد استخدام حلول مثل fail2ban على خادومك للحدّ من إمكانيّة تخمين كلمة السّرّ. الجدران النّاريّة Firewalls الجدار النّاري عبارة عن برنامج (أو عتاد) يتحكّم في الخِدْمات المعروضة عبر الشّبكة. يعني هذا حظر أو تقييد الوصول إلى أي منفَذ Port لا يدخل ضمن المنافذ المتاحة للعموم. توجد بعض الخدمات الّتي تُشغَّل افتراضيًّا في الكثير من الخواديم. يُمكن تقسيم هذه الخِدْمات إلى المجموعات التّاليّة: الخِدْمات العموميّة الّتي يُمكن لأيّ كان الوصول إليها عبر الإنترنت، غالبًا بصفةِ مجهول. خادوم الويب مثال جيّد على هذه المجموعة، إذ يسمح عادةً للجميع بالوصول إلى موقع الويب. الخِدْمات الخاصّة الّتي لا يُمكن الوصول إليها لغير مجموعة حسابات مُرخَّص لها أو من أماكن محدَّدة . لوحة التّحكّم في قاعدة البيانات مثال على هذه المجموعة من الخِدْمات. الخِدْمات الدّاخليّة الّتي يمكِن الوصول إليها فقط من الخادوم نفسِه؛ دون أن تُعرَض للعالم الخارجيّ. قاعدة بيانات لا تقبل سوى الاتّصالات المحليّة (من الخادوم) مثال على هذه المجموعة. تتأكد الجدران النّاريّة من أنّ الوصول إلى برنامجك مقيّد وفقًا للمجموعات أعلاه. تُترك الخِدمات العموميّة مفتوحةً ومتاحةً للجميع بينما يُحصَر الوصول إلى الخِدْمات الخاصّة اعتمادا على معايير محدَّدة. بالنّسبة للخِدمات الدّاخليّة فيُمكن جعلُها غير مرئيّة تمامًا من خارج الخادوم. تمنع أغلب إعدادات الجدران النّاريّة تمامًا الوصولَ إلى المنافذ غير المستعملة. 1- كيف تحسّن الجدران النّاريّة من الأمان؟ الجدران النّاريّة جزء أساسيّ من إعداد أيّ خادوم. يُشكّل الجدار النّاري طبقة حماية إضافيّة، حتى ولو كانت البرامج الّتي تستخدمها تطبّق تدابير أمنيّة أو تقتصِر على الواجهات الّتي تريد لهذه البرامج العمل عليها. يمنع جدار ناريّ مضبوط بطريقة صحيحة الوصول إلى جميع الخِدمات ما عدا تلك الّتي تحتاج إلى أن تبقى مفتوحة. يقلّل عرض مجموعة برامج قليلة من الجوانب الّتي يُمكن إتيان الخادوم منها ممّا يعني قابليّةً أقلّ للتّعرّض للثّغرات الأمنيّة. 2- ما مدى صعوبة إعداد الجدران النّاريّة؟ توجد جدران ناريّة كثيرة على أنظمة لينكس، تختلف في صعوبة التّعامل معها. بصفة عامّة، يجب ألّا تتجاوز مدّة ضبط الجدار النّاري بضع دقائق؛ كما أنّه عمليّة تُجرى عند الإعداد الابتدائيّ للخادوم أو عند تغيير الخِدمات المتاحة عبر الخادوم. جدار UFW خيّار سهل. توجد أيضًا خيّارات أخرى مثل استخدام iptables أو جدار CSF النّاريّ. الشّبكات الخاصّة الافتراضيّة VPN والتّشبيك الخاصّ Private Networking الشّبكات الخاصّة هي شبكات متاحة لبعض الخواديم أو المستخدمين فقط؛ أمّا الشّبكات الخاصّة الافتراضيّة Virtual private network (أو VPN) فهي طريقة لإنشاء اتّصالات آمنة بين جهازيْن متباعديْن بحيث يظهر الاتّصال كما لو أنّه في شبكة خاصّة محليّة. تُتيح الشّبكات الخاصّة الافتراضيّة طريقة لإعداد خِدمات موجودة على خواديم متباعدة بحيثُ تظهر وكأنّها في شبكة خاصّة كما أنّها تؤمّن الاتّصالات بين خواديم متباعدة. 1- كيف تحسّن الشّبكات الخاصّة من الأمان؟ يُنصح دائمًا بتفضيل الشّبكات الخاصّة بدلًا من العموميّة في الاتّصالات الدّاخليّة كل ما كان ذلك ممكنًا. مع ذلك يجب تطيق تدابير أمنيّة إضافيّة لتأمين الاتّصالات بين الخواديم والحؤول دون وصول مستخدمي الشّبكة الدّاخليّة غير المرخَّص لهم إلى خواديمك. يُعدّ استخدام شبكات خاصّة افتراضيّة طريقة ذات فعاليّة لوضع شبكة خاصّة لا تُمكن لغير رؤيتها خواديمك؛ ستكون الاتّصالات خاصّة ومؤمّنة تمامًا. يُمكن ضبطُ بقيّة التّطبيقات لتمرير بياناتها عبر الواجهات الافتراضيّة الّتي يعرضها برنامج الشّبكات الخاصّة الافتراضيّة. لا تُعرض في هذا الإعداد عبر شبكة الإنترنت سوى سوى الخدمات الموجهة للعملاء العموميين. 2- ما مدى صعوبة إعداد الشّبكات الخاصّة الافتراضيّة؟ من السّهل استخدام الشّبكات الخاصّة في مراكز البيانات Data centers الّتي لديها هذه القدرة، إذ يقتصر الأمر على تفعيل واجهات الشّبكة أثناء إنشاء الخادوم وإعداد التّطبيقات والجدار النّاريّ لاستخدام الشّبكة الخاصّة. انتبه إلى أنّ الشّبكات الخاصّة الّتي تمتدّ عبر مركز البيانات تشترك في نفس الشّبكة مع بقيّة الخواديم. بالنّسبة للشّبكات الخاصّة الافتراضيّة فإنّ الإعداد الابتدائيّ أكثر تعقيدًا؛ إلّا أنّ الرّفع من مستوى الأمان يُعوّض الجهد في أغلب الحالات. يتطلّب إعداد شبكات خاصّة افتراضيّة تثبيت وضبط إعداد الأمان المشتركة على كلّ خادوم؛ ثمّ بعد إطلاق وتشغيل الشّبكة الخاصّة الافتراضيّة، إعداد التّطبيقات لاستخدامها. البنية التّحتيّة للمفاتيح العلنيّة PKI والتّعميّة بواسطة SSL/TLS تُحيل البنية التّحتيّة للمفاتيح العلنيّة Public key infrastructure (أو PKI) إلى نظام مُصمّم لإنشاء، إدارة والتحقق من شهادات Certificates تحديد الهويّة وتعميّة الاتّصال. يُمكن استخدام شهادات SSL أو TLS لتوثيق عناصر من النّظام لدى أخرى. يمكن - بعد الاستيثاق - استخدام الشّهادات لتعميّة الاتّصال. 1- كيف تحسّن البنية التّحتيّة للمفاتيح العلنيّة من الأمان؟ يُمكّن التّأسيس لسلطة شهادات Certificate authority وإدارتها ضمن خواديمك كلَّ عنصُر داخل بنيتك التّحتيّة من التّحقّق من هويّة بقيّة العناصر وتعميّة البيانات المتلادلة معها. يُمكن أن تمنع هذه الآليّة هجمات من نوع “رجل في الوسط” Man-in-the-middle الّتي يحاكي فيها المهاجم أحد الخواديم ضمن بنيتك التّحتيّة بهدف التقاط حركة البيانات. يُمكن ضبط كلّ خادوم ليثق في سلطة شهادات مركزيّة بحيث تُصبح أي شهادة تُوقّع عليها السّلطة المركزيّة موثوقة. إذا كانت التّطبيقات والبروتوكولات الّتي تستخدمها للاتّصال تدعم التّعمية بواسطة TLS/SSL، فإنّ هذه طريقة لتعميّة النّظام دون إغراق الاتّصال عن طريق شبكة خاصّة افتراضيّة (يدخل SSL غالبًا في آليّة عمل الشّبكات الخاصّة الافتراضيّة). 2- ما مدى صعوبة إعداد بنية التّحتيّة للمفاتيح العلنيّة؟ قد يحتاج إعداد سلطة شهادات وتثبيت بقيّة البنية التّحتيّة للمفاتيح العلنيّة في البداية لكثير من المجهود. علاوةً على ذلك فإنّ إدارة الشّهادات قد تزيد عبئًا إضافيًّا عند الحاجة لإنشاء شهادات جديدة، توقيعها أو إبطالها. لن يُشكّل تنفيذ بنية تحتيّة متكاملة للمفاتيح العلنيّة إضافةً محسوسة للكثير من المستخدمين إلّا عند زيادة احتيّاجاتهم. ربّما يكون تأمين الاتّصال بين عناصر البنية التّحتيّة عبر شبكات خاصّة افتراضيّة إجراءً مناسبًا إلى أن يصلوا إلى المرحلة الّتي تُصبح فيها بنية المفاتيح العلنيّة تعوّض الجهد الإضافيّ المبذول لإدارتها. فحص الخدمات Service auditing تطرّقنا حتى الآن لتقنيّات يُمكن اللّجوء إليها للرّفع من مستوى الأمان. يقبع جزء مهمّ من الأمان في تحليل الأنظمة المستخدَمة، فهم الجوانب الّتي يُمكن أن تُؤتَى منها، وقفل العناصر حسب إمكاناتك. يُشير فحص الخدمات إلى العمليّة الّتي تكتشف عن طريقها الخدمات العاملة في البنية التّحتيّة. يُضبط - غالبًا - نظام التّشغيل ليبدأ تشغيل خدمات معيّنة عند الإقلاع Boot. قد تجرّ البرامج الإضافيّة اعتماديّات Dependencies تُشغَّل هي الأخرى آليًّا عند الإقلاع. يسمح فحص الخدمات بمعرفة الخدمات العاملة على النّظام، المنافذ المستخدمة للاتّصالات، والبروتوكولات المقبولة. تُساعد هذه المعلومات في ضبط إعدادات الجدار النّاريّ. 1- كيف يُحسّن فحص الخدمات من الأمان؟ تُشغّل الخواديم عمليّات Processes عديدة لأداء أعمال داخليّة في الخادوم أو للتّعامل مع عملاء خارجيّين. يُمثّل كلّ واحد من هذه العناصر وسيلةً محتملة قد يستغلّها مستخدمون ذوو نيّات خبيثة لمهاجمة الخادوم؛ فكلّ ما زادت الخدمات الّتي تشغّلها زاد احتمال وجود ثغرات في البرامج الّتي تستخدمها. يُمكن أن تبدأ تحليل الخدمات الموجودة على جهازك فور حصولك على فكرة جيّدة عنها. في ما يلي بعض الأسئلة الّتي يجب أن تطرحها لكلّ واحدة من هذه الخِدمات: هل أحتاج لهذه الخدمة؟ هل تعمل الخدمة على واجهات لا تحتاج إليها؟ هل يحب تحديدها بعنوان IP واحد؟ هل قواعد الجدار النّاريّ معدّة بطريقة تسمح للبيانات المرخَّص لها بالمرور إلى الخدمة؟ هل يمنع الجدار النّاريّ الوصول غير المرخَّص إلى الخدمة؟ هل لديك وسيلة تحصُل بها على إشعارات عن الثّغرات المُكتشفة في البرنامج؟ يجب أن يكون فحص الخدمة تدبيرًا قيّاسيًّا عند إعداد أي خادوم جديد. 2- ما مدى صعوبة إعداد فحص الخدمات؟ الفحص الأساسيّ للخدمة سهلٌ جدًّا، إذ يعرض أمر netstat الخدمات الّتي تُنصِت لحركة البيانات عبر منافذ كلّ واجهة. في ما يلي مثال يعرض اسم البرنامج، معرّف العمليّة PID والعناوين المستخدَمة لحركة البيانات وفقًا لبروتوكول نقل البيانات (TCP أو UDP): sudo netstat -plunt ستكون المُخرجات مقاربة للتّاليّة: Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 887/sshd tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 919/nginx tcp6 0 0 :::22 :::* LISTEN 887/sshd tcp6 0 0 :::80 :::* LISTEN 919/nginx الأعمدة الأساسيّة الّتي يجب عليك الانتباه إليها هي Porto (المنفذ) ، Local Address (العنوان المحلّي)، ومعرّف العمليّة/البرنامج (PID/Program). إذا كان عنوان IP الّذي تستقبل الخدمة عليه الاتّصالات هو 0.0.0.0 فهذا يعني أنّ الخدمة تقبل الاتّصالات من جميع الواجهات. فحص الملفّات وأنظمة الكشف عن التّطفّل Intrusion detection systems نعني بفحص الملفّات العمليّة الّتي بموجبها نُقارن وضعيّة النّظام الحاليّة بسجلّ لملفّات النّظام وخصائصها عندما كان في وضعيّة تُعرف بأنّها جيّدة. يُستخدم فحص الملفّات للتّعرّف على التّغييرات الّتي يُمكن أن يكون النّظام قد سمح بها. نظام الكشف عن التّطفّل (IDS اختصارًا) هو برنامج يُراقب نظام التّشغيل أو الشّبكة بحثًا عن أنشطة غير مسموح بها. تعتمد الكثير من أنظمة الكشف عن التّطفّل المُستضافة على الخادوم على طريقة فحص الملفّات للتّحقّق من وجود تعديلات في نظام التّشغيل. 1- كيف تُحسّن أنظمة الكشف عن التّطفّل وفحص الملفّات من الأمان؟ إذا كنت مهتمًّا بالرّفع من مستوى أمان بنيتك التّحتيّة فمن المفيد إجراء فحوص على مستوى الملفّات، مثلها مثل الخدمات. يُمكن أن يكون هذا الإجراء دوريًّا، يؤدّيه المسؤول؛ أو آليًّا ضمن نظام للكشف عن التّطفّل. تعدّ هذه الوسائل من الطّرق القليلة الّتي تتأكّد من خلالها أنّ نظام الملفّات Filesystem لم يغيِّره أو يُعدِّل عليه مستخدم أو برنامج. يُفضّل المتطفّلون في كثير من الأحيان، لأسباب مختلفة، البقاء متخفّين للاستمرار في استغلال الثّغرات الموجودة في النّظام لمدّة أطول. يُمكن لمن يستغلّ ثغراتٍ في النّظام أن يُبدل ملفّات تنفيذيّة بنُسخ مُعدَّلة منها؛ سيُخبرك فحص نظام الملفّات بالملفّات المُعدًّل عليها إن وُجدت ممّا يُساعد في التّأكّد من تكامل بيئة الخادوم. 2- ما مدى صعوبة إعداد فحص الملفّات وأنظمة الكشف عن التّطفّل؟ قد يكون تثبيت نظام للكشف عن التّطفّل أو إجراء فحص للملفّات عمليّة إضافيّة تأخذ جهدًا لا بأس به. يتضمّن الإعداد الابتدائيّ إخبارَ نظام الكشف عن التّطفّل يكلّ التّغييرات غير القياسيّة الّتي أجريتها على الخادوم، وتحديدَ مسارات قد تُستثنى لإنشاء خطّ مرجعيّ للاعتماد عليه. تجعل أنظمة الكشف عن التّطفّل من عمليّات الإدارة اليوميّة أكثر تكرارًا وتعقّد من تحديث البرامج ونظام التّشغيل، حيث ستحتاج لإعادة التّحقّق من النّظام قبل تنفيذ التّحديثات ثمّ إعادة إنشاء الخطّ المرجعيّ بعد تنفيذ التّحديثات لرصد أي تغييرات على إصدارات البرامج. يجب أيضًا نقل تقارير الكشف إلى مكان آخر غير النّظام الّذي حدث فيه الكشف لمنع المتطفّلين من تعديلها للتّغطيّة على آثارهم. ستزيد أنظمة الكشف عن التّطفّل بلا شكّ من عبْء الإدارة، ولكنّ مقارنة حالة النّظام الحاليّة بأخرى تعرف أنّها جيّدة هيّ الطّريقة الوحيدة للتّأكّد من أنّ الملفّات لم يُعدَّل عليها من دون علمك. Tripwire وAide من أكثر أنظمة الكشف عن التّطفّل انتشارًا. بيئات تنفيذ Execution environments معزولة يُحيل مفهوم “بيئة التّنفيذ المعزولة” إلى أيّ طريقة تشغيل تعمل بموجبها العناصر في مساحات عمل مخصَّصة لها. يُمكن أن تُعدّ بيئة تنفيذ معزولة بتشغيل عناصر التّطبيقات في خواديم خاصّة بها، أو بإعداد الخدمات للعمل في بيئات chroot أو حاويّات Containers. يعتمد مستوى العزل إلى حدّ بعيد على متطلّبات تطبيقاتك وواقع بنيتك التّحتيّة. 1- كيف يُحسّن عزل بيئات التّنفيذ من الأمان؟ يزيد عزل العمليّات في بيئات تنفيذ مستقلّة من قدرتك على تحديد المشاكل الأمنيّة الّتي يُمكن أن تتعرّض لها. يحُدّ الفصل بين العناصر المستقلّة في البنية التّحتيّة من وصول المخترقين إلى بقيّة العناصر في البنية التّحتيّة. 2- ما مدى صعوبة عزل بيئات التّنفيذ؟ تتوقّف صعوبة - أو سهولة - عزل التّطبيقات على طريقة الفصل الّتي تختارها. يُمكن عبر تحزيم التّطبيقات في حاويّات مستقلّة، الحصول بسرعة على مستوى من عزل التّطبيقات؛ ولكن يجب الانتباه إلى أنّ Docker لا يتعامل مع إعداد الحاويّات على أنّه ميزة أمنيّة. قد يوفّر إعداد بيئة Chroot لكلّ عنصُر مستوى من العزل هو الآخر، لكنّ هذه الطّريقة ليست مضمونةً بالكامل لعزل التّطبيقات؛ إذ توجد دائمًا وسيلة لكسر بيئات Chroot. يوفّر نقل العناصر إلى أجهزة مُخصَّصة أفضل مستوى من العزل، كما أنّه الوسيلة الأسهل في كثير من الأحيان؛ ولكنّه في المقابل الخيّار الأغلى نظرًا لثمن الأجهزة الإضافيّة. خاتمة قدّمنا في هذا الدّليل بعض التّحسينات الممكنة، وليس كلّها، من أجل الرّفع من مستوى الأمان في البنية التّحتيّة. تقلّ فعاليّة التّدابير الأمنيّة كلّ ما طال الانتظار في إجرائها. لا يجوز النّظر إلى التّدابير الأمنيّة على أنّها ملحقات، ويجب تنفيذها من البداية إلى جانب الخدمات والتّطبيقات. ترجمة بتصرّف لمقال 7 Security Measures to Protect your Servers.
  9. يجد كثير من مستخدمي لينكس والأنظمة الشبيهة بيونكس عموما مشاكل في فهم أذونات Permissions الملفات والمجلّدات. يتعلق الأمر أحيانا بترتيب أوضاع بتات القراءة، الكتابة أو التنفيذ؛ بينما تكمن الصعوبة أحيانا أخرى بفهم رموز العدّ الثمانيّ Octal أو ربما كيفية حل لغز بت setuid والبت اللاّصق Sticky bit. يتوجّه هذا المقال إلى من لم يفهم قطّ هذه الأذونات بالدرجة الأولى وإلى من يجد خلطا من حين لآخر في تفاصيلها. راجع أيضا مقال مقدّمة إلى أذونات لينكس Linux Permissions. الأساسيات نبدأ أولا بالنظر إلى مخرجات أمر ls: ls -lah -rwxr-xr-- 1 daniel consultants 5K Mar 10 06:55 scanner.rb -rwxr-xr-x 1 sarah teachers 18M Jul 30 10:07 papers.tar.bz2 ثلاث مجموعات من ثلاثة أحرف: بما أن الأمر يتعلّق هنا بملفات فستظهر عارضة - في أول كل مُخرَج (سطر) . تلي العارضة مجموعة محارف (9 بالضبط، تدخُل العوارض - في الحساب) سنصطلح على تقسيمها إلى ثلاث مجموعات فرعية متساوية (3x3). المستخدِم-المجموعة-الآخرون: نسمي المجموعات الثلاث على الترتيب المستخدِم User, U، مجموعة المستخدم Group, G والآخرين Other, O. يعني هذا أن أول مجموعة محارف (rwx في السطريْن) تتعلق بالمستخدِم مالك الملفّ، الثانية (r-x في السطريْن) تتعلّق بمجموعة المستخدمين مالكة الملفّ والثالثة (--r في السطر الأول وr-x في السطر الثاني) تعني الآخرين أي بقية المستخدمين. صاحب (مالك) الملف: يظهر في نتيجة الأمر المستخدم مالك الملف ومجموعة المستخدمين مالكة الملف كذلك، لكنك لن ترى الآخرين. يعود السبب في ذلك إلى أن أذونات الآخرين (مجموعة المحارف الأخيرة ضمن المجموعات الثلاث أعلاه) تنطبق على كل من ليس مالكَ الملف وليس ضمن مجموعة المستخدمين صاحبة الملف. الأعداد الثلاثة يرتبك بعضهم عندما يرى الأذونات مذكورة بصيغة مجموعة من ثلاثة أعداد، لكنّ الأمر ليس بهذا التعقيد. تذكّر فقط أن هذه الأعداد هي أماكن تحوي الرقم الموافق للإذن حسب الترتيب (من اليسار إلى اليمين): r (القراءة)، w (الكتابة) وx (التنفيذ). لاحظ الصورة. بالنسبة لكلّ رمز، نضربه في 1 إذا كان مذكورا في الأذونات وفي 0 إن لم يكن (تظهر عارضة مكانه)، ثم نجمع نتيجة كل ثلاثي. الأذونات على المجلدات يجب الانتباه إلى أن الأذونات على المجلدات تختلف عنها على الملفات. توحي أسماء الأذونات على الملفات بعملها: قراءة الملف (r)، الكتابة فيه أو حذفه (w) وتنفيذه (x)؛ بينما الدلالة مختلفة قليلا في المجلدات: يعني إذن القراءة على مجلد أن بإمكانك عرض المجلّد. يدلّّ إذن الكتابة أن لديك القدرة على إنشاء محتوى في المجلد أو حذفه منه. يشير إذن التنفيذ إلى أنه بالإمكان الدخول إلى المجلّد، تنفيذ أمر cd عليه مثلا. البت اللاصق، معرف المستخدم ومعرف المجموعة تمثّل هذه الخيارات الثلاثة الجزئية الأكثر تعقيدا لدى الكثيرين في أذونات لينكس. معرف المستخدم صُمِّم خيار معرّف المستخدم setuid (اختصار لـ Set user ID upon execution "اضبط معرّف المستخدم أثناء التنفيذ") لحلّ مشكل أساسي: غياب الإذن الكافي لتنفيذ بعض البرامج. كان حلّ هذا المشكل بإضافة خيار إلى الملف يقول “نفّذ هذا البرنامج وفق أذونات المستخدم الذي يملكه بغضّ النظر عن المستخدم الذي ينفّذ الملف”. ينبغي الحذر من استخدام هذا الخيار - الذي أصبح متجاوزا - إذ قد يؤدي لأخطار أمنية. إن حدث ومررت بإذن على النحو التالي فأنت أمام خيار setuid: -rwsr-xr-- 1 daniel consultants 5K Mar 10 06:55 scanner.rb لاحظ حرف s في أذونات المستخدم مالك الملف مكان إذن التنفيذ x. يشير حرف s إلى أن إذن setuid مضبوط. يظهر حرف s في المثال أعلاه صغيرا Lowercase وهو ما يعني أن خيار التنفيذ متاح أيضا لمالك الملف. إن كان خيار setuid فقط مضبوطا (بمعنى أنه لا يُتاح لمالك الملف إذن تنفيذه) فسيظهر الحرف كبيرا Uppercase هكذا S. ملحوظة: ينطبق التنبيه أعلاه بخصوص هيئة الحرف (صغير أو كبير) على جميع خيارات الأذونات الخاصة. المبدأ العام هو: إذا كان الحرف الذي يشير للإذن الخاص صغيرا فهذا يعني أن الإذن لدى المالك أيضا، أما إذا كان كبيرا فهذا يعني أنه ليس لدى المالك هذا الإذن. معرف المجموعة setguid يشبه الخيّار السابق في عمله مع فرق أنه يُطبَّق على مجموعة المستخدمين المالكة للملف بدلا من المستخدم المالك: -rwxr-Sr-x 1 bjones principals 101K Aug 16 04:01 grades.xml الفرق هنا بالمقارنة مع المثال في الفقرة السابقة هو أن حرف S يوجد ضمن أذونات المجموعة بدلا من المستخدِم. لاحِظ أيضا أن الحرف S في هذا المثال كبير وهو ما يعني أنّه ليس لدى المجموعة المالكة (principals في هذه الحالة) إذن التنفيذ ولكن عند تنفيذ المستخدِم bjones (المالك) أو مستخدم آخر ليس ضمن مجموعة principals للملف فإنّ التنفيذ سيكون بصلاحيات المجموعة المالكة. البت اللاصق يُستخدم هذا البت من أجل منع مستخدمين من التعديل على أو حذف ملفات مستخدِم أو مجموعة مستخدمين. يمكن تطبيق البت اللّاصق على ملفات عادية ولكنّه يُطبَّق أكثر على المجلّدات. نفرض مثلا أنك وضعت مجلدا تحت تصرّف مجموعة من التلاميذ ثم منحت لكل طالب مجلدا خاصا به. يمكن باستخدام البتّ اللاصق التأكد من أنه لن يكون بإمكان طالب حذفُ محتوى مجلد خاصّ بطالب آخر. يبدو البت اللاّصق كما يلي (لاحظ حرف t): drwxr-xr-t 1 alice alice 4.4K 2007-01-01 09:21 Alice التعديل على الأذونات استخدم أمر chmod لتعديل أذونات ملفّ بذكر الأذونات الجديدة التي تريد تطبيقها. يغيّر الأمر التالي أذونات مجلد الويب لتصبح 755: chmod 755 web_directory يغيّر الأمر أدناه أذونات ملف لتصبح 644: chmod 644 grocery_list.txt تعيين معرف المستخدم، معرف المجموعة والبت اللاصق يمكن استخدام أمر chmod أيضا لتعيين الأذونات الخاصّة. لتعيين معرّف المستخدم (نضيف 4 أمام الأذونات الاعتيادية): chmod 4644 script.rb يمكن أيضا استخدام طريقة إضافة الأذونات الأخرى: chmod u+s script.rb لتعيين معرّف المجموعة (نضيف 2 أمام الأذونات الاعتيادية): chmod 2644 script.rb أو: chmod g+s script.rb لتعريف البت اللّاصق (نضيف 1 أمام الأذونات الاعتيادية): chmod 1644 myfiles أو: chmod o+t myfiles ترجمة -وبتصرّف- للمقال A Unix and Linux Permissions Primer لصاحبه Daniel Miessler.
  10. تتوفّر على توزيعات لينكس برامج تحظُر إنشاء كلمات سر يسهُل تخمينها؛ فالوصول إلى الكثير من بيانات المستخدم وبرامجه يتطلّب تجاوز مرحلة إدخال كلمة السرّ ، الأمر الذي يجعل من كلمات السر نقطة حرجة في سبيل تأمين النظام والمستخدم على حدّ السواء ويجب بالتالي الحرص دائما على أن تكون محدَّثة. توجد الكثير من طرق تعمية البيانات ولكلّ منها خصوصيّاته. تستخدم أغلب توزيعات لينكس خوارزميّة تعمية تُسمّى معيار تعميّة البيانات Data Encryption Standard, DES لتعميّة كلمات السّر. تُخزّن كلمات السرّ المعمّاة في ملف etc/passwd/ أو etc/shadow/. عندما يحاول المستخدم الولوج إلى النظام فإن كلمة السّر التي يُدخِلها تُعمَّى ثم تقارن بحقل كلمة السّر المعمّاة في الملف، فإن حصل تطابق فهذا يعني أنها نفس كلمة السّر وبالتالي يُسمح له بالولوج. تستخدم أغلب توزيعات لينكس نسخة من DES لا تعمل إلا في اتجاه واحد؛ بمعنى أنه يمكن استخدامها لتعميّة كلمة سر ولكن لا يمكن استخدامها لفك تعميّة كلمات السر في ملفّي etc/passwd/ وetc/shadow/. يمكن لبرامج هجمات القوة العمياء Brute force attacks مثل John the Ripper وCrack تخمين كلمات السر التي لا تحترم حدًّا أدنى من العشوائية؛ وبإمكان مديري النّظم استخدامها لصالحهم في طريقة استباقية بتنفيذها على كلمات سرّ مستخدميهم للعثور على كلمات السّر غير الآمنة ثم الطلب من هؤلاء تغييرها إلى أخرى آمَن. التعمية بالمفاتيح العمومية تستخدم التعمية بالمفاتيح العمومية Public-Key Cryptography مفتاحا (سلسلة محارف) للتعمية وآخر لفكّها، على عكس طرق تعمية أخرى تستخدم نفس المفتاح للمهمتيْن. يهدف استخدام مفتاح خاصّ للتعميّة (المفتاح العموميّ) وآخر لفكّها (المفتاح الخصوصيّ) إلى تجاوز ضرورة تأمين نقل المفتاح الوحيد أثناء تبادل الرسائل المعمّاة. يتوفّر المفتاح العمومي لكلّ شخص للجميع دون استثناء بينما يقى المفتاح الخصوصي سرًّا خاصًّا به. مثلا، عندما يريد محمّد إرسال بريد معمّى إلى عمر فإنه يستخدم المفتاح العموميّ لعمر لتعمية البريد، عند وصول البريد إلى عمر فإنه يستخدم مفتاحه الخصوصي الذي لا يعرفه غيره لفك تعميّة الرسالة والاطّلاع عليها. بهذه الطريقة لن يعرف فحوى الرسالة غيرهما، محمّد لأنه كتب الأصل غير المعمَّى، وعمر لأنه الوحيد الذي يمكنه فك تعميتها. برنامج PGP يتبنّى برنامج PGP (اختصار لـ Pretty Good Privacy) مبدأ التعمية بالمفاتيح العمومية ويمكن استخدامه لتوقيع البيانات وتعميّتها: التوقيع للتأكد من المصدر والحؤول دون انتحال الشخصيّة، والتعمية للحفاظ على خصوصية البيانات. يجب الانتباه قبل استخدام البرنامج إلى التقييدات القانونية في استخدامه. يُحظَر في بعض الدوّل توجيه رسائل بتعميّة قويّة إلى خارج البلد. بروتوكول TLS يُستخدَم بروتوكول TLS (والإصدار السابق منه SSL) كثيرا لتأمين الاتصالات في شبكة حواسيب. يهدف البروتوكول إلى الحفاظ على خصوصية البيانات المنقولة عبر الاتصال بتعميتها، الاستيثاق من هويّات المتخاطبين باستخدام تعمية بالمفاتيح العمومية والتأكد من سلامة البيانات عن طريق جمع تحقق Checksum لكلّ حزمة بيانات. التنفيذ الأكثر شهرة على أنظمة لينكس لهذا المعيار هو مكتبة OpenSSL التي تدعم خوارزميات تعمية من بينها DES، Blowfish وIDEA. بروتوكول HTTPS وهو تطوير لبروتوكول HTTP بتضمينه داخل اتّصال يؤمّنه بروتوكول TLS (أو SSL). الأغراض الأساسية من استخدام HTTPS على مواقع الويب هي الاستيثاق، حماية الخصوصية والتحقق من سلامة البيانات المتبادلة. بروتوكول S/MIME يأتي الاسم اختصارا لـ Secure Multipurpose Internet Mail Extension (امتداد البريد الإلكتروني الآمن متعدّد الأغراض)، وهو معيار مفتوح يعتمد على التعميّة بالمفاتيح العمومية لتأمين البريد الإلكتروني وغيره من أنواع المراسلات على الشبكة. الشبكات الخاصة الافتراضية Virtual Private Network توجد تنفيذات عدّة لمعيار بروتوكول الإنترنت الآمن على لينكس. معيار IPSEC (اختصار لـ Internet Protocol Security؛ أمان بروتوكول الإنترنت) هو مجهود تقف خلفه قوة مهمات هندسة الإنتنرت IETF ويهدف إلى إنشاء اتصالات معمّاة على مستوى الشبكة (الطبقة الثالثة) وتوفير سبُل للتحقق من سلامة البيانات، التحكم في الوصول، الاستيثاق والسريّة. من الأمثلة على تطبيقات هذا البروتوكول في لينكس LibreSwan الذي يسمح للمستخدم ببناء نفق اتصالات آمن عبر شبكات غير موثوقة. يُعمَّى كل ما يمر إلى الشبكة غير الموثوقة قبل إرساله ليعمل الطرف الآخر عند استلامه على فك التعمية، تنتُج عن هذه العملية شبكة خاصّة افتراضية Virtual Private Network, VPN والتي هي شبكة اتصالات خاصّة على الرغم من أن الأجهزة فيها تتصل عن طريق شبكة غير موثوقة. لا تقتصر طُرُق إنشاء شبكات خاصة افتراضية في لينكس على IPSEC، بل توجد برامج خاصّة لهذا الغرض مثل OpenVPN التي تستخدم كثيرا مكتبات OpenSSL. بروتوكول SSH توجد عدّة حزم برمجية على لينكس لاستخدام SSH أبرزها OpenSSH. صُمِّم بروتوكول SSH ليحلّ مكان بروتوكولات الاتصال عن بعد غير الآمنة مثل rlogin، rsh وrexecالتي كانت ترسل البيانات دون احتياطات أمنية تُذكر. تعتمد حزمة برامج OpenSSH على التعمية بالمفاتيح العمومية لتعميّة الاتصالات بين مضيفين Hosts، وللاستيثاق من المستخدمين. كما يمكن استخدامها للولوج إلى خادوم بعيد أو لنسخ البيانات بين مضيفين مع الحماية من هجمات رجل في الوسط Man in the middle وهجمات أخرى. وحدات الاستيثاق سريعة التفعيل Pluggable Authentication Modules تأتي الإصدارات الحديثة من توزيعات لينكس محمّلة بآلية استيثاق موحدة تُسمّى Pluggable Authentication Modules, PAM تسمح للتطبيقات التي تعمل في فضاء المستخدم بتغيير متطلبات الاستيثاق الخاصّة بها وطريقته حسب الحاجة. يمكن باستخدام هذه الآلية من بين أمور أخرى: تحديد أمكنة وأوقات معيّنة لمستخدمين لا يمكنهم الولوج خارجها إلى النظام. تعيين سقف لاستخدام الموارد لكل مستخدِم. استعمال خوارزميات تعميّة أخرى غير DES لجعل فك التعمية بهجمات القوة العمياء أصعب. تفعيل كلمات السّر في ملف shadow حسب الحاجة. ملف Shadow لتأمين كلمات سر المستخدمين تستخدم الإصدارات الحديثة من توزيعات لينكس ملف etc/shadow/ لجعل كلمات سر المستخدم المعمّاة في مأمن من بقية المستخدمين على نفس النظام. كانت كلمات السر المعمّاة تخزّن في الإصدارات القديمة داخل ملف etc/passwd/ مبدئيا، ويمكن لجميع المستخدمين رؤيتها وبالتالي تنفيذ هجمات القوة العمياء عليها لمحاولة فك تعميتها. يعني اللجوء إلى ملف etc/shadow/ أن المستخدمين الإداريين فقط هم من يمكنهم رؤية كلمات السّر المعمّاة. التأكد من أمان كلمات مرور المستخدمين يحتاج مدير النظام أحيانا إلى التأكد من أن كلمات مرور المستخدمين جيّدة كفاية، لكي لا تكون بابا قد يؤدي فتحه إلى مشاكل أمنية أخرى، تُستخدم برامج مثل Jone the Ripper وCrack لهذا الغرض. تقوم فكرة هذه البرامج على توليد كلمات مرور معمّاة إما حسب نمط معرَّف مسبقا أو بالاعتماد على قاموس ألفاظ ثم مقارنتها بكلمات المرور المعمّاة الخاصّة بالمستخدمين، فإن وُجد تطابق عُرِفت كلمة السر. الجدير بالذكر أن مثل هذه البرامج تأخذ الكثير من الوقت وموارد الجهاز للعمل؛ وكلما كانت كلمات السّر معقدة كل ما كانت المهمة أصعب. في سيناريو هجمة حقيقية سيحتاج المخترق أولا إلى الحصول على ملف كلمات سر المستخدمين وهو أمر يحتاج لثغرات أمنية قد لا تكون موجودة؛ إلا أن الحيطة واجبة على الدوام. ترجمة - وبتصرّف - لمقال Encryption Methods in Linux لصاحبه M.el Khamlichi. حقوق الصورة البارزة: Designed by Freepik.
  11. يشرح هذا المقال كيفية استخدام Tinc، وهي أداة مفتوحة المصدر، لإنشاء شبكات خاصة افتراضية Virtual Private Network, VPN آمنة تستخدمها الخواديم والأجهزة للتواصل كما لو أنها في شبكة محليّة. يوضح المقال أيضا كيفية استخدام Tinc لإعداد نفق tunnel آمن نحو شبكة خاصة. سنستخدم خواديم Ubuntu 14.04 إلا أن الإعدادات صالحة للتطبيق والتكييف على أنظمة أخرى. يتضمن Tinc ميزات تجعله مفيدا؛ منها التعمية Encryption، الضغط Compression الاختياري للبيانات، التوجيه Routing التلقائي للشبكة (تُوجَّه حركة البيانات مباشرة إلى الخواديم المتصلة إن أمكن ذلك) واليسر في قابلية التمدد. تفرق هذه الميزات بين أداة Tinc وحلول الشبكات الخاصة الافتراضية الأخرى مثل OpenVPN وتجعلها مناسبة لإنشاء شبكة خاصة افتراضية مكوّنة من شبكات صغيرة موزَّعة على مناطق جغرافية متباعدة. تعمل أداة Tinc على نظم تشغيل مختلفة بما فيها لينوكس، وندوز و Mac OS X. المتطلباتيتطلب هذا المقال صلاحيات إدارية للوصول إلى ثلاثة خواديم Ubuntu 14.04 على الأقل. توجد تعليمات هذا الإعداد في الدرس التالي (الخطوات 3 و4): الإعداد الابتدائي لخادوم أوبنتو 14.04. إن كنت تريد استخدام الخطوات المشروحة في هذا الدرس في بيئة عملك فيجب عليك التخطيط للكيفية التي تريد لكل خادوم أن يتصل عن طريقها بالخواديم الأخرى، وتكييف الأمثلة المقدَّمة مع احتياجاتك الخاصة. تأكد عند تكييف الخطوات مع إعداداتك الخاصة من تغيير القيم إلى تلك الخاصة بك. لاتباع هذا الدرس دون تغيير يجب إنشاء خادومين خاصّين افتراضيين ضمن نفس مركز البيانات مع وضعهما في نفس الشبكة المحلية، وإنشاء خادوم آخر ضمن مركز بيانات منفصل. سنعد خادومين في مركز بيانات NYC2 وواحد في مركز بيانات AMS1 بالأسماء التالية: externalnyc: يجب أن تتصل جميع الأجهزة ضمن الشبكة الافتراضية بهذا الخادوم وتحافظ على الاتصال حتى تعمل الشبكة الافتراضية بطريقة صحيحة. يمكن أن تضبَط خواديم أخرى بطريقة مشابهة لضمان التكرار.internalnyc: يتصل بالخادوم externalnyc باستخدام واجهة الشبكة المحلية.ams1: يتصل بexternalnyc عبر الإنترنت.الهدففي المخطَّط أدناه توضيح للشبكة الخاصة الافتراضية التي نريد إعدادها والموصوفة في فقرة المتطلبات أعلاه: يمثل الأخضر شبكتنا الخاصة الافتراضية، البني شبكة الإنترنت والبرتقالي الشبكة المحلية. تستطيع الخواديم الثلاثة التخاطب عبر الشبكة الخاصة الافتراضية، على الرغم من أن ams1 غير متصل بالشبكة المحلية. نبدأ بتثبيت Tinc. تثبيت Tincثبت tinc على كل خادوم تود إلحاقه بالشبكة الخاصة الافتراضية. نبدأ بتحديث فهرس الحزم: sudo apt-get updateثم تثبيت حزمة tinc: sudo apt-get install tincننتقل بعد التثبيت إلى الإعداد. إعداد Tincيستخدم Tinc “اسم شبكة” netname للتفريق بين شبكات خاصة افتراضية عدّة في حالة وجودها. يُنصَح باستخدام أسماء شبكات حتى ولو لم تكن تخطط لإعداد شبكات خاصة افتراضية عدّة. سنسمي شبكتنا الاخاصة الافتراضية hsoub. يتطلب كل واحد من الخواديم التي ستكون جزءا من الشبكة الخاصة الافتراضية العناصر الثلاثة التالية: ملفات الإعداد: مثل tinc-up، tinc-down وtinc.conf.زوجا من المفاتيح (عمومي وخصوصي) للتعمية والاستيثاق.ملفات إعداد المستضيف: تتضمن المفاتيح العمومية وإعدادات أخرى للشبكة الخاصة الافتراضيةنبدأ بإعداد الجهاز الأول من شبكتنا الخاصة الافتراضية وهي externalnyc. إعداد externalnycأنشئ هيكل مجلّد الإعداد الخاص بالشبكة الخاصة الافتراضية hsoub على الخادوم externalnyc: sudo mkdir -p /etc/tinc/hsoub/hostsافتح ملف tinc للتعديل عليه: sudo nano /etc/tinc/hsoub/tinc.confأضف الأسطر التالية: Name = externalnyc AddressFamily = ipv4 Interface = tun0تعد التعليمات جهازا باسم externalnyc بواجهة شبكة تسمى tun0 تستخدم الإصدار الرابع من بروتوكول IP. احفظ الملف ثم أغلقه. ثم ننشئ ملفا لإعداد المستضيفات على الخادوم externalnyc: sudo nano /etc/tinc/netname/hosts/externalnycأضف الأسطر التالية إلى الملف (حيث externalnyc_public_IP عنوان IP العمومي للخادوم): Address = externalnyc_public_IP Subnet = 10.0.0.1/32تستخدم الخواديم الأخرى الملف للتخاطب مع الخادوم externalnyc. تحدد التعليمة Addressعنوان IP المُستخدّم للاتصال بهذا الخادوم فيما تعين Subnet الشبكة الفرعية التي سيستخدمها Tinc. احفظ الملف ثم أغلقه. أنشئ الآن زوج المفاتيح الخاصة بالمستضيف: sudo tincd -n hsoub -K4096ينشئ الأمر مفتاحا خاصا (يوجد على المسار etc/tinc/hsoub/rsa_key.priv/) ويضيف المفتاح العمومي إلى ملف إعداد المستضيف externalnyc الذي أنشأناه قبل قليل (etc/tinc/hsoub/hosts/externalnyc/). يجب الآن أن ننشئ tinc-up وهو سكربت يعمل على أي خادوم تشغَّل عليه شبكتنا الخاصة الافتراضية. sudo nano /etc/tinc/hsoub/tinc-upأضف الأسطر التالية: #!/bin/sh ifconfig $INTERFACE 10.0.0.1 netmask 255.255.255.0يعمل هذا السكربت على إنشاء واجهة شبكة تستخدمها الشبكة الخاصة الافتراضية عند تشغيلها. سيكون عنوان هذا الخادوم على الشبكة الخاصة الافتراضية 10.0.0.1. سننشئ أيضا سكربت لحذف واجهة الشبكة الخاصة الافتراضية عند إيقاف هذه الأخيرة: sudo nano /etc/tinc/hsoub/tinc-downأضف الأسطر التالية: #!/bin/sh ifconfig $INTERFACE downاحفظ الملف ثم أغلقه. نجعل سكربتات tinc قابلة للتنفيذ: sudo chmod 755 /etc/tinc/netname/tinc-*احفظ الملف ثم أغلقه. ننتقل لإعداد بقية الأجهزة الموجودة في الشبكة الخاصة الافتراضية. إعداد internalnyc وams1يتوجب تنفيذ هذه الخطوات على كل من الخادومين internalnyc وams1 مع اختلافات طفيفة بينهما سنشير إليها. أنشئ هيكل مجلد إعداد الشبكة الخاصة الافتراضية المسماة hsoub على الخادومين internalnyc وams1 وعدل ملف إعداد Tinc: sudo mkdir -p /etc/tinc/hsoub/hosts sudo nano /etc/tinc/hsoub/tinc.confأضف الأسطر التالية (أبدل node_name باسم الخادوم): Name = node_name AddressFamily = ipv4 Interface = tun0 ConnectTo = externalnycتعد التعليمات الخواديم لمحاولة الاتصال بexternalnyc (العقدة التي أنشأناها قبل هذا). احفظ الملف ثم أغلقه. ملحوظة: يستخدم Tinc مصطلح العقدة Node للدلالة على جهاز مربوط بالشبكة الخاصة الافتراضية.. ننشئ ملف إعداد المستضيف: sudo nano /etc/tinc/hsoub/hosts/node_nameبالنسبة لinternalnyc أضف السطر التالي: Subnet = 10.0.0.2/32وبالنسبة لams1: Subnet = 10.0.0.3/32لاحظ الفرق بين العنوانين. احفظ الملف ثم أغلقه. ثم ولّد زوج المفاتيح: sudo tincd -n hsoub -K4096وأنشئ السكربت الخاص ببدء تشغيل واجهة الشبكة: sudo nano /etc/tinc/hsoub/tinc-upبالنسبة لinternalnyc أضف السطر التالي: ifconfig $INTERFACE 10.0.0.2 netmask 255.255.255.0وبالنسبة لams1: ifconfig $INTERFACE 10.0.0.3 netmask 255.255.255.0تستخدم عناوين IP المذكورة للاتصال بالشبكة الخاصة الافتراضية. احفظ الملف ثم أغلقه. أنشئ سكربت الإيقاف الخاص بواجهة الشبكة: sudo nano /etc/tinc/hsoub/tinc-downأضف السطر التالي: ifconfig $INTERFACE downاحفظ الملف ثم أغلقه. في الأخير نجعل السكربت قابلا للتنفيذ: sudo chmod 755 /etc/tinc/hsoub/tinc-*يجب الآن أن نوزع ملفات إعدادات المستضيف على كل عقدة من الشبكة الخاصة الافتراضية. توزيع المفاتيحلكي يستطيع جهازان التخاطب مباشرة ضمن الشبكة الخاصة الافتراضية فيجب عليهما تبادل المفاتيح العمومية التي توجد في ملف إعدادات المستضيف الخاص بكل جهاز. في حالتنا فقط الخادوم externalnyc يحتاج لتبادل المفاتيح العمومية مع بقية الخواديم. يسهل نقل كل مفتاح عمومي إلى جميع الأجهزة إدارة الشبكة الخاصة الافتراضية. ينبغي الانتباه إلى أنه يجب تغيير قيمة التعليمة Address ضمن ملف الإعداد الخاص بexternalnyc بعد نسخه على الخادوم internalnyc وإبدالها بعنوان IP المحلي للخادوم externalnyc لكي يُجرى الاتصال عبر الشبكة المحلية. توجد ملفات إعدادات المستضيف على المسار etc/tinc/hsoub/hosts/ حيث hsoub اسم الشبكة الخاصة الافتراضية. تبادل المفاتيح بين الخادومين externalnyc وinternalnycانسخ ملف إعداد المستضيف على الخادوم internalnyc إلى externalnyc (يُنفَّذ الأمر على الخادوم internalnyc): scp /etc/tinc/hsoub/hosts/internalnyc user@externalnyc_private_IP:/tmpثم انقل الملف إلى المجلَّد المناسب على الخادوم externalnyc (يُنفَّذ الأمر على الخادوم externalnyc): cd /etc/tinc/hsoub/hosts; sudo cp /tmp/internalnyc .نكرر نفس الخطوات في الاتجاه المعاكس. انسخ ملف إعداد المستضيف على الخادوم externalnyc إلى internalnyc(يُنفَّذ الأمر على الخادوم externalnyc): scp /etc/tinc/hsoub/hosts/externalnyc user@internalnyc_private_IP:/tmpثم انقل الملف إلى المجلَّد المناسب على الخادوم internalnyc (يُنفَّذ الأمر على الخادوم internalnyc): cd /etc/tinc/hsoub/hosts; sudo cp /tmp/externalnyc .نعدّل على ملف إعداد المستضيف externalnyc بعد نسخه على الخادوم internalnyc ونغير قيمة التعليمة Address ونبدلها بعنوان IP الخادوم externalnycضمن الشبكة المحلية (وهو ما يعني أن internalnyc سيتصل بexternalnyc عبر الشبكة المحلية): sudo nano /etc/tinc/hsoub/hosts/externalnycأعط القيمة externalnyc_private_IP للتعليمة Address(حيث externalnyc_private_IP عنوان externalnyc في الشبكة المحلية): Address = externalnyc_private_IPاحفظ الملف ثم أغلقه. ننتقل الآن للعقدة المتبقية، ams1. تبادل المفاتيح بين الخادومين externalnyc وams1نتبع نفس الخطوات السابقة. نبدأ بنسخ ملف إعداد المستضيفات الخاص بams1 على الخادوم externalnyc: scp /etc/tinc/hsoub/hosts/ams1 user@externalnyc_public_IP:/tmpثم انتقل إلى externalnyc وانقل الملف إلى المجلد المناسب: cd /etc/tinc/hsoub/hosts; sudo cp /tmp/ams1 .نكرر نفس الخطوات في الاتجاه المعاكس؛ فننسخ ملف إعدادات المستضيف الخاص ب externalnyc على ams1: scp /etc/tinc/hsoub/hosts/externalnyc user@ams1_public_IP:/tmpوننقل الملف إلى المجلد المناسب على الخادوم ams1: cd /etc/tinc/hsoub/hosts; sudo cp /tmp/externalnyc . تبادل المفاتيح بين العقد الإضافيةإن كانت الشبكة الخاصة الافتراضية التي تعدها تتضمن عقدا إضافية فيجب تبادل المفاتيح العمومية بينها بنفس الطريقة المشروحة في الفقرات السابقة. تذكر أنه يجب على عقدتين من الشبكة تبادل المفاتيح العمومية (ملفات إعداد المستضيف) إن كنت تريد أن يكون التخاطب بينهما مباشرا. اختبار الإعدادشغل أداة Tinc على كل واحد من الخواديم، بدءا بالخادوم externalnyc، مع تفعيل وضع التنقيح Debug: sudo tincd -n hsoub -D -d3يجب بعد تشغيل البرنامج أن تظهر أسماء العقد في المخرجات حال اتصالها بالخادوم externalnyc. في ما يلي نختبر الاتصال عبر الشبكة الخاصة الافتراضية. افتح نافذة جديدة لسطر الأوامر على الخادوم ams1 وجرب تنفيذ أمر ping مع إعطائه عنوان IP الخادوم internalnyc ضمن الشبكة الخاصة الافتراضية (أي 10.0.0.2 الذي ضبطناه سابقا): ping 10.0.0.2ينبغي أن يعمل الأمر دون مشاكل. سترى في نافذة سطر الأوامر الأولى بعض المخرجات المتعلقة بالاتصال عبر الشبكة الخاصة الافتراضية. يعني هذا أن ams1 قادر على التخاطب مع internalnyc عبر الشبكة الخاصة الافتراضية مرورا بexternalnyc. اضغط الزرين CTRL وC لتوقيف أمر ping في النافذة الجديدة. يمكن استخدام واجهات الشبكة الخاصة الافتراضية في أمور مثل اتصالات التطبيقات و SSH. لإيقاف وضعية التنقيح اضغط الزرين CTRL و\. ملحوظة: تأكد من إعدادات الجدار الناري لديك إن لم تعمل الاتصالات في الشبكة الخاصة الافتراضية. إعداد Tinc للعمل مع بدء تشغيل النظاميجب وضع اسم الشبكة الخاصة الافتراضية في ملف الإعداد nets.boot لكي تعمل بطريقة صحيحة. حرر ملف nets.boot على كل عقدة: sudo nano /etc/tinc/nets.bootأضف أسماء الشبكات الخاصة الافتراضية التي تستعملها، بالنسبة للمثال اسم الشبكة هو hsoub: # This file contains all names of the networks to be started on system startup. hsoubاحفظ الملف ثم أغلقه. Tinc معد الآن للعمل مع بدء تشغيل النظام؛ ويمكن اسخدام سطر الأوامر للتحكم فيه. استخدم الأمر التالي على كل عقدة إن أردت تشغيله الآن: sudo service tinc startخاتمةقدمنا في هذا المقال الخطوات الأساسية لإنشاء شبكة خاصة افتراضية باستخدام Tinc. يمكن البناء على ما أعددناه هنا لإنشاء شبكة تلبي احتياجاتك. يتميز Tinc بالمرونة ويمكن إعداد أي عقدة للاتصال بعقدة أخرى وبالتالي إنشاء شبكة غير مركزية لا تعتمد على خادوم واحد للتوجيه. ترجمة -وبتصرف- للمقال How To Install Tinc and Set Up a Basic VPN on Ubuntu 14.04 لصاحبه Mitchell Anicas.
  12. من المرغوب عادةً عند الانتقال من خادوم إلى آخر أن تُنقَل قواعد الجدار الناري iptables كجزءٍ من العملية؛ سيشرح هذا الدرس لك كيف تنسخ بسهولة القواعد المُفعّلة لجدار iptables من خادوم إلى آخر. المتطلبات المسبقةيتطلب هذا الدرس وجود خادومَين؛ سنشير إلى الخادوم المصدر (الذي توجد فيه قواعد iptables) بالخادوم A، والخادوم الوجهة (الذي ستُنقَل إليه القواعد) بالخادوم B. ستحتاج إلى امتيازات الجذر على كلي الخادومين. عرض قواعد Iptables الموجودةقبل نقل قواعد iptables، لننظر إليها أولًا؛ يمكنك فعل ذلك عبر تطبيق هذا الأمر على الخادوم A: sudo iptables -Sمثالٌ عن ناتج الأمر السابق: -P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -s 15.15.15.51/32 -j DROPستُستخدَم القواعد الناتجة في المثال السابق لشرح عملية نقل الجدار الناري. تصدير قواعد Iptablesيكتب الأمر iptables-save قواعد iptables الحالية إلى stdout (مجرى الخرج القياسي)؛ مما يمنحنا طريقةً سهلةً لتصدير قواعد الجدار الناري إلى ملف، وذلك عبر إعادة توجيه stdout إلى ملف. استخدم الأمر iptables-save على الخادوم A -الذي تريد نقل القواعد منه- لتصدير القواعد الحالية إلى ملف باسم «iptables-export» كما يلي: cd ~ sudo iptables-save > iptables-exportهذا سيُنشئ الملف iptables-export في مجلد المنزل (home) الخاص بمستخدمك؛ يمكن أن يُستخدَم هذا الملف على خادومٍ آخر لتحميل قواعد الجدار الناري إلى iptables. عرض محتويات الملف (خطوة اختيارية)لنلقِ نظرةً سريعةً على محتويات الملف؛ سنستخدم الأمر cat لإظهار الملف على الطرفية: cat iptables-exportسيكون ناتج الأمر السابق شبيهًا بما يلي: # Generated by iptables-save v1.4.21 on Tue Sep 1 17:32:29 2015 *filter :INPUT ACCEPT [135:10578] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [8364:1557108] -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -s 15.15.15.51/32 -j DROP COMMIT # Completed on Tue Sep 1 17:32:29 2015كما لاحظت، يحتوي الملف على ضبط قواعد iptables المُفعّلة؛ نحن جاهزون الآن لنسخ هذا الملف إلى الوجهة، التي هي الخادوم B. نسخ القواعد المصدرة إلى الخادوم الوجهةسنحتاج إلى نسخ ملف القواعد إلى الخادوم الوجهة (الخادوم B)؛ أسهل طريقة لفعل ذلك هي استخدام scp أو نسخ محتويات الملف ثم لصقها في ملفٍ جديد على الخادوم B. سنشرح كيفية استخدام الأمر scp لنسخ الملف عبر الشبكة إلى مجلد ‎/tmp. نفِّذ أمر scp الآتي على الخادوم A؛ تأكد أنك قد استبدلت الأجزاء المعلّمة ببيانات دخولك إلى الخادوم وعنوان IP له: scp iptables-export *user*@*server_b_ip_address*:/tmpسيُنسَخ الملف إلى مجلد ‎/tmp في الخادوم B بعد الاستيثاق (authentication)؛ الحظ أن محتويات المجلد ‎/tmp ستُحذَف عند إعادة الإقلاع، لذا يمكنك نسخ ذاك الملف إلى مكانٍ آخر إن أردت الاحتفاظ به. استيراد قواعد Iptablesبعد نسخ القواعد المُصدَّرة إلى الخادوم الوجهة، فيمكننا الآن تحميلها إلى iptables؛ لكن -وبالاعتماد على بيئتك- ربما تحتاج إلى تحديث القواعد في الملف ووضع عناوين ومجالات IP جديدة، وربما تريد أيضًا أن تعدِّل أسماء البطاقات الشبكيّة؛ إذا أردت أن تعدِّل القواعد قبل تحميلها، فعليك تعديل الملف ‎/tmp/iptables-export الآن. بعد أن تكون جاهزًا لتحميل القواعد من ملف iptables-export إلى iptables، فاستخدم الأمر iptables-restore لفعل ذلك. على الخادوم الوجهة (الخادوم B)، نفِّذ هذا الأمر لتحميل قواعد الجدار الناري: sudo iptables-restore < /tmp/iptables-exportسيحمِّل الأمر السابق القواعد إلى ipables، يمكنك التحقق من تحميلها بوساطة الأمر sudo iptables -S. حفظ القواعدتكون قواعد Iptables مؤقتةً، لذلك يجب أخذ الحيطة عند التعامل معها للحفاظ عليها حتى بعد إعادة الإقلاع؛ سيكون عليك تنفيذ هذه الخطوة على الخادوم B. سنشرح كيفية حفظ القواعد على توزيعتَي أوبنتو و CentOS. توزيعة أوبنتوإن أسهل طريقة لحفظ قواعد Iptables في أوبنتو لكي تبقى بعد إعادة الإقلاع هي استخدام حزمة iptables-persistent؛ يمكنك تثبيتها باستخدام الأمر apt-get: sudo apt-get install iptables-persistentستُسأل أثناء التثبيت إذا ما كنتَ تريد حفظ قواعد الجدار الناري الحالية؛ اختر yes إذا أردت حفظها. إذا حدَّثتَ قواعد جدارك الناري في المستقبل، وأردت حفظ التعديلات، فنفِّذ هذا الأمر: sudo invoke-rc.d iptables-persistent saveتوزيعة CentOS 6 وما قبلهاعلى توزيعة CentOS 6 وما قبلها (حيث تستخدم CentOS 7 افتراضيًا جدار FirewallD الناري)، يمكنك استخدام سكربت init الخاص بتطبيق iptables لحفظ القواعد: sudo service iptables saveسيحفظ الأمر السابق قواعد iptables الحالية إلى الملف ‎/etc/sysconfig/iptables، الذي يحمَّل بوساطة iptables عند الإقلاع. الخلاصةتهانينا، لقد أتممت نقل قواعد جدارك الناري من خادومك الأصلي إلى خادومك الجديد. ترجمة -وبتصرف- للمقال: How To Migrate Iptables Firewall Rules to a New Server لصاحبه: Mitchell Anicas.
  13. إن UFW هو أداةٌ لضبط iptables موجودٌ افتراضيًا في أوبنتو؛ يوفِّر هذا الدرس مرجعًا سريعًا لأوامر UFW التي ستُنشِئ قواعد جدار iptables الناري لحالات الاستخدام الشائعة، وهذا يتضمن أمثلةً عن استخدام UFW للسماح وحجب مختلف الخدمات عبر المنفذ، والبطاقة الشبكيّة، وعنوان IP المصدر. كيف تستخدم هذا الدرسإذا كنت قد بدأت لتوِّك باستخدام UFW لضبط جدارك الناري، فراجع الدرس تمهيد إلى UFW.تفترض أغلبية القواعد المشروحة هنا أنك تستخدم مجموعة قواعد UFW الافتراضية؛ التي تكون مضبوطةً للسماح بالاتصالات الصادرة وحجب الاتصالات الواردة، لذا عليك أن تنتقي البيانات التي تريد تمريرهااستعمل الأمثلة الموجودة في الأقسام المتتالية الملائمة لما تودّ تحقيقه؛ لا تعتمد أغلبية الأقسام في هذا الدرس على بعضها بعضًا، لذا يمكنك استخدام الأمثلة الآتية استخدامًا مستقلًاانسخ والصق الأمثلة عن الأوامر الموجودة في هذا الدرس، مستبدلًا قيمك بالقيم المُعلَّمة بالأحمرتذكر أنك تستطيع أن تتحقق من مجموعة قواعد UFW الحالية عبر الأمر sudo ufw status أو sudo ufw status verbose. حجب عنوان IPنفِّذ الأمر الآتي لحجب جميع الاتصالات الشبكية التي تُنشَأ من عنوان IP معيّن، مثلًا 15.15.15.51: sudo ufw deny from 15.15.15.51يُحدِّد التعبير from 15.15.15.51 في المثال السابق عنوان IP مصدري (source IP) هو «15.15.15.51»؛ يمكنك تحديد شبكة فرعية مثل 15.15.15.0/24 إن أردت ذلك. يمكن تحديد عنوان IP مصدري في أيّة قاعدة من قواعد الجدار الناري، بما في ذلك قاعدة allow. حجب الاتصالات إلى بطاقة شبكية معينةاستعمل هذا الأمر لحجب جميع الاتصالات من عنوان IP محدد (على سبيل المثال، 15.15.15.51) إلى بطاقة شبكيّة معيّنة، مثل eth0: sudo ufw deny in on eth0 from 15.15.15.51يشبه هذا الأمرُ الأمرَ السابق، لكن مع زيادة التعبير in on eth0. يمكن تحديد البطاقة الشبكية في أيّة قاعدة من قواعد الجدار الناري، وهذه طريقةٌ ممتازةٌ لتحديد الدور الذي تلعبه بطاقة شبكية معيّنة. خدمة SSHإذا كنتَ تستخدم خادومًا سحابيًا، فربما تريد السماح لاتصالات SSH الواردة (المنفذ 22) لذا يمكنك الاتصال وإدارة خادومك؛ يشرح هذا القسم كيف تَضبط جدارك الناري بمختلف القواعد المتعلقة بخدمة SSH. السماح لاتصالات SSHتستطيع استخدام الأمر الآتي للسماح باتصالات SSH الواردة: sudo ufw allow sshصيغةٌ بديلةٌ عن الصيغةِ السابقة هي تحديد رقم المنفذ بدلًا من اسم خدمة SSH: sudo ufw allow 22السماح لاتصالات SSH الواردة من عنوان IP معين أو شبكة فرعيةللسماح باتصالات SSH الواردة من عنوان IP معيّن أو شبكة فرعية، فعليك تحديد المصدر؛ على سبيل المثال، إذا أردت السماح لكامل الشبكة الفرعية 15.15.15.0/24، فنفِّذ هذا الأمر: sudo ufw allow from 15.15.15.0/24 to any port 22السماح لاتصالات Rsync الواردة من عنوان IP معين أو شبكة فرعيةيمكن أن يُستخدَم Rsync (الذي يعمل على المنفذ 873) لنقل الملفات من حاسوبٍ إلى آخر. للسماح باتصالات rsync الواردة من عنوان IP معيّن أو شبكة فرعية، فحدد عنوان IP المصدري والمنفذ الوجهة؛ على سبيل المثال، إذا أردت السماح لكامل الشبكة الفرعية 15.15.15.0/24 باستخدام rsync على خادومك، فنفِّذ الأمر الآتي: sudo ufw allow from 15.15.15.0/24 to any port 873خادم الويبتستمع خوادم الويب -مثل أباتشي و Nginx- للطلبيات على المنفذين 80 و 443 لاتصالات HTTP و HTTPS على التوالي وبالترتيب. إذا كانت السياسة الافتراضية للاتصالات الواردة هي الحجب أو التجاهل، فربما تريد إنشاء قواعد تسمح لخادومك بالرد على تلك الطلبيات. السماح لجميع اتصالات HTTP الواردةاستخدم الأمر الآتي للسماح لجميع اتصالات HTTP (المنفذ 80) الواردة: sudo ufw allow httpصيغةٌ بديلةٌ عن الصيغةِ السابقة هي تحديد رقم المنفذ بدلًا من اسم خدمة HTTP: sudo ufw allow 80السماح لجميع اتصالات HTTPS الواردةاستخدم الأمر الآتي للسماح لجميع اتصالات HTTPS (المنفذ 443) الواردة: sudo ufw allow httpsصيغةٌ بديلةٌ عن الصيغةِ السابقة هي تحديد رقم المنفذ بدلًا من اسم خدمة HTTPS: sudo ufw allow 443السماح لجميع اتصالات HTTP و HTTPS الواردةإذا أردت السماح لاتصالات HTTP و HTTPS معًا، فيمكنك إنشاء قاعدة وحيدة تسمح لكلي المنفذين؛ وذلك بتنفيذ الأمر الآتي: sudo ufw allow proto tcp from any to any port 80,443الحظ أنك ستحتاج إلى تحديد البروتوكول (باستخدام proto tcp) عند تحديد عدِّة منافذ. قواعد بيانات MySQLتستمع MySQL إلى اتصالات العميل على المنفذ 3306؛ إذا كان سيُستخدَم خادم قواعد بيانات MySQL من عميلٍ على خادوم بعيد؛ فتأكد أنك تسمح بمرور تلك البيانات الشبكية. السماح لاتصالات MySQL الواردة من عنوان IP معين أو شبكة فرعيةللسماح باتصالات MySQL الواردة من عنوان IP معيّن أو شبكة فرعية، فحدِّد المصدر؛ على سبيل المثال، تستطيع تنفيذ هذا الأمر إذا أردت السماح للشبكة الفرعية 15.15.15.0/24: sudo ufw allow from 15.15.15.0/24 to any port 3306السماح لاتصالات MySQL الواردة إلى بطاقة شبكية معينةاستخدم الأمر الآتي للسماح لاتصالات MySQL لبطاقة شبكيّة معيّنة -لنفترض أنّك تملك بطاقة شبكيّة خاصة باسم eth1-: sudo ufw allow in on eth1 to any port 3306قواعد بيانات PostgreSQLتستمع PostgreSQL إلى اتصالات العميل على المنفذ 5432 إذا كان سيُستخدَم خادم قواعد بيانات PostgreSQL من عميلٍ على خادوم بعيد؛ فتأكد أنك تسمح بمرور تلك البيانات الشبكية. السماح لاتصالات PostgreSQL الواردة من عنوان IP معين أو شبكة فرعيةللسماح باتصالات PostgreSQL الواردة من عنوان IP معيّن أو شبكة فرعية، فحدِّد المصدر؛ على سبيل المثال، تستطيع تنفيذ هذا الأمر إذا أردت السماح للشبكة الفرعية 15.15.15.0/24: sudo ufw allow from 15.15.15.0/24 to any port 5432السماح لاتصالات PostgreSQL الواردة إلى بطاقة شبكية معينةاستخدم الأمر الآتي للسماح لاتصالات PostgreSQL لبطاقة شبكيّة معيّنة -لنفترض أنّك تملك بطاقة شبكيّة خاصة باسم eth1-: sudo ufw allow in on eth1 to any port 5432خدمة البريدتستمع خوادم البريد مثل Sendmail و Postfix إلى تشكيلة واسعة من المنافذ بناءً على البروتوكولات المستخدمة لتوصيل البريد؛ إذا كنت تُشغِّل خادوم بريدٍ إلكتروني، فحدِّد البروتوكولات التي تستخدمها واسمح للاتصالات الموافقة لها. سنستعرض أيضًا مثالًا عن إنشاء قاعدة لحجب بريد SMTP الصادر. حجب بريد SMTP الصادرربما تريد أن تحجب بريد SMTP الصادر إذا لم يكن من المفترض لخادومك أن يُرسِل بريدًا إلكترونيًّا؛ استخدم الأمر الآتي لحجب بريد SMTP الصادر (الذي يستخدم المنفذ 25): sudo ufw deny 25يضبط الأمر السابق خادومك لتجاهل كل البيانات المُرسَلة على المنفذ 25؛ إذا أردت أن تحجب خدمةً أخرى عبر رقم منفذها، فضع رقم المنفذ الخاص بها بدلًا من 25. السماح لجميع اتصالات SMTP الواردةللسماح لخادومك بالرد على اتصالات SMTP على المنفذ 25، فعليك تنفيذ الأمر الآتي: sudo ufw allow 25ملاحظة: من الشائع لخوادم SMTP أن تستخدم المنفذ 587 للبريد الصادر. السماح لجميع اتصالات IMAP الواردةللسماح لخادومك بالرد على اتصالات IMAP على المنفذ 143، فعليك تنفيذ الأمر الآتي: sudo ufw allow 143السماح لجميع اتصالات IMAPS الواردةللسماح لخادومك بالرد على اتصالات IMAPS على المنفذ 993، فعليك تنفيذ الأمر الآتي: sudo ufw allow 993السماح لجميع اتصالات POP3 الواردةللسماح لخادومك بالرد على اتصالات POP3 على المنفذ 110، فعليك تنفيذ الأمر الآتي: sudo ufw allow 110السماح لجميع اتصالات POP3S الواردةللسماح لخادومك بالرد على اتصالات POP3S على المنفذ 995، فعليك تنفيذ الأمر الآتي: sudo ufw allow 995الخلاصةيجب أن يكون قد غطى هذا الدرس الكثير من الأوامر شائعة الاستخدام عند استعمال UFW لضبط الجدار الناري؛ وبالطبع إن UFW هو أداةٌ مرنةٌ جدًا، لذلك تستطيع دمج مختلف الخيارات مع الأوامر السابقة لملائمة متطلبات خادومك إن لم تكن تلك الأوامر مبيّنةً هنا. ترجمة -وبتصرف- للمقال: UFW Essentials: Common Firewall Rules and Commands لصاحبه: Mitchell Anicas.
  14. Iptables هو برمجية جدار ناري مضمَّنة افتراضيًّا في أغلبية توزيعات لينُكس. يوفِّر هذا الدرس مرجعًا سريعًا لأوامر iptables التي ستُنشِئ قواعدًا لحالات الاستخدام الشائعة، وهذا يتضمن أمثلةً عن استخدام iptables للسماح وحجب مختلف الخدمات عبر المنفذ، والبطاقة الشبكيّة، وعنوان IP المصدر. كيف تستخدم هذا الدرسإذا كنت قد بدأت لتوِّك باستخدام iptables لضبط جدارك الناري، فراجع الدرس تمهيد إلى iptables.تفترض أغلبية القواعد المشروحة هنا أنَّ iptables مضبوطٌ لتجاهل الاتصالات الواردة عبر السياسة الافتراضية، لذا عليك أن تنتقي البيانات التي تريد تمريرها.استعمل الأمثلة الموجودة في الأقسام المتتالية الملائمة لما تودّ تحقيقه؛ لا تعتمد أغلبية الأقسام في هذا الدرس على بعضها بعضًا، لذا يمكنك استخدام الأمثلة الآتية استخدامًا مستقلًا.انسخ والصق الأمثلة عن الأوامر الموجودة في هذا الدرس، مستبدلًا قيمك بالقيم المُعلَّمة بالأحمر.أبقِ في بالك أنَّ ترتيب القواعد مهم؛ تستخدم جميع أوامر iptables الآتية الخيار ‎-A الذي يُلحِق (append) القاعدة الجديدة إلى نهاية سلسلة، إذا أردت وضعها في مكانٍ آخر، فيمكنك استخدام الخيار ‎-I الذي يسمح لك بتحديد موقع القاعدة الجديدة (أو ببساطة وضعها في بداية السلسلة [chain] إن لم تُحدِّد رقمًا للقاعدة). ملاحظة: احذر عند العمل مع الجدر النارية أن تمنع نفسك من الدخول إلى خادومك عبر حجب اتصالات SSH (المنفذ 22 افتراضيًّا)؛ إذا فقدت القدرة على الوصول إلى خادومك بسبب ضبط جدارك الناري، فستحتاج إلى الدخول عبر !طرفية محلية! لتقويم الخلل. بعد أن تسجل دخولك عبر الطرفية المحلية، يمكنك تعديل قواعد جدارك الناري للسماح بالوصول إلى خدمة SSH (أو السماح بعبور جميع بيانات التراسل الشبكي)؛ إذا كانت قواعد جدارك الناري المحفوظة تسمح بالوصول عبر SSH، فستتمكن عبر إعادة تشغيل الخادوم من الاتصال مجددًا عبر SSH. تذكَّر أنك تستطيع التحقق من مجموعة قواعد iptables الحالية بالأمرَين sudo iptables -S و sudo iptables -L. لنلقِ نظرةً على أوامر iptables. حفظ القواعدتكون قواعد iptables مؤقتة، مما يعني أنه من الضروري حفظها يدويًا لكي تبقى بعد إعادة الإقلاع. توزيعة أوبنتوأسهل طريقة لحفظ قواعد iptables في أوبنتو كي تبقى حتى لو أُعيد الإقلاع هي استخدام الحزمة iptables-persistent؛ ثبِّتها عبر apt-get كما يلي: sudo apt-get install iptables-persistentستُسأل أثناء التثبيت إذا ما كنت تريد حفظ قواعد جدارك الناري الحالية. إذا حدَّثت قواعد جدارك الناري وأردت حفظ التغييرات، فنفِّذ الأمر الآتي: sudo invoke-rc.d iptables-persistent saveتوزيعة CentOS 6 وما قبلهايمكنك استخدام سكربت init لجدار iptables لحفظ القواعد في توزيعة CentOS 6 وما قبلها (تَستخدم توزيعة CentOS 7 جدار FirewallD افتراضيًّا): sudo service iptables saveسيحفظ الأمر السابق قواعد iptables الحالية إلى ملف ‎/etc/sysconfig/iptables. قواعد مفيدة عمومايتضمن هذا القسم تشكيلةً من أوامر iptables التي ستُنشِئ قواعدًا مفيدةً في أغلبية الخواديم. السماح بالاتصالات إلى بطاقة Loopbackبطاقة «loopback» (التي يُشار إليها أيضًا بالاسم lo) هي البطاقة التي يستخدمها الحاسوب لإجراء اتصالات شبكيّة مع نفسه؛ على سبيل المثال، إذا شغَّلت ping localhost أو ping 127.0.0.1، فإن خادومك سيجري عملية ping لنفسه باستخدام بطاقة loopback؛ يمكن الاستفادة أيضًا من بطاقة loopback إذا ضَبطتَ تطبيقك للاتصال إلى خادوم قواعد بيانات ذي العنوان «localhost»؛ ولهذا عليك أن تتأكد أنَّ جدارك الناري يسمح بمرور لهذه الاتصالات. لقبول مرور جميع بيانات التراسل الشبكي على بطاقة loopback، فعليك تنفيذ هذين الأمرين: sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A OUTPUT -o lo -j ACCEPTالسماح للاتصالات الواردة المنشأة والمتعلقةيجب عادةً أن تمر بيانات التراسل الشبكي باتجاهين (صادرة وواردة) لكي تعمل الاتصالات الشبكية عملًا صحيحًا؛ من الاعتيادي إنشاء قاعدة في الجدار الناري للسماح بالاتصالات الواردة المُنشَأة (established) والمتعلقة (related)، مما يمكِّن الخادوم من استقبال البيانات المُرجَعة من اتصالات صادرة بدأها الخادوم نفسه؛ سيكون الأمر كما يلي: sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPTالسماح بمرور البيانات للاتصالات الصادرة المنشأةربما تود السماح للبيانات الصادرة لجميع الاتصالات المُنشَأة، التي تكون عادةً الرد على الاتصالات الواردة المسموح لها؛ الأمر الذي يفعل بذلك هو: sudo iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPTالتمرير من الشبكة الداخلية إلى الخارجيةعلى فرض أنَّ eth0 هي شبكتك الخارجية، و eth1 هي شبكتك الداخلية، فإن الأمر الآتي سيسمح بتمرير البيانات من الشبكة الداخلية إلى الخارجية: sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPTتجاهل الرزم الشبكية غير الصالحةتُعلَّم بعض الرزم الشبكية على أنها «غير صالحة» (invalid)؛ قد يكون مفيدًا في بعض الأخيان تسجيل هذا النوع من الرزم لكن يكون عادةً من المقبول تجاهلها. يمكنك فعل ذلك بوساطة هذا الأمر: sudo iptables -A INPUT -m conntrack --ctstate INVALID -j DROPحجب عنوان IPاستعمل الأمر الآتي لحجب الاتصالات الشبكية التي تنحدر من عنوان IP معيّن، ولنقل أنه 15.15.15.51 مثلًا: sudo iptables -A INPUT -s 15.15.15.51 -j DROPيُحدِّد التعبير ‎-s 15.15.15.51 عنوان IP المصدري على أنه «15.15.15.51»، يمكن أن يُحدَّد عنوان IP المصدري في أيّة قاعدة من قواعد الجدار الناري، بما في ذلك قواعد السماح (allow). إذا كنت تريد «رفض» (reject) الاتصال بدلًا من تجاهله (أي سيكون الرد على الاتصال هو خطأ «connection refused») فبدِّل «DROP» إلى «REJECT» كما يلي: sudo iptables -A INPUT -s 15.15.15.51 -j REJECTحجب الاتصالات إلى بطاقة شبكيةلحجب جميع الاتصالات من عنوان IP معيّن (15.15.15.51 مثلًا)، إلى بطاقة شبكيّة معيّنة (eth0 مثلًا) فاستخدم هذا الأمر: iptables -A INPUT -i eth0 -s 15.15.15.51 -j DROPيشبه هذا الأمر كثيرًا الأمرَ في الفقرة السابقة، لكنه يزيد عنه بالتعبير ‎-i eth0؛ يمكن تحديد البطاقة الشبكية في أيّة قاعدة من قواعد الجدار الناري، وهذه طريقةٌ رائعةٌ لجعل قاعدةٍ ما محدودةً إلى شبكةٍ معيّنةٍ فقط. خدمة SSHإذا كنتَ تستخدم خادومًا سحابيًا، فربما تريد السماح لاتصالات SSH الواردة (المنفذ 22) لذا يمكنك الاتصال وإدارة خادومك؛ يشرح هذا القسم كيف تضبط جدارك الناري بمختلف القواعد المتعلقة بخدمة SSH. السماح لاتصالات SSHتستطيع استخدام الأمرين الآتيين للسماح لجميع اتصالات SSH الواردة: sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPTالأمر الثاني (الذي يسمح بمرور بيانات التراسل الشبكي لاتصالات SSH المُنشَأة) مطلوبٌ فقط إذا لم تكن سياسة OUTPUT مضبوطةً إلى ACCEPT. السماح لاتصالات SSH الواردة من عنوان IP معين أو شبكة فرعيةللسماح باتصالات SSH الواردة من عنوان IP معيّن أو شبكة فرعية، فعليك تحديد المصدر؛ على سبيل المثال، إذا أردت السماح لكامل الشبكة الفرعية 15.15.15.0/24، فنفِّذ هذين الأمرين: sudo iptables -A INPUT -p tcp -s 15.15.15.0/24 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPTالأمر الثاني (الذي يسمح بمرور بيانات التراسل الشبكي لاتصالات SSH المُنشَأة) مطلوبٌ فقط إذا لم تكن سياسة OUTPUT مضبوطةً إلى ACCEPT. السماح لاتصالات SSH الصادرةإذا لم تكن سياسة OUTPUT في جدارك الناري مضبوطةً إلى ACCEPT، فربما تريد السماح لاتصالات SSH الصادرة (أي أن يبدأ خادومك اتصال SSH إلى خادومٍ آخر) بتنفيذ هذين الأمرين: sudo iptables -A OUTPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A INPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPTالسماح لاتصالات Rsync الواردة من عنوان IP معين أو شبكة فرعيةيمكن أن يُستخدَم Rsync (الذي يعمل على المنفذ 873) لنقل الملفات من حاسوبٍ إلى آخر. للسماح باتصالات rsync الواردة من عنوان IP معيّن أو شبكة فرعية، فحدِّد عنوان IP المصدري والمنفذ الوجهة؛ على سبيل المثال، إذا أردت السماح لكامل الشبكة الفرعية 15.15.15.0/24 باستخدام rsync على خادومك، فنفِّذ الأمرين الآتيين: sudo iptables -A INPUT -p tcp -s 15.15.15.0/24 --dport 873 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 873 -m conntrack --ctstate ESTABLISHED -j ACCEPTالأمر الثاني (الذي يسمح بمرور بيانات التراسل الشبكي لاتصالات rsync المُنشَأة) مطلوبٌ فقط إذا لم تكن سياسة OUTPUT مضبوطةً إلى ACCEPT. خادم الويبتستمع خوادم الويب -مثل أباتشي و Nginx- للطلبيات على المنفذين 80 و 443 لاتصالات HTTP و HTTPS على التوالي وبالترتيب. إذا كانت السياسة الافتراضية للاتصالات الواردة هي الحجب أو التجاهل، فربما تريد إنشاء قواعد تسمح لخادومك بالرد على تلك الطلبيات. السماح لجميع اتصالات HTTP الواردةاستخدم الأمرين الآتيين للسماح لجميع اتصالات HTTP (المنفذ 80) الواردة: sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPTالأمر الثاني (الذي يسمح بمرور بيانات التراسل الشبكي لاتصالات HTTP المُنشَأة) مطلوبٌ فقط إذا لم تكن سياسة OUTPUT مضبوطةً إلى ACCEPT. السماح لجميع اتصالات HTTPS الواردةاستخدم الأمرين الآتيين للسماح لجميع اتصالات HTTPS (المنفذ 443) الواردة: sudo iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPTالأمر الثاني (الذي يسمح بمرور بيانات التراسل الشبكي لاتصالات !HTTPS! المُنشَأة) مطلوبٌ فقط إذا لم تكن سياسة OUTPUT مضبوطةً إلى ACCEPT. السماح لجميع اتصالات HTTP و HTTPS الواردةإذا أردت السماح لجميع اتصالات HTTP و HTTPS الواردة معًا، فيمكنك استخدام الوحدة (module) ‏«mulitport» لإنشاء قاعدة تسمح بمرور البيانات على كلي المنفذين؛ وذلك عبر الأمرين الآتيين: sudo iptables -A INPUT -p tcp -m multiport --sports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp -m multiport --sports 80,443 -m conntrack --ctstate ESTABLISHED -j ACCEPTالأمر الثاني (الذي يسمح بمرور بيانات التراسل الشبكي لاتصالات HTTP و HTTPS المُنشَأة) مطلوبٌ فقط إذا لم تكن سياسة OUTPUT مضبوطةً إلى ACCEPT. قواعد بيانات MySQLتستمع MySQL إلى اتصالات العميل على المنفذ 3306؛ إذا كان سيُستخدَم خادم قواعد بيانات MySQL من عميل على خادوم بعيد؛ فتأكد أنك تسمح بمرور تلك البيانات الشبكية. السماح لاتصالات MySQL الواردة من عنوان IP معين أو شبكة فرعيةللسماح باتصالات MySQL الواردة من عنوان IP معيّن أو شبكة فرعية، فحدِّد المصدر؛ على سبيل المثال، تستطيع تنفيذ هذين الأمرين إذا أردت السماح للشبكة الفرعية 15.15.15.0/24: sudo iptables -A INPUT -p tcp -s 15.15.15.0/24 --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPTالأمر الثاني (الذي يسمح بمرور بيانات التراسل الشبكي لاتصالات MySQL المُنشَأة) مطلوبٌ فقط إذا لم تكن سياسة OUTPUT مضبوطةً إلى ACCEPT. السماح لاتصالات MySQL الواردة إلى بطاقة شبكية معينةاستخدم الأمر الآتي للسماح لاتصالات MySQL لبطاقة شبكيّة معيّنة -لنفترض أنّك تملك بطاقة شبكيّة خاصة باسم eth1-: sudo iptables -A INPUT -i eth1 -p tcp --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -o eth1 -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPTالأمر الثاني (الذي يسمح بمرور بيانات التراسل الشبكي لاتصالات MySQL المُنشَأة) مطلوبٌ فقط إذا لم تكن سياسة OUTPUT مضبوطةً إلى ACCEPT. قواعد بيانات PostgreSQLتستمع PostgreSQL إلى اتصالات العميل على المنفذ 5432 إذا كان سيُستخدَم خادم قواعد بيانات PostgreSQL من عميل على خادومٍ بعيد؛ فتأكد أنك تسمح بمرور تلك البيانات الشبكية. السماح لاتصالات PostgreSQL الواردة من عنوان IP معين أو شبكة فرعيةللسماح باتصالات PostgreSQL الواردة من عنوان IP معيّن أو شبكة فرعية، فحدِّد المصدر؛ على سبيل المثال، تستطيع تنفيذ هذين الأمرين إذا أردت السماح للشبكة الفرعية 15.15.15.0/24: sudo iptables -A INPUT -p tcp -s 15.15.15.0/24 --dport 5432 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 5432 -m conntrack --ctstate ESTABLISHED -j ACCEPTالأمر الثاني (الذي يسمح بمرور بيانات التراسل الشبكي لاتصالات PostgreSQL المُنشَأة) مطلوبٌ فقط إذا لم تكن سياسة OUTPUT مضبوطةً إلى ACCEPT. السماح لاتصالات PostgreSQL الواردة إلى بطاقة شبكية معينةاستخدم الأمر الآتي للسماح لاتصالات PostgreSQL لبطاقة شبكيّة معيّنة -لنفترض أنّك تملك بطاقة شبكيّة خاصة باسم eth1: sudo iptables -A INPUT -i eth1 -p tcp --dport 5432 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -o eth1 -p tcp --sport 5432 -m conntrack --ctstate ESTABLISHED -j ACCEPTالأمر الثاني (الذي يسمح بمرور بيانات التراسل الشبكي لاتصالات PostgreSQL المُنشَأة) مطلوبٌ فقط إذا لم تكن سياسة OUTPUT مضبوطةً إلى ACCEPT. خدمة البريدتستمع خوادم البريد مثل Sendmail و Postfix إلى تشكيلة واسعة من المنافذ بناءً على البروتوكولات المستخدمة لتوصيل البريد؛ إذا كنت تُشغِّل خادوم بريدٍ إلكتروني، فحدِّد البروتوكولات التي تستخدمها واسمح للاتصالات الموافقة لها. سنستعرض أيضًا مثالًا عن إنشاء قاعدة لحجب بريد SMTP الصادر. حجب بريد SMTP الصادرربما تريد أن تحجب بريد SMTP الصادر إذا لم يكن من المفترض لخادومك أن يرسل بريدًا إلكترونيًّا؛ استخدم الأمر الآتي لحجب بريد SMTP الصادر (الذي يستخدم المنفذ 25): sudo iptables -A OUTPUT -p tcp --dport 25 -j REJECTيضبط الأمر السابق خادومك لتجاهل كل البيانات المُرسَلة على المنفذ 25؛ إذا أردت أن تحجب خدمةً أخرى عبر رقم منفذها، فضع رقم المنفذ الخاص بها بدلًا من 25. السماح لجميع اتصالات SMTP الواردةللسماح لخادومك بالرد على اتصالات SMTP على المنفذ 25، فعليك تنفيذ الأمرين الآتيين: sudo iptables -A INPUT -p tcp --dport 25 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 25 -m conntrack --ctstate ESTABLISHED -j ACCEPTالأمر الثاني (الذي يسمح بمرور بيانات التراسل الشبكي لاتصالات SMTP المُنشَأة) مطلوبٌ فقط إذا لم تكن سياسة OUTPUT مضبوطةً إلى ACCEPT. ملاحظة: من الشائع لخوادم SMTP أن تستخدم المنفذ 587 للبريد الصادر. السماح لجميع اتصالات IMAP الواردةللسماح لخادومك بالرد على اتصالات IMAP على المنفذ 143، فعليك تنفيذ الأمرين الآتيين: sudo iptables -A INPUT -p tcp --dport 143 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 143 -m conntrack --ctstate ESTABLISHED -j ACCEPTالأمر الثاني (الذي يسمح بمرور بيانات التراسل الشبكي لاتصالات IMAP المُنشَأة) مطلوبٌ فقط إذا لم تكن سياسة OUTPUT مضبوطةً إلى ACCEPT. السماح لجميع اتصالات IMAPS الواردةللسماح لخادومك بالرد على اتصالات IMAPS على المنفذ 993، فعليك تنفيذ الأمرين الآتيين: sudo iptables -A INPUT -p tcp --dport 993 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 993 -m conntrack --ctstate ESTABLISHED -j ACCEPTالأمر الثاني (الذي يسمح بمرور بيانات التراسل الشبكي لاتصالات IMAPS المُنشَأة) مطلوبٌ فقط إذا لم تكن سياسة OUTPUT مضبوطةً إلى ACCEPT. السماح لجميع اتصالات POP3 الواردةللسماح لخادومك بالرد على اتصالات POP3 على المنفذ 110، فعليك تنفيذ الأمرين الآتيين: sudo iptables -A INPUT -i -p tcp --dport 110 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 110 -m conntrack --ctstate ESTABLISHED -j ACCEPTالأمر الثاني (الذي يسمح بمرور بيانات التراسل الشبكي لاتصالات POP3 المُنشَأة) مطلوبٌ فقط إذا لم تكن سياسة OUTPUT مضبوطةً إلى ACCEPT. السماح لجميع اتصالات POP3S الواردةللسماح لخادومك بالرد على اتصالات POP3S على المنفذ 995، فعليك تنفيذ الأمرين الآتيين: sudo iptables -A INPUT -p tcp --dport 995 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 995 -m conntrack --ctstate ESTABLISHED -j ACCEPTالأمر الثاني (الذي يسمح بمرور بيانات التراسل الشبكي لاتصالات POP3S المُنشَأة) مطلوبٌ فقط إذا لم تكن سياسة OUTPUT مضبوطةً إلى ACCEPT. الخلاصةيجب أن يكون قد غطى هذا الدرس الكثير من الأوامر شائعة الاستخدام عند استعمال iptables لضبط الجدار الناري؛ وبالطبع iptables هو أداةٌ مرنةٌ جدًا، لذلك تستطيع دمج مختلف الخيارات مع الأوامر السابقة لملائمة متطلبات خادومك إن لم تكن تلك الأوامر مبيّنةً هنا. ترجمة -وبتصرف- للمقال: Iptables Essentials: Common Firewall Rules and Commands لصاحبه: Mitchell Anicas.
  15. تُعتبر الشبكات موضوعًا واسع التفاصيل مليئًا بالتشعبات بالنسبة للعديد من مديري الأنظمة المبتدئين، فهناك الكثير من الأدوات والخدمات التي يجب الإلمام بها لفهم هذه المواضيع بشكل جيّد، كالطبقات Layers المختلفة للإتصال، الواجهات Interfaces، والبروتوكولات Protocols. يُغطّي هذا الدرس مفهوم المنافذ Ports وكيفيّة استخدام برنامج Nmap للحصول على معلومات حول حالة منافذ الجهاز على الشبكة. ملاحظةيُغطّي هذا الدرس النسخة الرابعة من بروتوكول الإنترنت الآمن IPv4. في أنظمة غنو لينكس يُحفظ IPv6 بشكل منفصل عن IPv4، فعلى سبيل المثال تفحص الأداة Nmap عناوين IPv4 افتراضيًا، أما لفحص عناوين IPv6 فنحن نحتاج إلى تحديد الخيار المناسب (nmap -6). إذا ضُبط خادومك لاستخدام IPv6، فلا تنسَ من فضلك تأمين واجهات شبكة كل من IPv4 و IPv6 بالأدوات المناسبة. لمزيد من المعلومات حول أدوات IPv6 يمكنك الرجوع إلى درس كيفية استخدام IPv6 في خواديم غنو لينكس ما هي المنافذ؟يتألف نموذج OSI كما نعلم من سبع طبقات وتُعتبر طبقة النقل transport layer مسؤولة في المقام الأوّل عن الترابط ما بين الخدمات المختلفة و التطبيقات، وهي الطبقة التي ترتبط معها المنافذ بشكل رئيسي. مصطلحات المنافذلنفهم عملية ضبط المنافذ بشكل جيّد نحتاج إلى بعض المعرفة بالمصطلحات المُستخدمة في هذا المجال؛ لذا نعرض هنا عدّة مصطلحات تساعدك في فهم المناقشة التي ستتلوها. المنفذ Port: هو منطقة اتصال قابلة للعنونة، مُطبّقة داخل نظام التشغيل (ليست ماديّة)، تساعد على تمييز حركة البيانات المتجهة لمختلف التطبيقات والخدمات. مقابس الإنترنت Internet Sockets: هو ملف واصف يُحدّد عنوان IP ورقم المنفذ المرتبط به ونوع البروتوكول المستخدم في طبقة النقل لمعالجة البيانات. الربط أو التقييد Binding: هي العملية التي تحجز أو تحدّد مكانًا عندما يستعمل أحد التطبيقات أو الخدمات مقبس إنترنت للتعامل مع البيانات قيد الإرسال والاستقبال. الاستماع Listening: نقول عن خدمة ما أنها “تستمع” على منفذ، عندما يتم تقييد عنوان مركّب من منفذ/بروتوكول/عنوان IP من أجل انتظار الطلبات من عملاء الخدمة. وعند استلام الطلب يُؤسّس اتصال مع العميل (عند الحاجة) باستخدام نفس المنفذ الذي يتم الاستماع إليه، حيث مقابس الإنترنت المستخدمة ترتبط بعنوان IP مُحدّد للعميل، وهذا لا يمنع الخادوم من الاستماع إلى طلبات العملاء الآخرين وتلبية طلباتهم في نفس الوقت. فحص المنفذ Port Scanning: هي العملية التي تسعى للاتصال مع عدد من المنافذ بشكل متعاقب، بغرض الحصول على معلومات حول ما هي المنافذ المفتوحة منها، وما هي الخدمات وأنظمة التشغيل التي تعمل ورائها.المنافذ الشائعةتُحدّد المنافذ بأرقام تقع ضمن المجال من 1 إلى 65535. العديد من المنافذ التي تقع تحت الرقم 1024 ترتبط مع الخدمات التي يعتبرها لينكس والأنظمة الشهبية بيونكس Unix-like حسّاسة أو خطرة لوظائف الشبكة الأساسيّة وتُسمى "بالمنافذ المعروفة"، لذا يتوجب عليك الحصول على صلاحيات الجذر root لتخصيص خدمات هذه المنافذ. تُعتبر المنافذ التي تنتمي للمجال بين 1024 و49151 مُسجّلة، وهذا يعني أنها قد تكون "محفوظة" (بالمعنى الواسع للكلمة) لخدمات معينة، يتم ذلك بتقديم طلب إلى هيئة IANA (الهيئة الدولية المسؤولة عن ذلك)، والتي لا تُطبقها بشكل صارم، وإنما يمكنها أن تعطي دليلًا عن الخدمات التي يمكن تشغيلها على منفذ معيّن. أما المنافذ الواقعة في المجال بين 49152 و65535 فتسمى بالمنافذ المتغيّرة وهي التي لا يمكن تسجيلها، وتُقترح للاستخدام الخاص. ونظرًا لوجود عدد كبير من المنافذ المتاحة، فلا ينبغي القلق حيال الغالبية العظمى من الخدمات التي تربط عادةً منافذ معيّنة. بكل الأحوال هناك بعض الخدمات التي من الجيّد معرفة المنافذ التي ترتبط بها: 20: بيانات FTP 21: منفذ تحكم FTP 22: SSH 23: Telnet. غير آمن، لا يُنصح باستخدامه 25: SMTP 43: بروتوكول WHOIS 53: خدمات DNS 67: منفذ خدمة DHCP 68: منفذ عميل DHCP 80: HTTP traffic. حركة الوِب العاديّة 110: منفذ البريد POP3 113: Ident الخدمات الموثقّة على شبكات IRC 143: منفذ البريد IMAP 161: SNMP 194: IRC 389: منفذ LDAP 443: HTTPS. حركة الوِب المُشفّرة 587: SMTP. منفذ تسليم البريد 631: منفذ خدمة الطباعة CUPS 666: DOOM. منفذ ألعاب 3D هذه فقط بعض الخدمات الشائعة المرتبطة بمنافذ، ويمكنك دومًا أن تجد المنافذ المناسبة للتطبيقات التي ترغب بضبطها ضمن مستندات التوثيق الخاصة بكلّ منها. معظم الخدمات يمكن ضبطها لتستعمل منافذ أخرى غير تلك الافتراضية، لكن ينبغي عليك التأكد دومًا أن كلًا من المخدّم والعميل قد ضُبطا لاستعمال ذات المنفذ. يمكنك الحصول على قائمة صغيرة ببعض المنافذ الشائعة من خلال الأمر: less /etc/services يطبع الأمر السابق قائمة بالمنافذ الشائعة والخدمات المرتبطة بها: … tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp qotd 17/tcp quote msp 18/tcp # message send protocol …وسنستعرض لاحقًا عند حديثنا عن nmap كيف يمكنك الحصول على قائمة شاملة بجميع المنافذ. كيفية فحص المنافذ المفتوحة على جهازكهناك عدد من الأدوات التي يمكن استخدامها لفحص المنافذ المفتوحة. واحدة من هذه الأدوات تدعى netstat وهي تأتي بشكل افتراضي مع معظم توزيعات غنو لينكس. يمكنك بسهولة استعراض الخدمات قيد التشغيل عبر تنفيذ الأمر التالي: sudo netstat -plunt Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 785/sshd tcp6 0 0 :::22 :::* LISTEN 785/sshdيعرض الخرج السابق منافذ ومقابس الإنترنت المُستمع عليها والمرتبطة مع خدمات وقوائم كلًا من بروتوكولي UDP وTCP . تركيب Nmapيعتبر اختبار "قابلية الإصابة" جزءًا مُهمًا من عملية تأمين وحماية الشبكات، وهذا يعني أن تحاول التسلل إلى شبكتك الخاصة واكتشاف مواطن الضعف فيها بنفس الطريقة التي قد يتبعها مهاجم ما. ومن بين كل الأدوات المتاحة لهذا الغرض، فإن nmap هي الأكثر شيوعًا وقوّة. لتثبيت nmap على دبيان أو Ubuntu والأنظمة المبنية عليهما: sudo apt-get update sudo apt-get install nmap إحدى الفوائد الجانبية لتثبيت هذا التطبيق هي تحسين ملف تعيين mapping file المنافذ، والذي يضم قائمة أوسع بكثير من الارتباطات ما بين الخدمات والمنافذ. less /usr/share/nmap/nmap-services … tcpmux 1/tcp 0.001995 # TCP Port Service Multiplexer [rfc-1078] tcpmux 1/udp 0.001236 # TCP Port Service Multiplexer compressnet 2/tcp 0.000013 # Management Utility compressnet 2/udp 0.001845 # Management Utility compressnet 3/tcp 0.001242 # Compression Process compressnet 3/udp 0.001532 # Compression Process unknown 4/tcp 0.000477 rje 5/udp 0.000593 # Remote Job Entry unknown 6/tcp 0.000502 echo 7/tcp 0.004855 echo 7/udp 0.024679 echo 7/sctp 0.000000 …لا يُشكّل الخرج السابق سوء جزءًا بسيطًا جدًا من ما يقارب 20 ألف سطر، مزوّدة بحقول إضافيّة، كالعمود الثالث الذي يسرد التردد المفتوح للمنفذ كما هو أثناء إجراء البحث على الإنترنت. كيفية فحص المنافذ باستخدام Nmapيمكن لـ nmap أن يكشف الكثير من المعلومات حول المضيفhost، لذا فإن استخدامه قد يجعل مديري الأنظمة يعتقدون أن شخصًا ما لديه نوايا خبيثة، لهذا السبب اختبر nmap فقط على الخوادم التي تملكها بالفعل أو التي يمكنك إخبار أصحابها بما تريد القيام به. في الحالات الأخرى يمكنك استخدام خادوم scanme.nmap.org والذي يقدّمه فريق عمل nmap لأغراض الاختبار والتعلّم. نبدأ الآن باستعراض بعض العمليات التي يمكنك القيام بها مع nmap، وسوف نستخدم أثناء ذلك صلاحيات الجذر root لتجب إرجاع نتائج جزئية مع بعض الاستفسارات. بعض الأوامر كذلك قد تستغرق وقتًا طويلًا لإكمالها. إجراء فحص لنظام تشغيل المُضيف: sudo nmap -O remote_host إذا كنت قد حصلت على الرد "Note: Host seems down" في اختبار سابق فنحن بحاجة لتخطّي اكتشاف جزء من الشبكة وتحميل المضيف أونلاين، أضف هذا الخيار: sudo nmap -PN remote_host تحديد نطاق باستخدام "-" لفحص عدد من المضيفين دفعةً واحدة: sudo nmap -PN xxx.xxx.xxx.xxx-yyy فحص نطاق الشبكة للخدمات المتوفرة: sudo nmap -sP network_address_range فحص من دون إجراء بحث DNS عكسي على عنوان IP محدد؛ وذلك بهدف تسريع النتائج في معظم الحالات: sudo nmap -n remote_host فحص منفذ مُحدّد بدلًا من كافة المنافذ: sudo nmap -p port_number remote_host لفحص اتصالات TCP مع منفذ مستهدف لدينا ثلاث طرق (موضحة في الأسفل)، نفّذ الأمر التالي: sudo nmap -sT remote_host لفحص اتصالات UDP نفّذ: sudo nmap -sU remote_host لفحص منافذ TCP و UDP المفتوحة: sudo nmap -n -PN -sT -sU -p- remote_host يعتبر فحص SYN من أقوى الفحوص حيث يستغل الطريقة التي يؤسّس بها بروتوكول TCP اتصالًا فيرسل رزمة SYN تسمح بالاتصال مع النظام وعرض المعلومات أول بأول لبدء اتصال TCP، يرسل الجهاز رزمة packet "طلب تزامن" إلى الخادوم، فإذا كان المنفذ مفتوح ولا يوجد جداري ناري يمنع الاتصال حينها يُعيد الخادوم رزمة بـ"إقرار تزامن" synchronized acknowledgment، يعود الجهاز المرسل بإكمال العملية مرسلًا رزمة "إقرار" مجددًا إلى الخادوم، ويتم الاتصال. أسلوب الـ "SYN" في الفحص، من الأكثر الأساليب استخدامًا ويسمى أيضًا فحص half-open لأنه لن يقوم بالاعتماد على النظام وإنشاء اتصال TCP بدلًا عن ذلك تقوم الأداة Nmap بإنشاء وإرسال رزمة لتتصل مع النظام، وفي حال الحصول على استجابة فهذا يعني أن المنفذ مفتوح: sudo nmap -sS remote_host أسلوب آخر يمكن إتباعه للمزيد من التخفي وذلك بإرسال TCP غير صالحة، فإذا توافق المضيف مع مواصفات TCP فحينها سيرسل رزمة عائدة في حال كان المنفذ مُغلقًا. تعمل هذه الطريقة على الخوادم المُشغّلة بأنظمة غير مبنية على Windows. يمكنك استخدام الخيارات "sF", "-sX-" أو "sN-" وجميعها ستعطينا الاستجابة المطلوبة: sudo nmap -PN -p port_number -sN remote_host لمعرفة ما هو إصدار الخدمة التي تعمل على المُضيف يمكنك تجريب الأمر التالي، والذي يحاول تحديد الخدمة ورقم إصدارها باختبار استجابات مختلفة من الخادوم: sudo nmap -PN -p port_number -sV remote_host هناك بالتأكيد عدد آخر كبير من تراكيب الأوامر والتي يمكنك استخدامها مع nmap، لكن يمكن لما سبق أن يشكّل بداية في استكشاف نقاط الضعف وقابلية الإصابة للشبكة الخاصة بك. الخاتمةإن فهم ضبط المنافذ واكتشاف المسارات المحتلمة للهجوم على خادومك هي مهارة أساسية و الخطوة الأولى فقط لتحقيق أمن المعلومات على خادومك الخاص. اكتشاف المنافذ المفتوحة وطبيعة المعلومات التي يمكن الحصول عليها من الخدمات التي تقبل الاتصالات على هذه المنافذ يمنحك المعرفة التي تحتاجها لتأمين الخادوم الخاص بك، حتى المعلومات العرضية التي قد تتسرب من جهازك يمكن استخدامها من قبل المتطفلين في محاولة استغلال نقاط الضعف المعروفة أو تطوير أخرى جديدة، لذا فإنه كلما كان ما يمكن معرفته أقل كلما كان ذلك أفضل. OSI Open Systems Interconnection Basic Reference Model أو النموذج المرجعي الأساسي لترابط الأنظمة المفتوحة، هو نموذج مرجعي وضعته منظمة المعايير الدولية ISO عام 1977 ليكون مرجعًا أو نموذجًا يشرح كيف يجب أن تُصمم البروتوكولات بطريقة معياريّة.
×
×
  • أضف...