
تدقيق توزيعة دبيان/جنو لينكس المشددة
تدقيق توزيعات 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
etc.iptables.rules.v4.sh قم أولاً بتثبيت حزمة iptables-persistent، ثم قم بما يلي:
$ INTERFACENAME="your network interfacename(Example eth0)"
# bash docs/configurations/etc.iptables.rules.v4.sh $INTERFACENAME
# iptables-save > /etc/iptables/rules.v4
# ip6tables-save > /etc/iptables/rules.v6
nftables.conf قم بما يلي (اسم واجهة الشبكة الخاصة بك (مثال eth0)):
$ sed -i 's/^define int_if = ens33/define int_if = eth0/g' etc.nftables.conf
# nft -f ./etc.nftables.conf
# bin/hardening.sh --final
تتحقق بعض عناصر الفحص من مجموعة متنوعة من الحالات وتعتمد على بعضها البعض، ويجب تطبيقها (إصلاحها) عدة مرات، ويجب إعادة تشغيل نظام التشغيل بعد كل تطبيق (إصلاح).
8.1.35 لأنه عند تعيين هذا العنصر، لن تتم إضافة قواعد التدقيق.
8.4.1 8.4.2 كل هذه العناصر متعلقة بـ aide. من الأفضل إصلاح جميع العناصر بعد إصلاحها لإصلاح تكامل قاعدة البيانات في النظام.
4.5
الحصول على المصدر
$ git clone https://github.com/hardenedlinux/harbian-audit.git
إضافة نص تقوية مخصص
$ cp src/skel bin/hardening/99.99_custom_script.sh
$ chmod +x bin/hardening/99.99_custom_script.sh
$ cp src/skel.cfg etc/conf.d/99.99_custom_script.cfg
قم ببرمجة الفحص الخاص بك موضحًا ما يفعله، ثم إذا كنت تريد الاختبار
$ sed -i "s/status=.+/status=enabled/" etc/conf.d/99.99_custom_script.cfg
$ bash bin/hardening.sh --audit --only 99.99
$ bash bin/hardening.sh --apply --only 99.99
هذه الوثيقة هي وصف للإضافات إلى الأقسام غير المدرجة في وثيقة مرجع CIS. تتضمن وثائق مرجع STIG والفحوصات الإضافية الموصى بها من قبل مجتمع HardenedLinux.
CIS Debian GNU/Linux 8 Benchmark v1.0.0
CIS Debian GNU/Linux 9 Benchmark v1.0.0
harbian audit Debian Linux 9 Benchmark
كيفية تكوين حماية كلمة مرور grub2
كيفية جعل قواعد iptables دائمة مع debian 9
كيفية نشر audisp-remote لسجل auditd
كيفية الترحيل من iptables إلى nftables في debian10
كيفية جعل قواعد nft دائمة مع debian 10
كيفية إصلاح رفض الوصول SELinux
Nodejs + redis + mysql demo
deploy-hyperledger-cello-on-debian-9
nginx-mutual-ssl-proxy-http
nginx-mutual-ssl-proxy-tcp-udp
كيفية إنشاء وجعل AMI عامة
كيفية استخدام harbian-audit المتوافقة مع GNU/Linux Debian 9
كيفية إنشاء صورة QEMU متوافقة مع harbian-audit لـ Debian GNU/Linux 9
كيفية استخدام صورة QEMU المتوافقة مع harbian-audit لـ Debian GNU/Linux 9
GPL 3.0
هذا المشروع عبارة عن مجموعة من الأدوات. وتهدف إلى مساعدة مدير النظام في بناء بيئة آمنة. على الرغم من أننا نستخدمه في OVH لتقوية بنيتنا التحتية المتوافقة مع PCI-DSS، إلا أننا لا نضمن أنه سيعمل من أجلك. لن يقوم بأعجوبة بتأمين أي مضيف عشوائي.
بالإضافة إلى ذلك، نقلاً عن الترخيص:
THIS SOFTWARE IS PROVIDED BY OVH SAS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OVH SAS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3-Clause BSD