
أداة تدقيق أمني لنظام UNIX تعتمد على عدة أطر أمنية

تدقيق وتقارير أمن يونكس المقفل
الإصدار الحالي 15.9.1
ارجع إلى linar.sh وسجل التغييرات للحصول على معلومات إصدار أحدث
CC BY-SA: https://creativecommons.org/licenses/by-sa/4.0/
ادعم هنا: https://ko-fi.com/richardatlateralblast
قم بتشغيل هذا الكود في وضع التدقيق فقط، على سبيل المثال مع -a أو --audit. قم بتشغيل الإغلاق على مسؤوليتك الخاصة. كما هو الحال مع أي تغيير في النظام، احتفظ بنسخ احتياطية. أعمل على تحسين وضع الاسترداد، لكن قد لا تزال هناك أخطاء.
حاولت تنظيف هذا البرنامج النصي قدر الإمكان باستخدام shellcheck، وفعّلت خيار استخدام علامات shell -e (errexit) و -u (nounset) للمساعدة في الحماية من الأخطاء. يمكن تفعيل علامة shell -x (xtrace) باستخدام البرنامج النصي مع -Q أو --debug.
قيد التقدم:
ينشئ هذا البرنامج النصي تقرير تدقيق مُسجّل لأمان مضيف Unix. يعتمد على CIS وأطر عمل أخرى. وحيثما أمكن، توجد مراجع إلى CIS ومعايير أخرى في وثائق الكود.
لماذا برنامج نصي شل؟ أردت أداة يمكن تشغيلها على الأنظمة المقفلة حيث قد لا تتوفر أدوات أخرى. أردت أيضًا أداة تعمل على جميع إصدارات UNIX. ومع ذلك، هناك بعض الاختلافات بين sh و bash، لذا استخدمت دوال من sh فقط.
لا يوجد ضمان ضمني أو مُعطى مع هذا البرنامج النصي. توصيتي هي استخدام هذا البرنامج النصي في وضع التدقيق فقط، ومعالجة كل تحذير بشكل فردي من خلال السياسة والوثائق وإدارة التكوين.
لست مبرمجًا بأي حال من الأحوال، لذا من المؤكد وجود أخطاء وطرق أفضل للتعامل مع الأمور في هذا البرنامج النصي، لذا شكر صادق للأشخاص الذين قدموا ملاحظات وتحديثات وتصحيحات لإصلاح الأخطاء/الميزات في الكود.
يمكنه أيضًا تنفيذ إغلاق (lockdown). على عكس بعض البرامج النصية الأخرى، أضفت القدرة على التراجع عن التغييرات. يتم نسخ الملفات احتياطيًا باستخدام cpio إلى دليل قائم على التاريخ.
على الرغم من أنه يمكنه تنفيذ إغلاق، كما ذكرت سابقًا، أوصي بمعالجة التحذيرات من خلال السياسة والوثائق وإدارة التكوين. هذه هي الطريقة التي أستخدم بها الأداة. تدقيق خدمات AWS يدعم التقارير فقط، ولا يوفر قدرة الإغلاق.
أنظمة التشغيل التالية مدعومة:
سيتطلب دعم Windows تثبيت برامج إضافية، لذا لم أبحث فيه. ومع ذلك، قد يأتي دعم Windows في المستقبل عبر bash.
الخدمات التالية مدعومة:
يستخدم تدقيق خدمات AWS واجهة AWS CLI، وبالتالي يتطلب مستخدمًا لديه الحقوق المناسبة. لا يدعم حاليًا قدرة الإغلاق، بل يدعم فقط إنشاء تقرير تدقيق وفقًا لمعيار CIS.
هناك بعض الفحوصات التي يمكن إجراؤها أو حلها فقط عبر واجهة المستخدم الرسومية. مثال على ذلك تفعيل الفوترة. راجع معيار CIS لمزيد من المعلومات.
حيثما أمكن، وضعت أوامر الإصلاح المقترحة في إخراج التدقيق المفصل. مرة أخرى، في بعض الحالات، يمكن القيام بذلك فقط عبر واجهة CLI. راجع معيار CIS لمزيد من المعلومات.
بالإضافة إلى ذلك، أضفت وضع التوصيات الذي يتحقق من AWS مقابل أفضل الممارسات المتاحة للعموم من شركات مثل Cloud Conformity.
يتم دعم إخراج إدارة التكوين التالي:
يقوم هذا الخيار بإخراج مثال لرمز/مقطع إدارة التكوين من Ansible لتنفيذ التوصية.
لـ UNIX:
لـ AWS:
لـ Azure:
Usage: ./lunar.sh -switch|--switch
switch(es):
-----------
-1|--list)
List changes/backups
-2|--tests)
Print tests
-3|--printfunct)
Print function
-4|--dryrun)
Run in dryrun mode
-6|--format)
Outpt format/type
-7|--file)
Output file
-8|--usesudo)
Use sudo
-9|--shellcheck)
Run shellcheck against script
-0|--force)
Force action
-a|--audit)
Run in audit mode (for Operating Systems - no changes made to system)
-A|--fullaudit)
Run in audit mode and include filesystems (for Operating Systems - no changes made to system)
-b|--backups|--listbackups)
List backups
-B|--basedir)
Set base directory
-c|--codename|--distro)
Distro/Code name (used with docker/multipass)
-C|--shell)
Run docker-compose testing suite (drops to shell in order to do more testing)
-d|--dockeraudit)
Run in audit mode (for Docker - no changes made to system)
-D|--dockertests)
List all Docker functions available to selective mode
-e|--host)
Run in audit mode on external host (for Operating Systems - no changes made to system)
-E|--hash|--passwordhash)
Password hash
-f|--action)
Action (e.g delete - used with multipass)
-F|--tempfile)
Temporary file to use for operations
-g|--giturl)
Git URL for code to copy to container
-G|--wheelgroup)
Set wheel group
-h|--help)
Display help
-H|--usage)
Display usage
-i|--anacron)
Enable/Disable anacron
-I|--type)
Audit type
-k|--kubeaudit)
Run in audit mode (for Kubernetes - no changes made to system)
-K|--function|--test)
Do a specific function
-l|--lockdown)
Run in lockdown mode (for Operating Systems - changes made to system)
-L|--fulllockdown|fulllock)
Run in lockdown mode (for Operating Systems - changes made to system)
-m|--machine|--vm)
Set virtualisation type
-M|--workdir)
Set work directory
-n|--ansible)
Output ansible
-N|--nocat)
Do output cat in score
-o|--os|--osver)
Set OS version
-O|--osinfo|--systeminfo)
Print OS/System information
-p|--previous)
Print previous audit information
-P|--sshsandbox|--sandbox)
Enable/Disabe SSH sandbox
-q|--quiet|--nostrict)
Run in quiet mode
-Q|--debug)
Run in debug mode
-r|--awsregion|--region)
Set AWS region
-R|--moduleinfo|--testinfo)
Print information about a module
-s|--select|--check)
Run in selective mode (only run tests you want to)
-S|--unixtests|--unix)
List UNIX tests
-t|--tag|--name)
Set docker tag
-T|--tempdir)
Set temp directoru
-u|--undo)
Undo lockdown (for Operating Systems - changes made to system)
-U|--dofiles)
Include filesystems
-v|--verbose)
Run in verbose mode
-V|--version)
Print version
-w|--awsaudit)
Run in audit mode (for AWS - no changes made to system)
-W|--awstests|--aws)
List all AWS functions available to selective mode
-x|--awsrec)
Run in recommendations mode (for AWS - no changes made to system)
-X|--strict)
Run shellcheck against script
-z)
Run specified audit function in lockdown mode
-Z|--changes|--listchanges)
List changes
إجراء تدقيق كامل (بدون فحوصات نظام الملفات المتكررة):
./lunar.sh --audit
سرد الاختبارات:
./lunar.sh --tests
سرد اختبارات AWS:
./lunar.sh --tests aws
إجراء اختبار محدد:
./lunar.sh --audit --select remote_shell
إنشاء جهاز افتراضي multipass يعمل بنظام Ubuntu 24.04 للاختبار:
./lunar.sh --action create --machine multipass --osver 24.04
لمزيد من المعلومات، راجع الويكي:
تمت إضافة إطار اختبار بسيط لتصحيح أخطاء النص البرمجي lunar نفسه. يستخدم هذا docker compose لبدء حاوية، وتركيب دليل lunar، وتشغيل lunar.