Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
chef-os-hardening — هذا الكوكبوك الخاص بـ Chef يوفر العديد من الإعدادات المتعلقة بالأمان، مما يمنح حماية أساسية شاملة. | Kitploit
أدوات/GitHubGitHub/dev-sec/chef-os-hardening
أمن البنية التحتية السحابيةتدقيق التكوينDevSecOpsالمصادقة
GitHubdev-sec/chef-os-hardening

chef-os-hardening

هذا الكوكبوك الخاص بـ Chef يوفر العديد من الإعدادات المتعلقة بالأمان، مما يمنح حماية أساسية شاملة.

عرض المستودع
4521326منذ شهر واحدتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
الموقع الإلكتروني
مشاركة

os-hardening (Chef cookbook)

Supermarket Tests

الوصف

يوفر هذا الـ cookbook العديد من الإعدادات المتعلقة بالأمان، مما يوفر حماية أساسية شاملة.

يقوم بتكوين:

  • تكوين إدارة الحزم، على سبيل المثال السماح فقط بالحزم الموقعة
  • إزالة الحزم ذات المشاكل المعروفة
  • تكوين وحدة pam و pam_limits
  • تكوين مجموعة أدوات كلمات المرور المخفية (Shadow password suite)
  • تكوين صلاحيات مسارات النظام
  • تعطيل تفريغ الذاكرة الأساسية (Core dumps) عبر الحدود الناعمة
  • تقييد تسجيلات دخول الجذر (Root) على وحدة التحكم بالنظام
  • تعيين وحدات SUID
  • تكوين معاملات النواة عبر sysctl

لن يقوم بـ:

  • تحديث حزم النظام
  • تثبيت التصحيحات الأمنية

المتطلبات

  • Chef >= 14.13.11

المنصات

  • Ubuntu 20.04, 22.04, 24.04, 26.04
  • CentOS Stream 9, 10
  • AlmaLinux 8, 9, 10
  • Rocky Linux 8, 9, 10
  • Oracle Linux 8, 9, 10
  • Debian 13
  • Fedora 43, 44

السمات (Attributes)

  • ['os-hardening']['components'][COMPONENT_NAME] - يسمح بالتحكم الدقيق في المكونات التي يجب تنفيذها عبر الوصفة الافتراضية. راجع التفاصيل أدناه
  • ['os-hardening']['desktop']['enable'] = false true إذا كان هذا نظام سطح مكتب، أي Xorg، KDE/GNOME/Unity/إلخ
  • ['os-hardening']['network']['forwarding'] = false true إذا كان هذا النظام يتطلب إعادة توجيه الحزم (مثل جهاز التوجيه)، false خلاف ذلك
  • ['os-hardening']['network']['ipv6']['enable'] = false
  • ['os-hardening']['network']['arp']['restricted'] = true true إذا كنت تريد تقييد سلوك الإعلان والرد على ARP، false خلاف ذلك
  • ['os-hardening']['env']['extra_user_paths'] = [] إضافة مسارات إضافية إلى متغير PATH الخاص بالمستخدم (الافتراضي فارغ).
  • ['os-hardening']['env']['umask'] = "027"
  • ['os-hardening']['env']['root_path'] = "/" حيث يتم تثبيت الجذر (root)
  • ['os-hardening']['auth']['pw_max_age'] = 60 الحد الأقصى لعمر كلمة المرور

التحكم في المكونات المضمنة

يتضمن default.rb مكونات أخرى بناءً على سمات الاكتشاف التلقائي (ohai) لنظامك. على سبيل المثال، لا تقم بتنفيذ selinux على أنظمة غير RHEL. يمكنك تجاوز هذا السلوك وفرض تنفيذ المكونات أو عدم تنفيذها عبر تعيين السمات في node['os-hardening']['components'] على مستوى التجاوز. مثال

root@kitploit:~
# بعض ملفات السمات
# لا تقم بتضمين sysctl و auditd
override['os-hardening']['components']['sysctl'] = false
override['os-hardening']['components']['auditd'] = false

# فرض تضمين selinux
override['os-hardening']['components']['selinux'] = true

في التنفيذ الحالي، توجد المكونات المختلفة في الوصفات المختلفة. راجع الوصفات المتاحة أو default.rb لأسماء المكونات المحتملة.

الاستخدام

أضف الوصفات إلى run_list، يجب أن تكون في النهاية:

root@kitploit:~
"recipe[os-hardening]"

قم بتكوين السمات:

root@kitploit:~
"security" : {
  "kernel" : {
    "enable_module_loading" : true
  }
},

الاختبار المحلي

الاختبار المحلي

يرجى تثبيت chef-dk، VirtualBox أو VMware Workstation و Vagrant.

يتم فحص التدقيق اللغوي (Linting) باستخدام rubocop و foodcritic:

root@kitploit:~
$ chef exec rake lint
.....

