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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
canarytokens-docker — تهيئة Docker لإعداد Canarytokens الخاصة بك بسرعة. | Kitploit
أدوات/GitHubGitHub/thinkst/canarytokens-docker
أدوات دفاعيةأمن الشبكاتكشف التسللالاستجابة للحوادث
GitHubthinkst/canarytokens-docker

canarytokens-docker

تهيئة Docker لإعداد Canarytokens الخاصة بك بسرعة.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Canarytokens عبر Docker

بواسطة Thinkst Applied Research

نظرة عامة

تساعد Canarytokens في تتبّع النشاط والإجراءات على شبكتك.

إذا كانت لديك أي مشكلات، يرجى الاطلاع على الأسئلة الشائعة هنا، أو إنشاء issue وسنحاول الرد عليك في أقرب وقت ممكن.

جدول المحتويات

  • مدونة قواعد السلوك
  • المتطلبات الأساسية
  • الترحيل إلى v3
  • الإعداد (في Ubuntu)
  • الحفاظ على البيانات
  • كيفية تفعيل HTTPS
  • تفعيل المصادقة الأساسية لموقع Canarytokens الخاص بك
  • ما الجديد؟
  • الأسئلة الشائعة
  • المساهمة

مدونة قواعد السلوك

يخضع هذا المشروع وكل من يشارك فيه لـمدونة قواعد السلوك. بمشاركتك، يُتوقع منك الالتزام بهذه المدونة. يرجى الإبلاغ عن أي سلوك غير مقبول إلى [email protected].

المتطلبات الأساسية

  • اسم نطاق واحد على الأقل. إذا كنت تريد تفعيل تتبّع فتح ملفات PDF، فستحتاج إلى نطاقين على الأقل.
  • مضيف Docker موجّه للإنترنت. يمكنك تثبيت Docker على مضيف Linux بسرعة.

الترحيل إلى v3

  • اعتمادًا على ما إذا كنت تستخدم letsencrypt: docker compose -f docker-compose.yml down أو docker compose -f docker-compose-letsencrypt.yml down
  • إذا كنت تعمل على إصدار أقدم من Docker، فستحتاج إلى الترقية.
  • لم يعد docker-compose يعمل، وستحتاج إلى تشغيل docker network prune قبل تشغيل نسختك من Canarytokens باستخدام docker compose. لا تزال Canarytokens v2 تعمل.
  • اسحب أحدث إصدار من مستودع canarytokens-docker.
  • وبالمقابل: docker compose -f docker-compose.yml up -d أو docker compose -f docker-compose-letsencrypt.yml up -d

ملاحظة: لم يعد مستودع canarytokens-docker المحدَّث يحتوي على Dockerfile الخاص بـ Canarytokens v2، لذا يتطلب تشغيل ذلك استخدام الصورة الموسومة thinkst/canarytokens:v2_latest. نوصي بشدة بالانتقال إلى v3. يرجى الاتصال بنا إذا كنت تواجه صعوبة في الترحيل.

الإعداد (في Ubuntu)

  • شغّل مضيف Docker، ولاحظ عنوان IP العام.
  • اضبط نطاقاتك بحيث تشير خوادم الأسماء الخاصة بها إلى عنوان IP العام لمضيف Docker. يتطلب هذا إجراء تغيير لدى مسجّل النطاق (Registrar). مجرد تغيير سجلات NS في ملف المنطقة غير كافٍ. ستحتاج إلى سجل A لنطاقك يشير إلى عنوان IP العام الخاص بك.
  • استنسخ إعداد Docker:
root@kitploit:~
$ git clone https://github.com/thinkst/canarytokens-docker
$ cd canarytokens-docker
  • ثبّت Docker compose (إذا لم يكن مثبتًا بالفعل):
root@kitploit:~
$ sudo apt-get install python3-pip python3-dev
$ sudo pip install -U docker-compose
#if this breaks with PyYAML errors, install the libyaml development package
# sudo apt-get install libyaml-dev
  • نوزّع ملفّي .env يُستخدمان للإعداد، وهما switchboard.env.dist وfrontend.env.dist. ستحتاج إلى نسخهما/إعادة تسميتهما إلى switchboard.env وfrontend.env على التوالي (يضمن هذا ألا تُمحى إعداداتك إذا سحبت التغييرات). بمجرد القيام بذلك، يمكنك تعديلهما:
  1. يرجى مراجعة ملفّي الإعداد الجديدين switchboard.env وfrontend.env، وملء قسم Required Settings. إن Optional Settings غير مطلوبة للتشغيل ولها قيم افتراضية منطقية، لذا لا تغيّرها إذا لم تكن بحاجة إلى ذلك.

  2. بعد ذلك، قرّر مزوّد البريد الإلكتروني الذي تريد استخدامه لإرسال التنبيهات. سيكون عليك الاختيار بين mailgun وSMTP وsendgrid. يمكن العثور على التفاصيل المطلوبة ذات الصلة في ملف .env المناسب.

  3. أنشئ بذرة مفاتيح WireGuard فريدة واحدة لتعيينها كقيمة لـCANARY_WG_PRIVATE_KEY_SEED في كل من switchboard.env وfrontend.env باستخدام الأمر:

