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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
shh — مساعد تحصين Systemd - نسخة مرآة من https://github.com/desbma/shh | Kitploit
أدوات/GitHubGitHub/synacktiv/shh
أمن البنية التحتية السحابيةأدوات دفاعيةتدقيق التكوينDevSecOpsالأدوات والمكوناتسوء التكوين
GitHubsynacktiv/shh

shh

مساعد تحصين Systemd - نسخة مرآة من https://github.com/desbma/shh

عرض المستودع
176315منذ 3 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

SHH (Systemd Hardening Helper)

CI status crates.io version AUR version nixpkgs unstable version License

تحصين تلقائي لخدمات systemd بتوجيه من تتبع strace.

يمكن لـ SHH توليد مجموعة مثالية من خيارات التحصين لكل خدمة من خدماتك، بحيث يمكنك رفع مستوى أمان نظامك دون القلق بشأن الأخطاء العشوائية في بيئة الإنتاج الناتجة عن عزل (sandboxing) مقيد للغاية.

المستودع الرسمي - مستودع المرآة

التوثيق

  • مقدمة عامة: تحصين Systemd أصبح سهلاً مع SHH
  • الأسئلة الشائعة
  • سجل التغييرات
  • خيارات systemd المدعومة حالياً

التثبيت

التبعيات

يجب تثبيت Strace وأن يكون ملفه التنفيذي متاحًا في PATH. مطلوب حاليًا إصدار Strace 6.6 أو أحدث.

من المصدر

تحتاج إلى بيئة بناء Rust، على سبيل المثال من rustup.

شغّل في المستودع الحالي:

root@kitploit:~
cargo build --release
install -Dm 755 -t /usr/local/bin target/release/shh

من crates.io

root@kitploit:~
sudo cargo install --root /usr/local systemd-hardening-helper

Debian (أو توزيعة مبنية على Debian)

انظر إصدارات GitHub للحصول على حزم Debian المبنية لكل إصدار مُعلَّم.

Arch Linux

يمكن لمستخدمي Arch Linux تثبيت حزمة shh AUR.

Nixpkgs

يمكن لمستخدمي Nixos/Nix تثبيت أحدث حزمة من الفرع غير المستقر.

الاستخدام

تحصين خدمة

لتحصين وحدة نظام باسم SERVICE.service:

  1. ابدأ تتبع الخدمة: shh service start-profile SERVICE. سيتم إعادة تشغيل الخدمة مع تتبع strace.
  2. استخدم الخدمة بشكل طبيعي لبعض الوقت، محاولًا تغطية أكبر قدر ممكن من الميزات وحالات الاستخدام.
  3. شغّل shh service finish-profile SERVICE -a. ستتم إعادة تشغيل الخدمة بتهيئة محصّنة مبنية من التتبع السابق أثناء التشغيل، للسماح لها بالعمل بأمان كما لوحظ خلال فترة التتبع، ومنع الإجراءات النظامية الخطيرة الأخرى.

شغّل shh -h للحصول على مرجع كامل لسطر الأوامر، أو أضف -h إلى أمر فرعي للحصول على المساعدة.

[!WARNING] خيارات التحصين التي يولّدها shh هي بحكم تصميمها ليست قابلة للنقل عبر الأنظمة المختلفة. تعتمد على عوامل عديدة، وقد تكسر الخدمة إذا تغيّر أيٌّ منها:

  • مسار الكود الذي تمت تغطيته أثناء التتبع
  • إصدار نواة Linux
  • مكتبة libc المستخدمة
  • إصدار systemd

إعادة استخدام الخيارات التي يولّدها shh على نظام ببيئة مختلفة (أي توزيعة Linux مختلفة) من المرجح جدًا أن تكسر الخدمة.

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

إذا أردت إجراء اختبار سريع لمعرفة الخيارات التي سيتم توليدها، يمكنك استخدام shh run -- COMMAND.

يؤثر كل من الدليل الحالي ومتغير البيئة PATH على تنفيذ البرنامج، فأعد تعيينهما أولاً:

root@kitploit:~
$ cd /
export PATH=/usr/local/bin:/usr/bin:/bin

