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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
secrets-manager-rs — أداة سطر أوامر لعمل نسخ احتياطية آمنة، واستعادة، والتحقق من الأسرار باستخدام معايير قابلة للتشغيل المتبادل مثل تشفير age وأدوات coreutils، لضمان الوصول طويل الأمد دون حصر بائع. | Kitploit
أدوات/GitHubGitHub/fran314/secrets-manager-rs
أدوات التشفير/فك التشفيراستعادة البياناتأمن السحابةDevSecOpsالأدوات والمكوناتالمصادقة
GitHubfran314/secrets-manager-rs

secrets-manager-rs

أداة سطر أوامر لعمل نسخ احتياطية آمنة، واستعادة، والتحقق من الأسرار باستخدام معايير قابلة للتشغيل المتبادل مثل تشفير age وأدوات coreutils، لضمان الوصول طويل الأمد دون حصر بائع.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

secs-man

secs-man هي أداة لإدارة نسخ احتياطية للأسرار مع مراعاة الاستقلالية عن الأداة: إذا قمت بتشفير أسرارك باستخدام هذا البرنامج، يجب أن تكون قادرًا على فك تشفيرها واستعادتها دون الحاجة إلى هذا البرنامج. حتى لو اختفى secs-man من على وجه الأرض، ستظل بياناتك قابلة للوصول.

يمكن استخدام secs-man لإدارة أسرار الأجهزة المحلية والبعيدة، وهو مثالي لإنشاء نسخ احتياطية محلية فقط للبيانات الحساسة جدًا بحيث لا يمكن نسخها احتياطيًا في السحابة.

الفلسفة

النظرية

لا يجب أن تعتمد على أي برنامج محدد لعمل نسخ احتياطية لبياناتك المهمة للغاية.

أي برنامج يجبرك على البقاء في نظامه البيئي بعد الاستخدام (مثل: "إذا قمت بتشفيرها بهذا البرنامج، يمكنك فقط فك تشفيرها بهذا البرنامج") يجعلك تعتمد عليه.

لذا، يجب أن يكون التشفير وفك التشفير واستعادة بياناتك المهمة غير مترابطة، بمعنى أنه إذا قمت بتشفيرها باستخدام البرنامج X، يجب أن تظل قادرًا على فك تشفيرها بدون البرنامج X.

الممارسة

عمليًا، لا يمكنك إنشاء إعداد تكون فيه أسرارك آمنة بنسبة 100% من فقدان البيانات. حتى لو كان برنامجك X متوافقًا مع Y وZ وW، ستظل تفقد الوصول إلى بياناتك إذا توقفت X وY وZ وW عن العمل في نفس الوقت.

ما تفعله عمليًا هو التأكد من أنك تعتمد فقط على التقنيات التي تعتبر "معايير" أو قريبة منها. أنا مرتاح لكوني معتمدًا على وجود مفسرات bash ومنافذ USB وأجهزة Linux.

الهدف الحقيقي من secs-man إذن هو أن يكون قابلاً للتكرار بشكل مثالي باستخدام:

  • طرفية
  • أدوات أساسية مثل cp و mv و sha256sum
  • age
  • عمل يدوي وقليل من الوقت

الاعتماد على age هو الأكثر حساسية، لكن الاعتماد على بعض المكتبات التشفيرية لا مفر منه، و age يتمتع بشعبية كبيرة وروابط جيدة في Rust.

يضمن هذا أنه حتى لو حدث أي شيء لهذا البرنامج يمنعك من استخدامه مرة أخرى، بافتراض أن age لا يزال موجودًا وأنك على استعداد لقضاء 30 دقيقة من حياتك، يمكنك استعادة جميع أسرارك.

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

التثبيت

secs-man غير منشورة في أي مكان (ليست crate منشورة، ولا توجد في nixpkgs أو AUR أو ما شابه). يمكن تثبيتها فقط مباشرة من هذا المستودع، بإحدى الطرق التالية.

باستخدام nix run

إذا كنت بحاجة فقط إلى تشغيل secs-man من حين لآخر، يمكنك تشغيلها مباشرة دون تثبيتها (يتطلب تمكين flakes)

root@kitploit:~
nix run github:Fran314/secrets-manager-rs -- export /path/to/secrets /path/to/export/endpoint

من خلال إعداد Nix الخاص بك

لجعل secs-man متاحة على مستوى النظام، يمكنك استيراد هذا المستودع في إعداد Nix الخاص بك باستخدام fetchGit وإضافة الحزمة الناتجة إلى environment.systemPackages (أو home.packages مع home-manager)

root@kitploit:~
let
  secs-man = pkgs.callPackage "${builtins.fetchGit {
    url = "https://github.com/Fran314/secrets-manager-rs.git";
    ref = "main";
    # rev = "<commit>"; # تحديد commit معين لتكرارية
  }}/default.nix" { };
in
# أضف `secs-man` إلى environment.systemPackages أو home.packages

باستخدام cargo

إذا لم تكن على NixOS، يمكنك تثبيت ثنائي secs-man عن طريق توجيه cargo إلى هذا المستودع