يتم إجراء اختبارات الوحدة/المواصفات باستخدام chefspec:

root@kitploit:~
$ chef exec rake spec
.....

يتم إجراء اختبارات التكامل باستخدام test-kitchen و inspec:

root@kitploit:~
$ chef exec rake kitchen
.....
# أو يمكنك استخدام kitchen مباشرة
$ kitchen test

اختبار CI للفروع (forks)

يمكنك تفعيل اختبار الفرع الخاص بك في Travis CI. افتراضيًا ستحصل على التدقيق اللغوي واختبارات المواصفات واختبارات التكامل باستخدام kitchen-dokken.

لا تغطي اختبارات التكامل باستخدام kitchen-dokken كل شيء لأنها تعمل في بيئة الحاويات. يمكن تنفيذ اختبارات التكامل الكاملة باستخدام DigitalOcean.

إذا كنت تريد اختبارات تكامل كاملة لفرعك، فسيتعين عليك إضافة متغيرات البيئة التالية في إعدادات فرعك:

  • DIGITALOCEAN_ACCESS_TOKEN - رمز الوصول لـ DigitalOcean
  • CI_SSH_KEY - الجزء الخاص من بعض مفاتيح ssh، المتوفرة على DigitalOcean لمثيلاتك، في شكل مشفر base64 (مثل cat id_rsa | base64 -w0 ; echo)
  • DIGITALOCEAN_SSH_KEY_IDS - المعرف في DigitalOcean لـ CI_SSH_KEY، راجع هذا لمزيد من المعلومات

المساهمون + الشكر

  • Dominik Richter arlimus
  • Bernhard Weisshuhn bkw
  • Christoph Hartmann chris-rock
  • Edmund Haselwanter ehaselwanter
  • Patrick Meier atomic111
  • Artem Sidorenko artem-sidorenko

يعتمد هذا الـ cookbook بشكل أساسي على أدلة من:

  • Arch Linux wiki, Sysctl hardening
  • Ubuntu Security/Features
  • NSA: Guide to the Secure Configuration of Red Hat Enterprise Linux 5
  • Deutsche Telekom, Group IT Security, Security Requirements (German)

شكرًا لكم جميعًا!!

المساهمة

راجع دليل المساهمة.

الترخيص والمؤلف

  • المؤلف:: Dominik Richter [email protected]
  • المؤلف:: Deutsche Telekom AG

مرخص بموجب رخصة Apache، الإصدار 2.0 (the "License")؛ لا يجوز لك استخدام هذا الملف إلا وفقًا للترخيص. يمكنك الحصول على نسخة من الترخيص على

root@kitploit:~
http://www.apache.org/licenses/LICENSE-2.0

ما لم يقتضِ القانون المعمول به أو يُتفق عليه كتابيًا، يتم توزيع البرنامج المرخص بموجب الترخيص على أساس "AS IS"، دون ضمانات أو شروط من أي نوع، سواء كانت صريحة أو ضمنية. راجع الترخيص للغة المحددة التي تحكم الأذونات و القيود بموجب الترخيص.