ثم لمعرفة الخيارات التي سيتم توليدها لتشغيل curl https://www.example.com:

root@kitploit:~
$ shh run -- curl https://www.example.com
...
-------- Start of suggested service options --------
ProtectSystem=strict
ProtectHome=true
PrivateTmp=disconnected
PrivateDevices=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectKernelLogs=true
ProtectControlGroups=true
ProtectProc=ptraceable
LockPersonality=true
RestrictRealtime=true
ProtectClock=true
MemoryDenyWriteExecute=true
RestrictAddressFamilies=AF_INET AF_INET6 AF_NETLINK AF_UNIX
SocketBindDeny=ipv4:tcp
SocketBindDeny=ipv4:udp
SocketBindDeny=ipv6:tcp
SocketBindDeny=ipv6:udp
CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_BPF CAP_CHOWN CAP_MKNOD CAP_NET_RAW CAP_PERFMON CAP_SYS_BOOT CAP_SYS_CHROOT CAP_SYS_MODULE CAP_SYS_NICE CAP_SYS_PACCT CAP_SYS_PTRACE CAP_SYS_TIME CAP_SYSLOG CAP_WAKE_ALARM
SystemCallFilter=~@aio:EPERM @chown:EPERM @clock:EPERM @cpu-emulation:EPERM @debug:EPERM @ipc:EPERM @keyring:EPERM @memlock:EPERM @module:EPERM @mount:EPERM @obsolete:EPERM @pkey:EPERM @privileged:EPERM @raw-io:EPERM @reboot:EPERM @resources:EPERM @sandbox:EPERM @setuid:EPERM @swap:EPERM @sync:EPERM @timer:EPERM
-------- End of suggested service options --------

أو لتطبيق أقصى قدر ممكن من العزل:

root@kitploit:~
$ shh run --mode aggressive --filesystem-whitelisting --network-firewalling -- curl https://www.example.com -o /dev/null
...
-------- Start of suggested service options --------
ProtectSystem=strict
ProtectHome=true
PrivateTmp=disconnected
PrivateDevices=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectKernelLogs=true
ProtectControlGroups=true
ProtectProc=ptraceable
LockPersonality=true
RestrictRealtime=true
ProtectClock=true
MemoryDenyWriteExecute=true
SystemCallArchitectures=native
ReadOnlyPaths=-/
ReadWritePaths=-/dev
InaccessiblePaths=-/boot -/home -/lost+found -/media -/mnt -/opt -/root -/srv -/sys -/tmp -/var
TemporaryFileSystem=/usr:ro
BindReadOnlyPaths=-/usr/bin -/usr/lib -/usr/lib64 -/usr/local -/usr/share
NoExecPaths=-/
ExecPaths=-/usr/bin/curl -/usr/lib/x86_64-linux-gnu
RestrictAddressFamilies=AF_INET AF_INET6 AF_NETLINK AF_UNIX
SocketBindDeny=ipv4:tcp
SocketBindDeny=ipv4:udp
SocketBindDeny=ipv6:tcp
SocketBindDeny=ipv6:udp
IPAddressDeny=any
IPAddressAllow=[redacted]
CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_BPF CAP_CHOWN CAP_MKNOD CAP_NET_RAW CAP_PERFMON CAP_SYS_BOOT CAP_SYS_CHROOT CAP_SYS_MODULE CAP_SYS_NICE CAP_SYS_PACCT CAP_SYS_PTRACE CAP_SYS_TIME CAP_SYSLOG CAP_WAKE_ALARM
SystemCallFilter=~@aio:EPERM @chown:EPERM @clock:EPERM @cpu-emulation:EPERM @debug:EPERM @ipc:EPERM @keyring:EPERM @memlock:EPERM @module:EPERM @mount:EPERM @obsolete:EPERM @pkey:EPERM @privileged:EPERM @raw-io:EPERM @reboot:EPERM @resources:EPERM @sandbox:EPERM @setuid:EPERM @swap:EPERM @sync:EPERM @timer:EPERM
-------- End of suggested service options --------

الترخيص

GPLv3

تنزيل الأداة