
تدقيق توزيعة دبيان/جنو لينكس المشددة
تدقيق توزيعات Debian GNU/Linux و CentOS 8 المقواة.
بيئة الاختبار الرئيسية هي Debian GNU/Linux 9/10/11/12/13 و CentOS 8 و ubuntu 22، ولم يتم اختبار الإصدارات الأخرى بشكل كامل. لا توجد تطبيقات للعناصر المتعلقة بسطح المكتب في هذا الإصدار.
إطار العمل البرمجي مبني على مشروع OVH-debian-cis، وتم تعديل بعض التطبيقات الأصلية وفقًا لميزات Debian 9/10/11/12/13 و CentOS 8، وتمت إضافة وتنفيذ عناصر فحص لـ STIG Red_Hat_Enterprise_Linux_7_V2R5 و STIG Ubuntu V1R2 وتوصيات cisecurity.org، كما تمت إضافة وتنفيذ بعض عناصر الفحص من قبل مجتمع HardenedLinux. تم تنفيذ وظائف التدقيق والتطبيق للبنية التحتية، وتم تنفيذ وظيفة الإصلاح التلقائي للعناصر التي يمكن إصلاحها تلقائيًا.
# bash bin/hardening.sh --audit-all
[...]
hardening [INFO] Treating /home/test/harbian-audit/bin/hardening/13.15_check_duplicate_gid.sh
13.15_check_duplicate_gid [INFO] Working on 13.15_check_duplicate_gid
13.15_check_duplicate_gid [INFO] Checking Configuration
13.15_check_duplicate_gid [INFO] Performing audit
13.15_check_duplicate_gid [ OK ] No duplicate GIDs
13.15_check_duplicate_gid [ OK ] Check Passed
[...]
################### SUMMARY ###################
Total Available Checks : 271
Total Checks Run : 271
Total Passed Checks : [ 226/271 ]
Total Failed Checks : [ 44/271 ]
Enabled Checks Percentage : 100.00 %
Conformity Percentage : 83.39 %
$ git clone https://github.com/hardenedlinux/harbian-audit.git && cd harbian-audit
# cp etc/default.cfg /etc/default/cis-hardening
# sed -i "s#CIS_ROOT_DIR=.*#CIS_ROOT_DIR='$(pwd)'#" /etc/default/cis-hardening
# bin/hardening.sh --init
# bin/hardening.sh --audit-all
hardening [INFO] Treating /home/test/harbian-audit/bin/hardening/1.1_install_updates.sh
1.1_install_updates [INFO] Working on 1.1_install_updates
1.1_install_updates [INFO] Checking Configuration
1.1_install_updates [INFO] Performing audit
1.1_install_updates [INFO] Checking if apt needs an update
1.1_install_updates [INFO] Fetching upgrades ...
1.1_install_updates [ OK ] No upgrades available
1.1_install_updates [ OK ] Check Passed
[...]
################### SUMMARY ###################
Total Available Checks : 284
Total Checks Run : 284
Total Passed Checks : [ 260/284 ]
Total Failed Checks : [ 24/284 ]
Enabled Checks Percentage : 100.00 %
Conformity Percentage : 91.55 %
# bin/hardening.sh --set-hardening-level 5
# bin/hardening.sh --apply
hardening [INFO] Treating /home/test/harbian-audit/bin/hardening/1.1_install_updates.sh
1.1_install_updates [INFO] Working on 1.1_install_updates
1.1_install_updates [INFO] Checking Configuration
1.1_install_updates [INFO] Performing audit
1.1_install_updates [INFO] Checking if apt needs an update
1.1_install_updates [INFO] Fetching upgrades ...
1.1_install_updates [ OK ] No upgrades available
1.1_install_updates [INFO] Applying Hardening
1.1_install_updates [ OK ] No Upgrades to apply
1.1_install_updates [ OK ] Check Passed
[...]
إذا تم استخدام التثبيت عبر الشبكة من قرص مضغوط بسيط لتثبيت Debian GNU/Linux، يلزم تثبيت الحزم قبل استخدام أداة التقوية.
# apt-get install -y bc net-tools pciutils network-manager
يحتاج Redhat/CentOS إلى تثبيت الحزم قبل استخدام أداة التقوية:
# yum install -y bc net-tools pciutils NetworkManager epel-release
يجب تعيين كلمة مرور لجميع المستخدمين قبل التقوية. وإلا، لن تتمكن من تسجيل الدخول بعد اكتمال التقوية. مثال (مستخدم النظام: root و test):
# passwd
# passwd test
نصوص التقوية موجودة في bin/hardening. لكل نص ملف إعدادات مقابل في etc/conf.d/[script_name].cfg.
يمكن تمكين كل نص تقوية بشكل فردي من ملف الإعدادات الخاص به.
على سبيل المثال، هذا هو ملف الإعدادات الافتراضي لـ disable_system_accounts:
# Configuration for script of same name
status=disabled
# Put here your exceptions concerning admin accounts shells separated by spaces
EXCEPTIONS=""
يمكن أن تأخذ المعلمة status 3 قيم:
disabled (لا تفعل شيئًا): لن يتم تشغيل النص.audit (للقراءة فقط): سيتحقق النص مما إذا كان يجب تطبيق أي تغيير.enabled (للقراءة والكتابة): سيتحقق النص مما إذا كان يجب إجراء أي تغيير ويطبق تلقائيًا ما يمكنه.يمكنك أيضًا تعيين عنصر الإعدادات للتمكين عن طريق تعديل المستوى، باستخدام الأمر التالي:
# bash bin/hardening.sh --audit-all
# bash bin/hardening.sh --set-hardening-level <level>
الإعدادات العامة موجودة في etc/hardening.cfg. يتحكم هذا الملف في مستوى السجل بالإضافة إلى دليل النسخ الاحتياطي.每当脚本被指示编辑文件时,它将在该目录中创建一个带有时间戳的备份。
لتشغيل الفحوصات وتطبيق الإصلاحات، قم بتشغيل bin/hardening.sh.
يحتوي هذا الأمر على وضعي تشغيل رئيسيين:
--audit: تدقيق نظامك باستخدام جميع النصوص المُمكّنة وفي وضع التدقيق.--apply: تدقيق نظامك باستخدام جميع النصوص المُمكّنة وفي وضع التدقيق، وتطبيق التغييرات على النصوص المُمكّنة.بالإضافة إلى ذلك، يمكن استخدام --audit-all لفرض تشغيل جميع نصوص التدقيق، بما في ذلك المعطلة. لن يؤدي هذا إلى تغيير النظام.
يمكن استخدام --audit-all-enable-passed كطريقة سريعة لبدء إعداداتك. سيقوم بتشغيل جميع النصوص في وضع التدقيق. إذا نجح نص، فسيتم تمكينه تلقائيًا للتشغيل المستقبلي. لا تستخدم هذا الخيار إذا كنت قد بدأت بالفعل في تخصيص إعداداتك.
استخدم الأمر لتقوية نظام التشغيل الخاص بك:
# bash bin/hardening.sh --apply
إذا تم استخدام rsyslog، وتريد طباعة سجل harbian-audit في ملف سجل منفصل، فإن الإعدادات تكون كما يلي:
user.info /var/log/harbian-audit.log
user.* -/var/log/user.log
سيتم إخراج السجل إلى ملف /var/log/harbian-audit.log.
إذا قمت بتطبيق docs/configurations/etc.iptables.rules.v4.sh على قواعد جدار الحماية الخاص بك، وتريد طباعة سجل iptables في ملف سجل منفصل، قم بإدراج الأسطر التالية في rsyslog.conf:
:msg,contains,"FW-" -/var/log/firewalllog.log
& stop
عند تنفيذ --apply وضبط set-hardening-level على 5 (أعلى مستوى)، تحتاج إلى القيام بما يلي:
# sed -i '/^[^#].*pam_wheel.so.*/s/^/# &/' /etc/pam.d/su
قم بتعليق السطر الذي يحتوي على pam_wheel.so مؤقتًا. بعد الانتهاء من استخدام الأمر su، يرجى إلغاء تعليق السطر.
# echo "ALL: 192.168.1. 192.168.5." >> /etc/hosts.allow
هذا المثال يسمح فقط لـ 192.168.1.[1-255] و 192.168.5.[1-255] بالوصول إلى هذا النظام. يجب تكوينه وفقًا لحالتك.
# sed -i "/^root/a\test ALL=(ALL:ALL) ALL" /etc/sudoers