تنزيل الأداة
  • ['os-hardening']['auth']['pw_min_age'] = 7 الحد الأدنى لعمر كلمة المرور (قبل السماح بأي تغيير آخر لكلمة المرور)
  • ['os-hardening']['auth']['pw_warn_age'] = 7 عدد الأيام قبل بلوغ الحد الأقصى لعمر كلمة المرور للتحذير من التغيير الوشيك
  • ['os-hardening']['auth']['uid_min'] = 1000 الحد الأدنى لمعرفات المستخدمين (UIDs) المعينة بواسطة useradd
  • ['os-hardening']['auth']['uid_max'] = 60000 الحد الأعلى لمعرفات المستخدمين (UIDs) المعينة بواسطة useradd
  • ['os-hardening']['auth']['gid_min'] = 1000 الحد الأدنى لمعرفات المجموعات (GIDs) المعينة بواسطة groupadd
  • ['os-hardening']['auth']['gid_max'] = 60000 الحد الأعلى لمعرفات المجموعات (GIDs) المعينة بواسطة groupadd
  • ['os-hardening']['auth']['retries'] = 5 الحد الأقصى لعدد محاولات المصادقة، قبل قفل الحساب لبعض الوقت
  • ['os-hardening']['auth']['lockout_time'] = 600 الوقت بالثواني الذي يجب أن يمر، إذا تم قفل الحساب بسبب كثرة محاولات المصادقة الفاشلة
  • ['os-hardening']['auth']['timeout'] = 60 مهلة المصادقة بالثواني، بحيث يخرج تسجيل الدخول إذا مر هذا الوقت
  • ['os-hardening']['auth']['allow_homeless'] = false true للسماح للمستخدمين بدون مجلد رئيسي (home) بتسجيل الدخول
  • ['os-hardening']['auth']['pam']['passwdqc']['enable'] = true true إذا كنت تريد استخدام فحص كلمات مرور قوي في PAM باستخدام passwdqc
  • ['os-hardening']['auth']['pam']['passwdqc']['options'] = "min=disabled,disabled,16,12,8" اضبط على أي سطر خيارات (كنص) تريد تمريره إلى passwdqc
  • ['os-hardening']['auth']['pam']['passwdqc']['template_cookbook'] = 'os-hardening' اضبط على اسم الـ cookbook الذي يتم الحصول على القالب منه لملف /usr/share/pam-configs/passwdqc
  • ['os-hardening']['auth']['pam']['tally2']['template_cookbook'] = 'os-hardening' اضبط على اسم الـ cookbook الذي يتم الحصول على القالب منه لملف /usr/share/pam-configs/tally2
  • ['os-hardening']['auth']['pam']['system-auth']['template_cookbook'] = 'os-hardening' اضبط على اسم الـ cookbook الذي يتم الحصول على القالب منه لملف /etc/pam.d/system-auth-ac
  • ['os-hardening']['security']['users']['allow'] = [] قائمة الأشياء التي يُسمح للمستخدم بفعلها. قد تحتوي على: change_user
  • ['os-hardening']['security']['kernel']['enable_module_loading'] = true true إذا كنت تريد السماح بتغيير وحدات النواة أثناء تشغيل النظام (مثل modprobe، rmmod)
  • ['os-hardening']['security']['kernel']['disable_filesystems'] = ['cramfs', 'freevxfs', 'jffs2', 'hfs', 'hfsplus', 'squashfs', 'udf', 'vfat'] قائمة بوحدات أنظمة ملفات النواة، التي تم إدراجها في القائمة السوداء للتحميل (على سبيل المثال أنها غير مستخدمة ويمكن تعطيلها). اضبط هذا على [] لتجنب هذه القائمة السوداء تمامًا
  • ['os-hardening']['security']['kernel']['enable_sysrq'] = false
  • ['os-hardening']['security']['kernel']['enable_core_dump'] = false
  • ['os-hardening']['security']['suid_sgid']['enforce'] = true true إذا كنت تريد تقليل وحدات SUID/SGID. توجد بالفعل قائمة بالعناصر التي يتم البحث عنها وتكوينها، ولكن يمكنك أيضًا إضافة عناصرك الخاصة
  • ['os-hardening']['security']['suid_sgid']['blacklist'] = [] قائمة بالمسارات التي يجب إزالة وحدات SUID/SGID منها
  • ['os-hardening']['security']['suid_sgid']['whitelist'] = [] قائمة بالمسارات التي لا ينبغي تغيير وحدات SUID/SGID الخاصة بها
  • ['os-hardening']['security']['suid_sgid']['remove_from_unknown'] = false true إذا كنت تريد إزالة وحدات SUID/SGID من أي ملف غير مُكوّن صراحةً في blacklist. سيجعل هذا كل تشغيل لـ Chef يبحث عبر أنظمة الملفات المثبتة عن وحدات SUID/SGID غير المُكوّنة في القائمة السوداء الافتراضية وقائمة المستخدم. إذا وجد وحدة SUID/SGID، فستتم إزالتها، ما لم يكن هذا الملف في whitelist الخاص بك.
  • ['os-hardening']['security']['suid_sgid']['dry_run_on_unknown'] = false مثل remove_from_unknown أعلاه، فقط دون إزالة وحدات SUID/SGID. سيظل يبحث في أنظمة الملفات عن وحدات SUID/SGID ولكنه سيطبعها فقط في سجلّك. يُنصح بهذا الخيار فقط، عند تكوين remove_from_unknown لوحدات SUID/SGID لأول مرة، بحيث يمكنك رؤية الملفات التي يتم تغييرها وإجراء تعديلات على whitelist و blacklist الخاصين بك.
  • ['os-hardening']['security']['packages']['clean'] = true يزيل الحزم ذات المشاكل المعروفة.
  • ['os-hardening']['security']['packages']['list'] = ['xinetd','inetd','ypserv','telnet-server','rsh-server'] قائمة الحزم المراد إزالتها، افتراضيًا نزيل الحزم التالية:
    • xinetd (NSA, الفصل 3.2.1)
    • inetd (NSA, الفصل 3.2.1)
    • tftp-server (NSA, الفصل 3.2.5)
    • ypserv (NSA, الفصل 3.2.4)
    • telnet-server (NSA, الفصل 3.2.2)
    • rsh-server (NSA, الفصل 3.2.3)
  • ['os-hardening']['security']['selinux_mode'] = 'unmanaged' اضبط على unmanaged إذا كنت تريد ترك تكوين selinux كما هو. اضبط على enforcing للفرض أو permissive لوضع SELinux المتساهل.