[{"data":1,"prerenderedAt":219},["ShallowReactive",2],{"seo-verification":3,"blog-قائمة-تدقيق-أمان-vps-شهرية-للعملاء-للوكالات-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-قائمة-تدقيق-أمان-vps-شهرية-للعملاء-للوكالات-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":168,"ctaBody":169,"ctaButton":170,"ctaUrl":171,"relatedPosts":172},521,"قائمة-تدقيق-أمان-vps-شهرية-للعملاء-للوكالات",{"fr":12,"en":13,"ar":10,"es":14},"checklist-audit-securite-mensuel-vps-clients-agence","monthly-security-audit-checklist-client-vps-agency","auditoria-seguridad-mensual-vps-clientes-agencia-checklist","تدقيق أمان VPS شهري للعميل: قائمة في 45 دقيقة","سبعة فحوصات شهرية لخادم VPS العميل: التحديثات والنواة وحسابات SSH والمنافذ والشهادات والنسخ الاحتياطية والسجلات، مع تقرير مؤرخ.",10,0,false,"2026-10-28T00:00:00+00:00","2026-10-29T03:10:22+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fchecklist-audit-securite-mensuel-vps-clients-agence-poster.svg","لا يسأل العميل هل خادمه آمن، بل يسأل منذ متى تعرفون ذلك. الوكالة التي لا تملك روتينًا لا تستطيع الجواب يوم ظهور ثغرة ولا عند تجديد العقد. تمرّ هذه القائمة في 45 دقيقة، لكل VPS، على سبعة فحوصات للقراءة فقط: التحديثات المعلّقة، والنواة، وحسابات SSH ومفاتيحه، والمنافذ المفتوحة، والشهادات، والنسخ الاحتياطية المستعادة، وسجلات المصادقة. وتنتهي بتقرير مؤرخ من صفحة واحدة تسلّمونه للعميل وتقارنونه من شهر إلى آخر.",[35,39,42,52,77,111,114,117,138,142,150,153,156,165],{"type":36,"title":37,"body":38},"h2","تحقّق من حالة قائمة، لا تعد بناءها","يتم تقوية VPS الأولية مرة واحدة عند التسليم: مفاتيح SSH وجدار الحماية وfail2ban والتحديثات التلقائية. وقد فصّلتها قائمة التقوية لدينا. هنا نفترض أن كل ذلك موجود ونسأل هل ما زال صامدًا. حزمة بقيت معلّقة، وحساب أُنشئ لمتعاقد ولم يُحذف، ومنفذ فُتح لاختبار، وشهادة يفشل تجديدها بصمت: لا شيء من ذلك يظهر ما دمنا لا ننظر. فالتدقيق الشهري إذن روتين مراقبة لا إعداد. كل فحص ينتج مخرجات تؤرشفونها وحالة خضراء أو برتقالية أو حمراء في تقرير العميل. تُسجَّل المخالفة ولا تُصحَّح دون اتفاق.",{"type":36,"title":40,"body":41},"حدّد النطاق قبل أول تدقيق","قبل أول أمر، دوّنوا كتابةً من المسؤول عن ماذا. هل الخادم ملك للعميل أم للوكالة؟ من يحتفظ بحساب root، ومن يتلقى التنبيهات، ومن يقرر إعادة التشغيل؟ بلا أجوبة تتحول أول مخالفة إلى نزاع: هل كان للوكالة الحق في تصحيحها، وهل أُبلغ العميل؟ أدرجوا خمس نقاط في العقد أو أمر الشراء: الخوادم المشمولة، وتواتر التدقيق، والوصول الممنوح للقراءة فقط، ومهلة الاستجابة عند مخالفة حمراء، وقائمة الإجراءات التي تستطيع الوكالة تنفيذها وحدها، مثل تطبيق تحديث أمني، مقابل تلك التي تتطلب موافقة العميل، مثل إعادة التشغيل أو حذف حساب.",{"type":43,"title":44,"items":45},"ul","ما يُجهَّز مرة واحدة قبل التدقيق",[46,47,48,49,50,51],"**حساب تدقيق مخصص** — مستخدم باسم صاحبه مع `sudo` محصور في قراءة السجلات وفحص الشبكة، بدل حساب root مشترك.","**قائمة متوقعة لكل VPS** — المنافذ التي يجب أن تستمع، والحسابات المصرّح بها، والنطاقات المخدومة، وأداة النسخ الاحتياطي ومستودعها. بلا مرجع لا تتميز المخالفة عن السلوك العادي.","**سكربت جمع للقراءة فقط** — يسلسل أوامر القائمة ويكتب كل شيء في ملف مؤرخ، فلا يُكتب كل أمر إلا مرة واحدة.","**مجلد أرشيف لكل عميل** — مجلد فرعي لكل شهر، محفوظ خارج الخادم المدقَّق، لتمكين مقارنة الأشهر.","**نموذج تقرير** — القالب نفسه لجميع العملاء، يُملأ من المخرجات المجمّعة.","**تقويم** — يوم ثابت من الشهر لكل عميل، مدوّن في أجندة الفريق، وإلا سقط التدقيق في أول شهر مزدحم.",{"type":53,"title":54,"steps":55},"steps","الفحوصات السبعة وميزانية وقت كل منها",[56,59,62,65,68,71,74],{"title":57,"body":58},"التحديثات المعلّقة (6 دقائق)","`sudo apt update`\n`apt list --upgradable 2>\u002Fdev\u002Fnull`\n`apt list --upgradable 2>\u002Fdev\u002Fnull | grep -i security`\nاعزلوا الحزم التي ينتهي مصدرها بـ `-security`: تُعالج أولًا. أما البقية فتمرّ بتحقق بشري، لأن قفزة إصدار رئيسية قد تكسر تطبيقًا. على AlmaLinux أو RHEL يؤدي `sudo dnf check-update --security` الدور نفسه. وحتى مع تفعيل التحديثات التلقائية يُظهر هذا الفحص ما بقي عالقًا.",{"title":60,"body":61},"النواة وإعادة التشغيل المعلّقة (4 دقائق)","`uname -r`\n`ls \u002Fboot\u002Fvmlinuz-*`\n`ls \u002Fvar\u002Frun\u002Freboot-required`\n`sudo needrestart -b -r l`\nإذا اختلفت أحدث نواة مثبّتة عن `uname -r`، أو وُجد `\u002Fvar\u002Frun\u002Freboot-required`، فإعادة التشغيل مستحقة. في مخرجات needrestart يبيّن السطر `NEEDRESTART-KSTA` هل النواة المحمّلة محدّثة، وتعرض القائمة الخدمات التي ما زالت تستخدم مكتبات قديمة. لا تُجرى إعادة التشغيل منفردًا أبدًا: تُجدول مع العميل.",{"title":63,"body":64},"الحسابات ومفاتيح SSH (8 دقائق)","`awk -F: '$3>=1000' \u002Fetc\u002Fpasswd`\n`getent group sudo`\n`sudo ssh-keygen -lf \u002Fhome\u002F\u003Cحساب>\u002F.ssh\u002Fauthorized_keys`\n`lastlog | grep -v 'Never logged in'`\n`last -n 20`\nيجب أن يقابل كل حساب بشري شخصًا معروفًا لدى العميل أو الوكالة. ويجب أن تعود كل بصمة مفتاح إلى شخص ما زال يعمل على المشروع. حساب لم يتصل منذ أشهر، أو مفتاح مجهول، يصير برتقاليًا ويُرسل إلى العميل للتحقق.",{"title":66,"body":67},"المنافذ المفتوحة (5 دقائق)","`sudo ss -tlnp`\n`sudo ss -ulnp`\n`sudo ufw status verbose`\nقارنوا النتيجة بالقائمة المتوقعة لهذا الخادم. قاعدة بيانات تستمع على كل الواجهات بدل الحلقة المحلية، أو منفذ اختبار منسي، أو خدمة مجهولة: تُسجَّل كل مخالفة مع العملية التي تفتحها، دون إغلاقها فورًا، لأن خدمة قد تعتمد على ذلك المنفذ.",{"title":69,"body":70},"الشهادات (4 دقائق)","`openssl s_client -connect your-domain‎.com:443 -servername your-domain‎.com \u003C\u002Fdev\u002Fnull 2>\u002Fdev\u002Fnull | openssl x509 -noout -enddate`\nاقرأوا تاريخ الانتهاء من الخدمة المعروضة فعلًا، لا من وجود مؤقّت التجديد فقط: فقد يفشل مؤقّت نشط كل ليلة. وإذا مرّ النطاق عبر CDN فهذا الأمر يقرأ شهادة الـ CDN. وللمصدر، استبدلوا المضيف في `-connect` بعنوان IP الخاص بالخادم مع إبقاء `-servername`.",{"title":72,"body":73},"النسخ الاحتياطية المستعادة (10 دقائق)","`restic snapshots`\n`restic restore latest --target \u002Ftmp\u002Frestore-test --include \u002Fetc\u002Fnginx`\nدوّنوا تاريخ آخر نقطة استعادة، ثم استعيدوا فعلًا ملفًا أو قاعدة بيانات في مجلد مؤقت وافتحوه. النسخة التي لم تُستعَد قط ليست دليلًا بل فرضية. احذفوا المجلد المؤقت بعد ذلك. وإذا استخدم العميل أداة أخرى فالمنطق نفسه: قائمة النقاط، واستعادة جزئية، وفحص المحتوى.",{"title":75,"body":76},"سجلات المصادقة (8 دقائق)","`sudo journalctl -u ssh --since '30 days ago' --no-pager | grep -c 'Failed password'`\n`sudo journalctl -u ssh --since '30 days ago' --no-pager | grep 'Accepted'`\n`sudo journalctl _COMM=sudo --since '30 days ago' --no-pager`\nأحصوا الإخفاقات، واسردوا الاتصالات الناجحة وابحثوا عن تلك القادمة من عنوان مجهول. راجعوا استخدامات `sudo`. على RHEL ومشتقاته تسمى الوحدة `sshd` لا `ssh`.",{"type":78,"title":79,"headers":80,"rows":84},"comparison","ميزانية الـ 45 دقيقة لكل VPS",[81,82,83],"الفحص","الأمر الأساسي","الوقت",[85,89,93,97,101,104,108],[86,87,88],"التحديثات المعلّقة","`apt list --upgradable`","6 دقائق",[90,91,92],"النواة وإعادة التشغيل","`needrestart -b -r l`","4 دقائق",[94,95,96],"الحسابات ومفاتيح SSH","`ssh-keygen -lf authorized_keys`","8 دقائق",[98,99,100],"المنافذ المفتوحة","`ss -tlnp`","5 دقائق",[102,103,92],"الشهادات","`openssl s_client`",[105,106,107],"النسخ الاحتياطية المستعادة","`restic restore`","10 دقائق",[109,110,96],"سجلات المصادقة","`journalctl -u ssh`",{"type":36,"title":112,"body":113},"سكربت جمع بدل سبع جلسات يدوية","الجزء الأكبر من الـ 45 دقيقة قراءة لا كتابة، بشرط ألا تُعاد كتابة الأوامر. اكتبوا سكربت `audit-vps` ينفذ أوامر الفحوصات من الأول إلى السابع ويوجّه كل مخرج إلى ملف يحمل اسم العميل والتاريخ، مثل `~\u002Faudits\u002Fclient-a\u002FYYYY-MM\u002Fraw-output‎.txt`. لا يحتوي إلا أوامر قراءة: لا `apt upgrade` ولا `systemctl restart` ولا `rm`. شغّلوه عبر SSH من محطتكم، واجلبوا الملف، ثم اقرأوه بهدوء. تبقى استعادة النسخة الاحتياطية الخطوة اليدوية الوحيدة، لأنها تتطلب الحكم على اتساق المحتوى المستعاد.",{"type":36,"title":115,"body":116},"أرشفوا وقارنوا: هنا يظهر الانحراف","التدقيق المنفرد يعطي لقطة، وتدقيقان متتاليان يعطيان اتجاهًا. احتفظوا بالمخرجات الخام لكل شهر ثم قارنوها بالشهر السابق عبر `diff -u previous-audit‎.txt current-audit‎.txt`. منفذ يظهر، وحساب زائد، وعدد إخفاقات اتصال تضاعف عشر مرات، ونقطة استعادة لم تعد تتحرك: كلها تبرز في أسطر قليلة من الاختلاف، بينما لا تُرى في مخرجات تُقرأ وحدها. أرشفوا كذلك التقرير المسلَّم للعميل. فيوم يسأل العميل منذ متى وُجد حساب أو متى طُبّق تصحيح، يكون الجواب ملفًا مؤرخًا لا ذكرى.",{"type":53,"title":118,"steps":119},"تقرير الصفحة الواحدة المسلَّم للعميل",[120,123,126,129,132,135],{"title":121,"body":122},"الترويسة","اسم العميل، ومعرّف الـ VPS، وعنوان IP، وتاريخ التدقيق، واسم من أجراه.",{"title":124,"body":125},"جدول الفحوصات السبعة","سطر لكل فحص مع حالة: أخضر إن لم يكن هناك ما يُبلَّغ عنه، وبرتقالي إن تطلبت المخالفة قرار العميل، وأحمر إن لزم إجراء عاجل.",{"title":127,"body":128},"المخالفات المرصودة","كل مخالفة في جملة واقعية واحدة مع الدليل: سطر المخرجات، والمنفذ، والحساب المعني.",{"title":130,"body":131},"الإجراءات المنفَّذة","ما طبقته الوكالة وحدها ضمن النطاق المتفق عليه، مثل تحديث أمني.",{"title":133,"body":134},"الإجراءات المعروضة على العميل للموافقة","إعادة التشغيل، وحذف حساب، وإغلاق منفذ، مع خطر عدم فعل شيء.",{"title":136,"body":137},"الموعد التالي","تاريخ التدقيق القادم، ولكل مخالفة برتقالية أو حمراء أجل نهائي للمعالجة.",{"type":139,"title":140,"body":141},"tip","سجّلوا المخالفة ولا تصحّحوها على الفور","رد الفعل بإغلاق المنفذ أو حذف الحساب المشبوه أثناء التدقيق هو الأكثر كلفة: تتوقف خدمة للعميل وتكون الوكالة قررت ذلك وحدها. دور التدقيق أن يجعل المخالفة ظاهرة ومؤرخة. ويتبع التصحيح مسار الموافقة المتفق عليه في البداية، حتى فيما يبدو بديهيًا.",{"type":43,"title":143,"items":144},"حين لا يقول المخرج ما يبدو أنه يقوله",[145,146,147,148,149],"**`needrestart` غير موجود** — الحزمة ليست مثبتة افتراضيًا في كل مكان. ثبّتوها مرة واحدة بموافقة العميل، أو قارنوا يدويًا `uname -r` بالنوى الموجودة في `\u002Fboot`.","**لا إخفاقات SSH في السجلات** — تحققوا من اسم الوحدة قبل الاستنتاج. بحسب التوزيعة تُسجَّل المصادقة تحت `ssh` أو `sshd` أو، في إصدارات OpenSSH الحديثة، `sshd-session`. جرّبوا `sudo journalctl _COMM=sshd-session --since '30 days ago'`.","**`ss -tlnp` لا يعرض العمليات** — بدون `sudo` يبقى عمود العمليات فارغًا لخدمات المستخدمين الآخرين.","**شهادة صالحة بينما يعرض الموقع خطأ** — قرأتم شهادة CDN أو vhost آخر. وجّهوا الطلب إلى عنوان الـ VPS ومرّروا `-servername` الصحيح.","**`restic` يطلب كلمة مرور** — المستودع مشفّر. احصلوا على السر من العميل قبل التدقيق لا أثناءه، وإلا سقط الفحص.",{"type":36,"title":151,"body":152},"اعتراض الوقت: 45 دقيقة لكل عميل كل شهر","عشرون عميلًا تعني خمس عشرة ساعة شهريًا، والاعتراض مشروع. وثلاث رافعات تخفّفه. أولًا، يُقاس الوقت لكل VPS لا لكل عميل: عميل بخادم واحد يكلّف 45 دقيقة، وأقل منذ الشهر الثاني لأن المراجع المتوقعة صارت مثبتة. ثانيًا، السكربت يجمع كل شيء وأنتم تقرأون فقط، ويُملأ التقرير من نموذج. وأخيرًا، قارنوا بكلفة حادثة لم تُكتشف: وصول منسي أو نسخة احتياطية غير صالحة تُكتشف يوم العطل، مع عميل متضايق وفاتورة إصلاح. الروتين أرخص من حادثة واحدة كان يمكن تفاديها.",{"type":36,"title":154,"body":155},"حين تكبر المحفظة","عند عشرة خوادم تتسع القائمة ليوم عمل. وعند خمسين تصير الصعوبة تنظيمية: معرفة ما لدى كل عميل، وأي مواعيد استحقاق تقع هذا الشهر، ومن دُقّق. تجمع مساحة الوكالات في ServOrbit.com خدمات كل عميل ومواعيد استحقاقه في واجهة واحدة، فتُغنيكم عن جدول بيانات موازٍ. وإذا فضّلت الوكالة ألا تتحمل الأساس النظامي بنفسها فخيار إدارة VPS موجود ويُدرس على حدة. هذا الدليل مقدَّم كما هو، دون دعم: تنفيذ التدقيق والمسؤولية تجاه العميل يبقيان عليكم.",{"type":43,"title":157,"items":158},"للمتابعة",[159,160,161,162,163,164],"**إرساء الأساس** — يصف \u002Fblog\u002Flinux-hardening-vps-checklist التقوية الأولية التي يتحقق منها هذا التدقيق.","**أتمتة التصحيحات** — يشرح \u002Fblog\u002Fsecurite-vps-mises-a-jour-automatiques-debian-ubuntu أداة unattended-upgrades التي يقيس الفحص الأول ما تبقى منها.","**النسخ الاحتياطي الصحيح** — يغطي \u002Fblog\u002Fbackup-vps-restic-s3-3-2-1 إعداد Restic الذي يتحقق الفحص السادس من استعادته.","**المراقبة المستمرة** — يكمّل \u002Fblog\u002Falertes-disque-ram-vps-monitoring-proactif التدقيق الشهري بتنبيهات بين مرورين.","**جرد إصدارات PHP** — يطبق \u002Fblog\u002Finventaire-versions-php-parc-sites-clients-agence الانضباط نفسه على أسطول المواقع.","**التفاعل مع ثغرة** — تبيّن أدلة التصحيح في فئة الأمان والمراقبة بالمدونة ما يتيحه جرد محدَّث في اليوم الأول.",{"type":36,"title":166,"body":167},"الوثائق الرسمية","خيارات apt: https:\u002F\u002Fmanpages.debian.org\u002Fstable\u002Fapt\u002Fapt.8.en.html\n\nمشروع needrestart: https:\u002F\u002Fgithub.com\u002Fliske\u002Fneedrestart\n\nالتحديث التلقائي في Debian: https:\u002F\u002Fwiki.debian.org\u002FUnattendedUpgrades\n\nالأمر ss: https:\u002F\u002Fman7.org\u002Flinux\u002Fman-pages\u002Fman8\u002Fss.8.html\n\nالأمر openssl s_client: https:\u002F\u002Fdocs.openssl.org\u002Fmaster\u002Fman1\u002Fopenssl-s_client\u002F\n\nالأمر journalctl: https:\u002F\u002Fwww.freedesktop.org\u002Fsoftware\u002Fsystemd\u002Fman\u002Flatest\u002Fjournalctl.html\n\nخدمة sshd: https:\u002F\u002Fman.openbsd.org\u002Fsshd.8\n\nالأمر last: https:\u002F\u002Fman7.org\u002Flinux\u002Fman-pages\u002Fman1\u002Flast.1.html","محفظة VPS مقروءة من مكان واحد","يصبح تدقيق الأسطول يدويًا غير قابل للإدارة حين تكبر المحفظة. تجمع مساحة الوكالات في ServOrbit.com خدمات كل عميل ومواعيد استحقاقه في واجهة واحدة، ويتيح خيار إدارة VPS تفويض الأساس النظامي.","اكتشف عرض الوكالات","\u002Fsolutions\u002Fagences",[173,190,205],{"id":174,"slug":175,"slugs":176,"title":180,"excerpt":181,"readTime":182,"views":183,"isPinned":19,"publishedAt":184,"updatedAt":185,"category":186,"categories":187,"featuredImage":30,"bgImage":31,"posterImage":189,"relatedSolution":30},317,"قائمة-تصليب-خادم-لينكس-للوكالات-بعد-التسليم",{"fr":177,"en":178,"ar":175,"es":179},"linux-hardening-vps-checklist","linux-vps-hardening-checklist-for-agencies","hardening-linux-vps-checklist-para-agencias-tras-la-entrega","قائمة تصليب خادم لينكس للوكالات بعد التسليم","قائمة تدقيق لتصليب لينكس قابلة للتكرار للوكالات: auditd وsudo ومفتاح SSH وUFW وfail2ban وإلغاء تفعيل root — مع إمكانية التتبع لكل عميل.",11,1,"2026-08-30T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[188],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Flinux-hardening-vps-checklist-poster.svg",{"id":191,"slug":192,"slugs":193,"title":197,"excerpt":198,"readTime":182,"views":18,"isPinned":19,"publishedAt":199,"updatedAt":200,"category":201,"categories":202,"featuredImage":30,"bgImage":31,"posterImage":204,"relatedSolution":30},508,"جرد-إصدارات-php-لمواقع-العملاء-منهج-للوكالات",{"fr":194,"en":195,"ar":192,"es":196},"inventaire-versions-php-parc-sites-clients-agence","php-version-inventory-for-client-sites-an-agency-method","inventario-de-versiones-php-de-sitios-cliente-metodo-de-agencia","جرد إصدارات PHP لمواقع العملاء: منهج للوكالات","سجل لإصدار PHP الذي يخدمه كل موقع عميل لدى عدة مستضيفين: مستويات الوصول، سكربتات دفعية، أولويات، رسالة للعميل وإثبات مؤرخ للتصحيح.","2026-10-27T00:00:00+00:00","2026-10-27T23:58:39+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[203],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Finventaire-versions-php-parc-sites-clients-agence-poster.svg",{"id":206,"slug":207,"slugs":208,"title":212,"excerpt":213,"readTime":182,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":214,"category":215,"categories":216,"featuredImage":30,"bgImage":31,"posterImage":218,"relatedSolution":30},523,"اختبار-استعادة-نسخة-احتياطية-vps-عميل-وكالة-إجراء",{"fr":209,"en":210,"ar":207,"es":211},"tester-restauration-sauvegarde-vps-client-agence-procedure","test-client-vps-backup-restore-agency-procedure","probar-restauracion-copia-seguridad-vps-cliente-agencia-procedimiento","اختبار استعادة النسخ الاحتياطية لعميل: إجراء للوكالات","إجراء فصلي لاستعادة موقع عميل على خادم VPS تجريبي مؤقت، وقياس RTO وRPO الفعليين، ثم تسليم العميل سجل اختبار مؤرخاً.","2026-10-29T03:10:23+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[217],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Ftester-restauration-sauvegarde-vps-client-agence-procedure-poster.svg",1793251160831]