root@kitploit:~
cargo install --git https://github.com/Fran314/secrets-manager-rs

لاحظ أن أيًا من هذه الطرق لا تقوم بتثبيت سكربت secs-man-ssh المطلوب للأجهزة البعيدة: إنه سكربت مستقل يجب نسخه من هذا المستودع بشكل منفصل.

الاستخدام

تسمح هذه الأداة بتصدير وتشفير الملفات من دليل مصدر معين، واستعادتها عن طريق الاستيراد إلى نفس الدليل. الطريقة الموصى بها لاستخدام هذه الأداة هي أن يكون لديك جميع "أسرارك" (مفاتيح، ملفات، ...) في دليل مركزي.

في جذر دليل الأسرار يجب أن يكون هناك ملف نصي .secrets-manifest يحتوي على قائمة الأسرار المراد إدارتها، في شكل مسارات نسبية إلى دليل الأسرار. لا يمكن أن تحتوي مسارات الملفات على مسافات. يمكن لكل إدخال أيضًا تحديد owner و mode والتي سيتم استخدامها لتعيين الأذونات الصحيحة أثناء الاستيراد. راجع .secrets-manifest.example لمعرفة الصيغة.

أثناء التصدير، يتم تشفير الملفات المدرجة في المانيفست باستخدام age بكلمة مرور يتم طلبها من خلال موجه تفاعلي (secs-man لا يقرأها أبدًا من ملف أو وسيط أو متغير بيئة). يتم طلب نفس كلمة المرور مرة أخرى عند الاستيراد لفك تشفير الملفات. يتم ضمان سلامة الملفات بواسطة ملف مرافق *.sha256، والذي يتم إنشاؤه تلقائيًا إذا كان مفقودًا. يتم تصدير الملفات المشفرة إلى لقطة زمنية داخل دليل التصدير الهدف.

يمكن بعد ذلك فك تشفير الملفات واستيرادها إما عن طريق الإشارة إلى دليل التصدير الهدف (لاستيراد أحدث لقطة) أو إلى لقطة محددة داخل هذا الدليل.

يمكن تشغيل الأوامر التالية بدون sudo، ومع ذلك ستفشل إذا حدد المانيفست أي مالك مختلف عن المستخدم الذي ينفذ الأمر (لأن استدعاء chown الداخلي سيفشل).

لتصدير أسرارك، قم بتشغيل

root@kitploit:~
sudo secs-man export /path/to/secrets /path/to/export/endpoint

للتحقق من سلامة تصدير موجود (انظر الملاحظة أدناه)، قم بتشغيل

root@kitploit:~
# للتحقق من سلامة جميع اللقطات المصدرة
sudo secs-man verify-export /path/to/export/endpoint

# للتحقق من سلامة لقطة محددة
sudo secs-man verify-export /path/to/export/endpoint/export-YYYY-MM-DD_HH-MM-SSZ

لاحظ أن فحص السلامة يتم تلقائيًا في كل تصدير. هذا مطلوب فقط إذا كنت تريد التحقق من سلامة تصدير قديم قد يكون تدهور وفسد.

لاستيراد أسرارك، قم بتشغيل

root@kitploit:~
# لاستيراد أحدث لقطة
sudo secs-man import /path/to/export/endpoint /path/to/secrets

# لاستيراد لقطة محددة
sudo secs-man import /path/to/export/endpoint/export-YYYY-MM-DD_HH-MM-SSZ /path/to/secrets

# لاستيراد أسرار محددة فقط
sudo secs-man import /path/to/export/endpoint /path/to/secrets --pick ssh/id_ed25519 wg/wg0.key

الاستخدام مع الأجهزة البعيدة

يمكن استخدام هذه الأداة لنشر ونسخ احتياطي للأسرار على الأجهزة البعيدة أيضًا.

أسهل طريقة لتصدير الأسرار عن بُعد هي تصديرها إلى دليل مؤقت على المضيف البعيد، ثم نسخ اللقطة المصدرة إلى نسخة احتياطية محلية. وبالمثل، لاستيراد نسخة احتياطية محلية، يكون الأسلوب الأسهل هو نسخ اللقطة المحلية إلى دليل مؤقت على المضيف البعيد، ثم استيرادها من هناك. ومع ذلك، فإن هذا يواجه مشكلة أن كلمة مرور التشفير/فك التشفير يجب أن تمر عبر المضيف البعيد، والذي قد يعتبر غير موثوق.

من أجل النشر إلى / النسخ الاحتياطي من مضيفين بعيدين غير موثوقين دون تمرير كلمة المرور عبر البعيد، يمكنك استخدام سكربت secs-man-ssh. لا يفترض هذا السكربت تسجيل الدخول الجذر عبر SSH (حيث قد يكون معطلاً لأسباب أمنية)، لكنه يفترض أن المستخدم البعيد لديه صلاحيات sudo (للسماح لـ secs-man بتشغيل chown و chmod).

للتصدير من مضيف بعيد، قم بتشغيل:

root@kitploit:~
secs-man-ssh export <user@host> <remote-secrets-dir> <local-backup>

