
تقوية آلية بصفر ثقة وتدقيق جنائي لـ VMware vCenter Server Appliance (VCSA)
نص آلي لتعزيز أمان جهاز vCenter Server Appliance (VCSA) من VMware مصمم لفرض تجزئة الشبكة القائمة على الثقة الصفرية (Zero Trust) والتدقيق الجنائي العميق.
هذه الأداة مصممة لتخفيف المخاطر الحرجة المرتبطة بالتهديدات المستمرة المتقدمة (APTs) والحملات التخريبية التي تستهدف البنية التحتية الافتراضية. من خلال فرض تجزئة دقيقة للطبقة 3/4 وتسجيل أوامر الطب الشرعي، فإنها تحيد نواقل الهجوم الشائعة مثل الحركة الجانبية، والاتصال بخوادم القيادة والتحكم (C2)، والتلاعب بمكافحة الطب الشرعي. هذا يمنع الخصوم من استخدام VCSA كنقطة انطلاق لاختراق برامج إدارة ESXi الأساسية أو تنفيذ تخريب واسع النطاق للبنية التحتية.
اقرأ قبل التنفيذ: تقوم هذه الأداة بتعديل تكوين iptables الخاص بـ VCSA على مستوى نواة نظام التشغيل، متجاوزة واجهة VAMI القياسية.
أداة تعزيز أمان وتسجيل VCSA تنقل الوضع الأمني لخادم vCenter من نموذج "السماح الافتراضي" (Default Permit) إلى نموذج "الرفض الافتراضي" (Default Deny) (الثقة الصفرية). تستخدم عناصر تحكم Linux الأصلية لإنشاء مستوى إدارة محصن دون الحاجة إلى جدران حماية خارجية للأجهزة.
وهي مصممة للبيئات عالية الأمان حيث يعتبر جهاز vCenter أصلًا من المستوى 0.
bash محدد يكتبه المسؤولون إلى Syslog (مثل cmd="rm -rf /").لا تستمر حتى يتم تأكيد ما يلي:
افتح vcsa-hardening.sh في محرر نصوص. يجب تعديل كتلة START CONFIGURATION.
قم بتحرير المصفوفات لتحديد من يُسمح له بالدخول إلى الداخل.
# من يمكنه الدخول عبر SSH (المنفذ 22)
TRUSTED_SSH_IPS=( "192.168.10.50" ) # محطة إدارة PAW فقط
# من يمكنه الوصول إلى واجهة الويب / API (المنفذ 443)
# يجب أن يتضمن: المسؤولين، مضيفات ESXi، وخوادم النسخ الاحتياطي
TRUSTED_WEB_IPS=(
"192.168.10.50" # محطة إدارة PAW
"10.20.0.0/24" # الشبكة الفرعية لإدارة ESXi
"10.50.1.100" # خادم Veeam
)
يتحكم في ما إذا كان جدار الحماية يتتبع تكرار الاتصال لإيقاف هجمات القوة الغاشمة.
ENABLE_RATE_LIMITING=true (افتراضي): يحظر عناوين IP التي تحاول >6 اتصالات/دقيقة.ENABLE_RATE_LIMITING=false: قم بتعطيل هذا إذا كنت تستخدم أدوات نسخ احتياطي "صاخبة" (مثل NetWorker) تفتح العديد من التدفقات المتوازية.اختر واحدًا من الأوضاع التالية عن طريق تبديل المتغيرات المنطقية.
scp vcsa-hardening.sh root@<VCSA_IP>:/root/
ssh root@<VCSA_IP>
chmod +x vcsa-hardening.sh
قم بتشغيل هذا دائمًا أولاً. يحاكي المنطق دون تطبيق التغييرات.
./vcsa-hardening.sh --dry-run
./vcsa-hardening.sh
سيقوم النص بإجراء فحص أمان للتأكد من أن عنوان IP الخاص بـ SSH الحالي موجود في قائمة الثقة قبل تطبيق القواعد.
بمجرد التطبيق، يقوم النص بربط السجلات مع تيار Syslog القياسي لـ VMware.
نفذ أمرًا وتأكد من ظهوره في السجلات مع علامة SHELL_COMMAND.
# 1. تشغيل أمر اختبار
echo "test_audit_logging"
# 2. التحقق من السجلات (العلامة الصحيحة هي SHELL_COMMAND)
journalctl -f | grep SHELL_COMMAND
مثال الإخراج: vcsa-01 logger: CMD user=root host=vcsa pwd=/root pid=1234 exit=0 cmd="echo test_audit_logging"
حاول الاتصال عبر SSH من عنوان IP غير موثوق (مثل نقطة اتصال محمولة) وتحقق من السجلات:
journalctl -f | grep BLOCKED
مثال الإخراج: kernel: SSH_BLOCKED_NEW: IN=eth0 OUT= MAC=... SRC=1.2.3.4 ...
إذا أغلقت على نفسك عبر SSH، اتبع هذه الخطوات لاستعادة VCSA إلى الحالة الافتراضية:
root.shell للدخول إلى Bash.# التراجع اليدوي
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
rm /etc/systemd/scripts/ip4save
يرجى فتح مشكلة (issue) أو تقديم طلب سحب (PR) إذا كانت لديك مشكلات أو أفكار أو ملاحظات.
حقوق النشر 2026 Google LLC
مرخص بموجب ترخيص Apache الإصدار 2.0 (الـ"ترخيص")؛ لا يجوز لك استخدام هذا الملف إلا وفقًا للترخيص. يمكنك الحصول على نسخة من الترخيص على
https://www.apache.org/licenses/LICENSE-2.0
ما لم يقتض القانون المعمول به أو يتم الاتفاق عليه كتابيًا، يتم توزيع البرنامج المرخص بموجب هذا الترخيص على أساس "كما هو" (AS IS)، دون أي ضمانات أو شروط من أي نوع، سواء كانت صريحة أو ضمنية. راجع الترخيص للغة المحددة التي تحكم الأذونات والقيود بموجب الترخيص.
| الوضع | التكوين | الوصف |
|---|
| التعزيز القياسي | كلا false | (افتراضي) قائمة بيضاء صارمة للوارد. يُسمح بحركة الصادر. الأفضل للاستخدام العام. |
| حظر الإنترنت | BLOCK_INTERNET_ACCESS=true | (موصى به) يسمح بحركة المرور الداخلية (RFC1918) لكنه يحظر جميع الوصول إلى الإنترنت العام. |
| الثقة الصفرية | ENABLE_ZERO_TRUST_MODE=true | (الأكثر صرامة) يُسقط جميع حركة المرور الواردة / الصادرة غير المدرجة صراحةً. يتطلب تكوينًا مثاليًا لـ ADDITIONAL_PRIVATE_RANGES. |