root@kitploit:~
dd bs=32 count=1 if=/dev/urandom 2>/dev/null | base64
  • فيما يلي ملفات مثال لإعداد يستخدم:
    • النطاقات example1.com وexample2.com وexample3.com (ملفات PDF) لمشغلات canarytoken عبر switchboard

    • عنوان IP العام 1.1.1.1 لمشغلات switchboard

    • النطاق 'my.domain' لتقديم الواجهة الأمامية

    • اسم نطاق Mailgun 'x.y' ومفتاح API 'zzzzzzzzzz'

    • بذرة مفاتيح WireGuard vk/GD+frlhve/hDTTSUvqpQ/WsQtioKAri0Rt5mg7dw=

    • frontend.env

root@kitploit:~
#These domains are used for general purpose tokens
CANARY_PUBLIC_IP=1.1.1.1
CANARY_DOMAINS=example1.com,example2.com

#These domains are only used for PDF tokens
CANARY_NXDOMAINS=example3.com

#Requires a Google Cloud API key to generate an incident map on the history page with the Maps JavaScript API
CANARY_GOOGLE_API_KEY=<grab google maps api key>
LOG_FILE=frontend.log
  • switchboard.env (مثال باستخدام Mailgun للبريد الإلكتروني)
root@kitploit:~
CANARY_PUBLIC_DOMAIN=mydomain.com
LOG_FILE=switchboard.log
CANARY_MAILGUN_DOMAIN_NAME=x.y
CANARY_MAILGUN_API_KEY=zzzzzzzzzz
[email protected]
CANARY_ALERT_EMAIL_FROM_DISPLAY="Example Canarytokens"
CANARY_ALERT_EMAIL_SUBJECT="Canarytoken"
CANARY_WG_PRIVATE_KEY_SEED=vk/GD+frlhve/hDTTSUvqpQ/WsQtioKAri0Rt5mg7dw=
  • أخيرًا، حمّل الصور وشغّلها:
root@kitploit:~
$ docker compose up
  • ستكون الواجهة الأمامية وswitchboard الآن تعملان في المقدمة. يمكن الوصول إلى الواجهة الأمامية على http://example1.com/generate. إذا كنت ترغب في تشغيل ذلك في الخلفية، يمكنك استخدام
root@kitploit:~
$ docker compose up -d

ملاحظة: إذا كنت تملك نطاقًا واحدًا فقط، وتريد استخدام pdf tokens، يمكنك استخدام نطاقات فرعية لـCANARY_NXDOMAINS. باستخدام example.com كنطاق، يمكنك تعيين CANARY_NXDOMAINS إلى nx.example.com. ثم سجّل الدخول إلى وحدة تحكم مدير DNS (حيث يمكنك تعديل سجلات DNS لنطاقك) وأضف سجل NS باسم nx.example.com يُوجَّه إلى example.com.

الحفاظ على البيانات

يتم حفظ tokens في ملف قاعدة بيانات Redis موجود خارج حاويات Docker. ابحث عن dump.rdb في دليل canarytokens-docker/data.

إذا أردت مسح جميع tokens، احذف dump.rdb.

كيفية تفعيل HTTPS

لدينا ملف docker-compose منفصل يعمل على أتمتة (في الغالب) تشغيل خادم Canarytokens مع HTTPS. ستحتاج إلى القيام بما يلي:

  • عدّل ملف certbot.env. ستحتاج إلى تقديم نطاقك وعنوان بريدك الإلكتروني (هذه ضرورية لعملية تسجيل certbot). مثال:
root@kitploit:~
# Specify a single domain name
MY_DOMAIN_NAME=example.com

# or multiple domains names with this different key (comment out MY_DOMAIN_NAME above if you do):
# MY_DOMAIN_NAMES=example.com anotherexample.net thirdexample.org

[email protected]
  • الآن عندما تريد تشغيل الخادم، ستستخدم docker compose -f docker-compose-letsencrypt.yml up، والذي سيشغّل الخادم في المقدمة لتتمكن من التأكد من أن كل شيء يعمل بشكل صحيح.

  • إذا كان كل شيء يعمل، قد ترغب في الضغط على CTRL+C، ثم تشغيل docker compose -f docker-compose-letsencrypt.yml down للوصول إلى حالة نظيفة، ثم إعادة تشغيل docker compose -f docker-compose-letsencrypt.yml up -d مع إضافة -d لتشغيل الخادم في الخلفية (بوضع الخفي/daemon)

  • يرجى مراعاة أن استخدام طريقة HTTPS سيعتمد على البريد الإلكتروني الذي حددته واسم النطاق لتسجيل الشهادة. يمكنك القراءة عن عملية let's encrypt (باستخدام cerbot) هنا. تتضمن العملية التحقق من أنك مالك النطاق الذي حددته وتسجيلك لدى let's encrypt.

  • يوجد حد أقصى للمعدل. لذا لا تُبقِ هذا الخادم في حالة تشغيل وإيقاف متكررة وإلا ستصل بسرعة إلى حد توليد شهادات let's encrypt. لتجنب ذلك، ولأغراض الاختبار، يمكنك إضافة --staging إلى أمر ./certbot-auto في cerbot-nginx/start.sh، وسيختبر هذا ما إذا كانت let's encrypt ستمنحك الشهادة.

