Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Cowrie and Grafana Honeypot using Terraform on DigitalOcean — مصيدة SSH/Telnet متوسطة التفاعل مبنية باستخدام Cowrie, Loki, Promtail, Grafana - مزودة على DigitalOcean عبر Terraform مع خط أنابيب تحقق GitLab CI. | Kitploit
أدوات/GitLabGitLab/oseguera12/cowrie-honeypot-digitalocean
أمن البنية التحتية السحابيةأمن الشبكاتDevSecOpsاستخبارات التهديداتتحليل السجلات
GitLaboseguera12/cowrie-honeypot-digitalocean

Cowrie and Grafana Honeypot using Terraform on DigitalOcean

مصيدة SSH/Telnet متوسطة التفاعل مبنية باستخدام Cowrie, Loki, Promtail, Grafana - مزودة على DigitalOcean عبر Terraform مع خط أنابيب تحقق GitLab CI.

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
عرض المستودع
الموقع الإلكتروني
123منذ 4 أشهرلم تتم المراجعة بعد
مشاركة

Cowrie & Grafana Honeypot باستخدام Terraform على DigitalOcean

فيديو توضيحي

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

  • جدول المحتويات
  • نظرة عامة على النظام
  • التقنيات
  • هيكل دليل المشروع
  • متطلبات الأجهزة
  • التثبيت والإعداد
  • إدارة حالة Terraform
  • أنبوب CI/CD
  • هندسة النظام
  • الملاحظات
  • الاستخدام
  • توثيق المشروع
    • تصميم الهندسة والمقايضات
    • شرح تنفيذ النظام
    • المشكلات والقيود التي واجهتنا
    • التحسينات المستقبلية
  • اعتبارات الأمان
  • المساهمون
  • الترخيص

نظرة عامة على النظام

مجموعة مصائد SSH/Telnet منشورة على droplet من DigitalOcean باستخدام Terraform. يتم التقاط الهجمات بواسطة Cowrie، وتخزينها في Loki، وتصوّرها في Grafana مع خريطة عالمية حية لأصول الهجمات.

التقنيات

  • DigitalOcean
  • Terraform
  • Docker
  • Cowrie
  • Loki
  • Grafana
  • Promtail
  • DB-IP (تحميل City Lite)

هيكل دليل المشروع

---``` honeypot/ ├── cowrie/ │ └── etc/ │ ├── cowrie.cfg # Cowrie honeypot configuration │ └── userdb.txt # Accepted and rejected fake credentials ├── geoip/ │ └── .gitkeep # Placeholder - MMDB files are gitignored ├── grafana/ │ ├── provisioning/ │ │ ├── dashboards/ │ │ │ ├── dashboards.yml # Provisioning: dashboard provider │ │ │ └── honeypot-dashboard.json # Pre-built Attack Monitor dashboard │ │ └── datasources/ │ │ └── loki.yml # Auto-provisioned Loki datasource │ └── grafana.ini # Grafana server settings ├── loki/ │ └── config.yml # Loki single-binary config and retention ├── promtail/ │ └── config.yml # Promtail scrape and GeoIP pipeline ├── scripts/ │ ├── geoip-update.sh # Download or refresh GeoIP database │ └── setup-firewall.sh # Host UFW rules for honeypot ports ├── terraform/ │ ├── templates/ │ │ ├── cloud-init.yaml.tftpl # Droplet first-boot script (Terraform-templated) │ │ └── env.tftpl # .env lines embedded via Terraform │ ├── backend.tf # Terraform backend config │ ├── main.tf # Droplet, SSH key, firewall, cloud-init │ ├── outputs.tf # IPs and helpful post-apply values │ ├── terraform.tfvars.example # Example variable values (copy to terraform.tfvars) │ ├── variables.tf # Terraform input variables │ └── versions.tf # Terraform and provider version constraints ├── .env.example # Example environment file for manual setup ├── .gitignore # Ignored paths and files ├── .gitlab-ci.yml # CI/CD pipeline: fmt, validate, Checkov ├── docker-compose.yml # Docker Compose file for the honeypot stack ├── LICENSE # GPLv2 license ├── manual-deployment.sh # Legacy VM bootstrap without Terraform └── README.md # Project documentation

## متطلبات الأجهزة

> ملاحظة: تستند هذه المتطلبات إلى خطة DigitalOcean Basic Droplet اعتبارًا من مايو 2026 وهي الحد الأدنى من المتطلبات لتشغيل المشروع.

- المزود: DigitalOcean
- الخطة: Basic Droplet - 1 Intel vCPU
- الذاكرة العشوائية: 1 جيجابايت (+2 جيجابايت مبادلة)
- التخزين: 35 جيجابايت NVMe SSD
- نظام التشغيل: Ubuntu 24.04 LTS

## التثبيت والإعداد

>ملاحظة: بعد التثبيت، يُوصى بفتح محطة طرفية جديدة والتأكد من قدرتك على SSH عبر `ADMIN_SSH_PORT` (الافتراضي: 2022) قبل إغلاق جلستك الأصلية.

### نشر Terraform (موصى به)

1. قم بإنشاء رمز API لـ DigitalOcean بأذونات قراءة/كتابة:

- سجل الدخول إلى DigitalOcean وانتقل إلى Account > API > Tokens > Generate New Token.
- قم بتسمية الرمز الخاص بك (مثل "Cowrie Honeypot") وحدد أذونات "Full Access".
- انقر على "Generate Token" وانسخ قيمة الرمز إلى مكان آمن (لن تتمكن من رؤيته مرة أخرى).

2. قم بإنشاء زوج مفاتيح SSH على جهازك المحلي وانسخ مسار المفتاح العام.

3. انتقل إلى دليل `terraform` ثم انسخ وعدّل ملف المتغيرات:

> ملاحظة: يجب تكوين `do_token` و `ssh_public_key_path` و `grafana_admin_password` كحد أدنى في `terraform.tfvars` قبل التطبيق.```bash
cd terraform
cp terraform.tfvars.example terraform.tfvars
  1. قم بتطبيق التهيئة وبدء النشر:

ملاحظة: يجب تثبيت Terraform على جهازك المحلي. راجع دليل تثبيت Terraform للحصول على التعليمات.```bash terraform init # Initialize Terraform and download providers terraform apply

5. إذا كان الاختبار - إعادة النشر مع الاستبدال:```bash
terraform apply -replace="digitalocean_droplet.honeypot" 
  1. التنظيف - دمّر البنية التحتية عند الانتهاء:```bash terraform destroy
### النشر اليدوي (إصدار قديم)

1. أنشئ Droplet على DigitalOcean بمتطلبات الأجهزة المذكورة أعلاه ومفتاح SSH الخاص بك.

2. اتصل عبر SSH بـ Droplet أو استخدم لوحة التحكم على الويب من DigitalOcean وقم بتشغيل الأوامر التالية:```bash
ssh root@<your-droplet-ip> # If using DigitalOcean web console, skip this command
git clone https://gitlab.com/Oseguera12/cowrie-honeypot-digitalocean.git /opt/honeypot
cd /opt/honeypot
cp .env.example .env
nano .env
bash manual-deployment.sh

إدارة حالة Terraform

ملاحظة: بشكل افتراضي، يكتب Terraform الحالة في terraform/terraform.tfstate على جهازك المحلي. يحتوي هذا الملف على قيم إخراج حساسة (عنوان IP الخاص بالدروبلت، كلمة مرور Grafana، بصمة مفتاح SSH) ويجب ألا يتم تضمينه أبدًا في الالتزامات (commits). يغطي .gitignore كلًا من *.tfstate و *.tfstate.*.

مخاطر الحالة المحلية:

  • فقدانها إذا ضاع الجهاز أو حُذف الملف
  • لا يمكن مشاركتها بين أعضاء الفريق
  • لا يوجد قفل — يمكن لتشغيل apply متزامنين أن يفسدا الملف

لأي شيء يتجاوز المختبر الشخصي، قم بالتبديل إلى خلفية (backend) عن بُعد. يحتوي terraform/backend.tf على تكوين DigitalOcean Spaces معلق (متوافق مع S3).

لتفعيل الخلفية البعيدة:

  1. قم بإنشاء حاوية (bucket) من Spaces في حساب DigitalOcean الخاص بك
  2. قم بإنشاء مفتاح وصول Spaces ضمن API > Spaces Keys
  3. قم بتصدير المفاتيح كمتغيرات بيئة (لا تضعها في terraform.tfvars): ```bash export AWS_ACCESS_KEY_ID= export AWS_SECRET_ACCESS_KEY=
  4. قم بإلغاء تعليق كتلة backend "s3" في terraform/backend.tf واملأ اسم الحاوية ونقطة نهاية المنطقة.
  5. قم بتشغيل terraform init -migrate-state لنقل الحالة المحلية الحالية إلى Spaces.

خط أنابيب CI/CD

يقوم ملف .gitlab-ci.yml بتشغيل ثلاث وظائف في كل دفعة في مرحلة validate واحدة:

الوظيفةالأداةالغرض
terraform:fmthashicorp/terraform:1.8التنسيق: يفشل إذا كان أي ملف يحتاج إلى terraform fmt
terraform:validatehashicorp/terraform:1.8التحقق من صحة التكوين دون الاتصال بـ DigitalOcean
checkov:scanbridgecrew/checkov:latestأخطاء تكوين IaC في كود Terraform
تنزيل الأداة