# التدفق على النحو التالي:
# 1. يقوم السكربت بنسخ الأسرار البعيدة إلى دليل مؤقت على المضيف البعيد
# 2. يتم تغيير ملكية الدليل المؤقت للمستخدم العادي البعيد، بحيث يمكن قراءته ونسخه محليًا بدون sudo
# 3. يتم نسخ الدليل المؤقت على المضيف المحلي وحذفه من المضيف البعيد
# 4. يتم تصدير الدليل المحلي إلى النسخة الاحتياطية المحلية، ثم حذفه

لاستيراد إلى مضيف بعيد، قم بتشغيل:

root@kitploit:~
# يجب تثبيت secs-man على البعيد لكي يعمل استيراد السكربت
secs-man-ssh import <user@host> <local-container> <remote-secrets-dir>

# التدفق على النحو التالي:
# 1. يتم استيراد أحدث لقطة إلى دليل محلي مؤقت مع العلامة `--skip-chown-chmod`، بحيث يمكن قراءتها بدون sudo ونسخها إلى المضيف البعيد
# 2. يتم نسخ الدليل المحلي إلى المضيف البعيد في دليل مؤقت، وحذفه من المضيف المحلي
# 3. يتم استيراد الدليل المؤقت البعيد إلى دليل الأسرار البعيد باستخدام `--from-plaintext`، حيث تم فك تشفير الملفات بالفعل
# 4. يتم حذف الدليل المؤقت البعيد

الاستعادة اليدوية

التصدير

يتم تشفير الملفات المصدرة باستخدام age بكلمة مرور. اسم الملف المصدر هو الاسم الأصلي مع الامتداد الإضافي .age.

للحصول على نفس السلوك، يمكنك استخدام ما يلي:

root@kitploit:~
age --passphrase --output filename.txt.age --encrypt filename.txt

لاحظ أن:

  • قبل التصدير، يتم التحقق من المجموع الاختباري للملف المصدر
  • أثناء التصدير، يتم تصدير المجموع الاختباري الحالي للملف النصي بجوار الملف المشفر
  • بعد التصدير، يتم إنشاء مجموع اختباري آخر لجميع الملفات المشفرة للسماح بالتحقق من سلامة التصدير في وقت لاحق.

التحقق من التصدير

التحقق من سلامة التصدير يتكون من التحقق من تطابق كل مجموع اختباري. للقيام بذلك، يمكنك ببساطة تشغيل

root@kitploit:~
find . -name "sha256sums.txt" -execdir sha256sum -c sha256sums.txt \;

في دليل اللقطة المصدرة

الاستيراد

يتم فك تشفير الملفات المستوردة باستخدام age بكلمة مرور. اسم الملف المستورد هو اسم الملف المصدر بدون امتداد .age. إذا تم تحديد owner و/أو mode في المانيفست لإدخال معين، يتم تعيين الملف المستورد إلى المالك والوضع المحددين. إذا لم يتم تحديد وضع، فإنه يتحول إلى 600 افتراضيًا.

للحصول على نفس السلوك، يمكنك استخدام ما يلي:

root@kitploit:~
age --output filename.txt --decrypt filename.txt.age

# إذا لم يتم تحديد وضع، فإنه يتحول إلى 600 افتراضيًا
chmod <mode> filename.txt

# إذا لم يتم تحديد مالك، تخط هذه الخطوة
chown <owner> filename.txt

لاحظ أن:

  • قبل الاستيراد، يتم التحقق من المجموع الاختباري للملف المصدر
  • بعد الاستيراد، يتم التحقق من المجموع الاختباري للملفات المستوردة

نموذج التهديد

تقوم هذه الأداة تلقائيًا بإنشاء لقطات أثناء التصدير والتي لا يتم تنظيفها بواسطة الأداة نفسها. هذا يعني أنه يجب استخدام بعض الحذر عند تصدير الأسرار بهذه الأداة.

عند تصدير أسرار "المصادقة" (مفاتيح SSH/WireGuard، الرموز)، والتي يمكن تدويرها بسهولة، فإن وجود اللقطة لا يشكل أي مخاطر إضافية.

عند تصدير أسرار "فك التشفير" (مفاتيح القرص، هويات age/PGP، المفتاح الرئيسي لمدير كلمات المرور)، ومع ذلك، فإن وجود اللقطات يعني أنه إذا تم تسريب الأسرار داخل التصدير وتم فك تشفيرها بطريقة ما، يمكن للمهاجم الوصول إلى مفاتيح فك التشفير الحالية و السابقة. لهذا السبب، عند تدوير أسرار "فك التشفير"، سيكون من الآمن أيضًا حذف اللقطات المصدرة القديمة (والتي يمكن القيام بها بسهولة باستخدام rm -r /path/to/export/endpoint/export-YYYY-MM-DD_HH-MM-SSZ). لاحظ أن المسار الحرج الذي يعرض مفاتيح فك التشفير القديمة يتضمن أيضًا معرفة الأسرار الحالية، وهو ربما مصدر قلق أكبر.

تنزيل الأداة