تفعيل المصادقة الأساسية لموقع Canarytokens الخاص بك

يمكنك اتباع هذه الخطوات إذا كنت ترغب في الحصول على موقع canarytokens موجّه للجمهور ولكن تريد بعض المصادقة الأساسية للوصول إليه.

  1. git clone https://github.com/thinkst/canarytokens-docker.git
  2. انتقل إلى مجلد nginx:
    • لـ HTTP:
    root@kitploit:~
    cd canarytokens-docker/nginx
    
    • لـ HTTPS:
    root@kitploit:~
    cd canarytokens-docker/certbot-nginx
    
  3. sudo htpasswd -c .htpasswd user حيث يمكن أن يكون user أي اسم مستخدم تريد استخدامه.
  4. sudo chown <user>:<user> .htpasswd حيث user هو مستخدم Linux المحلي
  5. عدّل ملف nginx.conf المناسب و
root@kitploit:~
server {
    ...
    location ~* (/generate|/manage|/download|/history|/settings|/resources|/legal).* {
        auth_basic           "Basic Auth Restricted Canrytokens"; <---- ADD
        auth_basic_user_file /etc/nginx/.htpasswd;                 <---- ADD
  1. عدّل ملف Dockerfile المناسب وأضف ما يلي أسفل COPY nginx.conf ...
root@kitploit:~
COPY .htpasswd /etc/nginx/.htpasswd
  1. أعد بناء الصور باستخدام:
    • لـ HTTP:
    root@kitploit:~
    docker compose build
    
    • لـ HTTPS:
    root@kitploit:~
    docker compose -f docker-compose-letsencrypt.yml build
    

أعد تشغيل حاويات Docker، واستمتع!

شكرًا لـ@mamisano لرصده مشكلة بسيطة عند استخدام ما ورد أعلاه 🙏

ما الجديد؟

سنقوم بتتبّع بعض الميزات/الإضافات الجديدة هنا بحيث يكون من السهل والسريع رؤية ما تمت إضافته مؤخرًا.

  • انتقلنا بـ"What's new?" إلى مناقشات Github. ألقِ نظرة هنا.

  • أصبح لدينا الآن القدرة على إرسال سجلات الأخطاء إلى webhook من اختيارك، على أمل تنبيهك أنت أو فريقك إلى حالات الفشل بدلاً من أن تبقى هذه الأخطاء في ملف سجل فقط. ما عليك سوى توفير عنوان URI الخاص بـ webhook في قيمة ERROR_LOG_WEBHOOK في ملف switchboard.env الخاص بك. (2021-04-09)

  • أعدنا تسمية ملفات .env الموزعة إلى switchboard.env.dist وfrontend.env.dist. يضمن هذا ألا تُمحى إعداداتك المحلية عند سحب التغييرات من المستودع. (ما زلنا نستخدم switchboard.env وfrontend.env للإعداد، ولكن هذا يعني فقط أن النسخ الجديدة من المستودع تتطلب من المستخدمين نسخ/إعادة تسمية ملفات dist)

  • أضفنا switchboard.env إضافيًا باسم CANARY_IPINFO_API_KEY. يسمح لك هذا باستخدام مفتاح API الخاص بـ ipinfo.io إذا أردت (ضع في اعتبارك أن ipinfo.io يوفر خطة مجانية تصل إلى 1000 طلب يوميًا).

  • لدينا الآن دعم لـ Slack. عند توفير webhook، كل ما عليك هو توفير عنوان URL الخاص بـ Slack webhook. (بفضل @shortstack).

  • أضفنا متغيّر بيئة جديدًا إلى frontend.env باسم CANARY_AWSID_URL يسمح لك بتحديد عنوان URL خاص أو مختلف لرمز AWS ID. وهذا يعني أنه يمكنك التبديل بسهولة بين الحسابات. (2018-10-17)

الأسئلة الشائعة

لدينا أسئلة شائعة هنا

المساهمة

يرجى الاطلاع على وثيقتي مدونة قواعد السلوك والمساهمة قبل تقديم طلب سحب (pull request).

نتطلع إلى مساهماتكم القيّمة.

تنزيل الأداة
  • إذا كنت تنوي بناء الصورة لتشغيلها على نظام آخر ببنية معمارية مختلفة، يمكنك بناء الصور باستخدام docker compose build --build-arg ARCH=<target arch>/، مع ملاحظة الشرطة المائلة للأمام في نهاية الوسيط. لن يتم بناء الصورة بشكل صحيح إذا لم يتم تضمين ذلك.