Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Cowrie and Grafana Honeypot using Terraform on DigitalOcean — Cowrie、Loki、Promtail、Grafanaを使用して構築された中程度の対話型SSH/Telnetハニーポット - GitLab CI検証パイプラインを使用してTerraform経由でDigitalOcean上にプロビジョニング。 | Kitploit
ツール/GitLabGitLab/oseguera12/cowrie-honeypot-digitalocean
クラウドインフラストラクチャセキュリティネットワークセキュリティDevSecOps脅威インテリジェンスログ分析
GitLaboseguera12/cowrie-honeypot-digitalocean

Cowrie and Grafana Honeypot using Terraform on DigitalOcean

Cowrie、Loki、Promtail、Grafanaを使用して構築された中程度の対話型SSH/Telnetハニーポット - GitLab CI検証パイプラインを使用してTerraform経由でDigitalOcean上にプロビジョニング。

リポジトリを見る

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト
1234ヶ月前未レビュー

Terraformを使用したDigitalOcean上のCowrie&Grafanaハニーポット

デモ動画

目次

  • 目次
  • システム概要
  • 技術
  • プロジェクトディレクトリ構造
  • ハードウェア要件
  • インストールとセットアップ
  • Terraform状態管理
  • CI/CDパイプライン
  • システムアーキテクチャ
  • 観測結果
  • 使用方法
  • プロジェクトドキュメント
    • アーキテクチャ設計とトレードオフ
    • システム実行ウォークスルー
    • 遭遇した問題と制限
    • 将来の改善点
  • セキュリティ上の考慮事項
  • 貢献者
  • ライセンス

システム概要

Terraformを使用してDigitalOceanのドロップレット上にデプロイされたSSH/Telnetハニーポットスタック。攻撃は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

## ハードウェア要件

> 注意: これらの要件は2026年5月時点のDigitalOcean Basic Dropletプランに基づくもので、プロジェクトを実行するための最小要件です。

- プロバイダー: DigitalOcean
- プラン: Basic Droplet - 1 Intel vCPU
- RAM: 1 GB (+2 GB スワップ)
- ストレージ: 35 GB NVMe SSD
- OS: Ubuntu 24.04 LTS

## インストールとセットアップ

> 注意: インストール後は、新しい端末を開いて `ADMIN_SSH_PORT` (デフォルト: 2022) でまだSSH接続できることを確認してから、元のセッションを閉じることをお勧めします。

### Terraform によるデプロイ (推奨)

1. 読み取り/書き込み権限を持つDigitalOcean APIトークンを作成します:

- DigitalOceanにログインし、Account > API > Tokens > Generate New Token に移動します。
- トークンに名前を付け(例: "Cowrie Honeypot")、"Full Access"権限を選択します。
- "Generate Token"をクリックし、トークンの値を安全な場所にコピーします(後で確認できなくなります)。

2. ローカルマシンでSSH鍵ペアを作成し、公開鍵のパスをコピーします。

3. `terraform`ディレクトリに移動し、変数ファイルをコピーして編集します:

> 注意: 適用前に `terraform.tfvars` で少なくとも `do_token`、`ssh_public_key_path`、`grafana_admin_password` を設定する必要があります。```bash
cd terraform
cp terraform.tfvars.example terraform.tfvars
  1. 設定を適用してデプロイを開始します:

注: Terraform がローカルマシンにインストールされている必要があります。手順については、Terraform Installation Guide を参照してください。```bash terraform init # Initialize Terraform and download providers terraform apply

5. テスト中の場合 - 置き換えで再デプロイ:```bash
terraform apply -replace="digitalocean_droplet.honeypot" 
  1. クリーンアップ - 完了したらインフラを破棄してください:```bash terraform destroy
### 手動デプロイメント(レガシー)

1. 上記のハードウェア要件とあなたのSSHキーを備えたDigitalOceanドロップレットを作成します。

2. ドロップレットに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、Grafanaパスワード、SSHキーフィンガープリント)が含まれており、絶対にコミットしてはいけません。.gitignore は *.tfstate と *.tfstate.* をカバーしています。

ローカル状態のリスク:

  • マシンを紛失したりファイルが削除された場合に失われる
  • チームメンバー間で共有できない
  • ロックがない — 2つの apply 実行が同時に行われるとファイルが破損する可能性がある

個人の実験環境を超える場合は、リモートバックエンドに切り替えてください。terraform/backend.tf には、DigitalOcean Spacesの設定(S3互換)がコメントアウトされています。

リモートバックエンドを有効にするには:

  1. DigitalOceanアカウントでSpacesバケットを作成する
  2. API > Spaces Keys でSpacesアクセスキーを生成する
  3. キーを環境変数としてエクスポートしてください(terraform.tfvars には記述しないでください): ```bash export AWS_ACCESS_KEY_ID= export AWS_SECRET_ACCESS_KEY=
  4. terraform/backend.tf 内の backend "s3" ブロックのコメントを解除し、バケット名とリージョンエンドポイントを入力します。
  5. terraform init -migrate-state を実行して、既存のローカルステートを Spaces に移行します。

CI/CD パイプライン

.gitlab-ci.yml は、プッシュのたびに単一の validate ステージで 3 つのジョブを実行します。

ジョブツール目的
terraform:fmthashicorp/terraform:1.8フォーマット: いずれかのファイルが terraform fmt を必要とする場合に失敗します
terraform:validatehashicorp/terraform:1.8DigitalOcean に問い合わせずに設定の妥当性を検証します
checkov:scanbridgecrew/checkov:latestTerraform コード内の IaC の設定ミスをチェックします

注: terraform:fmt と terraform:validate は失敗するとパイプラインをブロックします。checkov:scan は allow_failure: true に設定されています。これは一部の検出結果が意図的なトレードオフであるためです。ジョブ全体を無効にするのではなく、許容できる特定の検出結果については、インラインの # checkov:skip=CKXXX コメントで抑制してください。

既知の許容されたリスク

CKV_DIO_4(「ファイアウォールの受信が完全に開いていないことを確認」)は、digitalocean_firewall リソース全体に対して 1 回発生します。これは terraform/main.tf のリソースブロック内に配置された単一の # checkov:skip=CKV_DIO_4: コメントで抑制されています。以下の表は、各開放ポートが意図的である理由を示しています。

ツールをダウンロード