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.

الأكثر شعبية

عرض الكل →

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

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

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

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

مصيدة Cowrie وGrafana باستخدام Terraform على DigitalOcean

فيديو توضيحي

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

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

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

حزمة مصيدة SSH/Telnet منشورة على خادم DigitalOcean droplet باستخدام 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 ├── docs/ │ └── ttp-to-runtime-rules.md # Observed attacker TTPs → Falco rules (eks-gitops, platform-engineering-lab) ├── 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 ├── metrics/ │ ├── runtime-metrics.schema.json # Shared schema — identical across all 4 portfolio projects │ └── runtime-metrics.json # Generated by scripts/export-honeypot-metrics.sh; gitignored, not committed ├── 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 │ ├── export-honeypot-metrics.sh # Queries Grafana/Loki, writes attacker_telemetry │ └── emit-runtime-metrics.py # Wraps attacker_telemetry in the shared metrics schema ├── 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, metrics schema/export ├── 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 GB (+2 GB swap)
- التخزين: 35 GB NVMe SSD
- نظام التشغيل: Ubuntu 24.04 LTS

> **هامش الذاكرة بعد ترقيات إصدارات الحاويات:** يثبّت `docker-compose.yml` إصدارات أحدث من صور Grafana (12.0.0) وLoki وPromtail (3.6.13) مقارنةً بحجم هذا الـ droplet الذي ضُبطت الموارد في الأصل بناءً عليه. لم تتغير قيم `mem_limit`/`memswap_limit` لكل خدمة — راقب `docker stats` بعد أول عملية نشر، وارفع خطة الـ droplet (أو قلّل `retention_period` الخاص بـ Loki / ذاكرة التخزين المؤقت لـ Grafana) إذا كان أي حاوية تقترب باستمرار من حدّها.

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

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

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

1. أنشئ رمز DigitalOcean API بصلاحيات القراءة/الكتابة:

- سجّل الدخول إلى 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. اتصل بالـ Droplet عبر SSH أو استخدم وحدة تحكم الويب الخاصة بـ 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 الخاص بـ droplet، كلمة مرور Grafana، بصمة مفتاح SSH) ويجب عدم إيداعه أبدًا. يغطي .gitignore كلاً من *.tfstate و *.tfstate.*.

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

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

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

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

تنزيل الأداة