よく使われるサービスやインフラ向けのGrafanaダッシュボードと初期設定済みアラートを作成・管理し、クエリを手書きする手間を省きます。
shizunge/endlessh-go
Prometheusメトリクスと攻撃者統計用Grafanaダッシュボードを備えた、endlesshのGo実装。
- スター
- 1,455
- フォーク
- 55
- 未解決の Issue
- 18
- 最終コミット
- 8 日前
これは何?
endlessh-goは、SSH接続を受け付けてバナー行をゆっくり送信し、ブルートフォース攻撃ボットをできるだけ長く接続状態に留めるtarpit、endlesshのGo移植版です。元のC版のようにテキストログを書き出すだけでなく、接続数、送信バイト数、拘束時間を含む構造化されたPrometheusメトリクスを公開します。
攻撃者のIPアドレスをip-apiまたはオフラインのMaxMindデータベースでgeohashに変換する機能もあり、国、位置情報、geohashをラベルとして付与できます。Grafanaダッシュボード(grafana.comでもID 15156として公開)は、指定した期間のメトリクスを可視化し、IPアドレスからARINの検索ページに移動できます。
単体バイナリまたはDockerコンテナとして動作し、デフォルトではポート2222で待ち受けます。複数ポートとPROXY protocolヘッダーに対応し、任意でHTTPヘルスチェックエンドポイントも利用できます。メトリクスを有効にした場合、メモリ使用量はC実装より約10MB多いとされています。
主な機能
- 01接続数、送信バイト数、拘束時間をPrometheusメトリクスとして公開します。
- 02ip-apiまたはMaxMindデータベースを使って攻撃者のIPアドレスを調べ、国、位置情報、geohashを取得します。
- 03攻撃元を時系列で可視化するGrafanaダッシュボードが付属します。
- 04複数の待ち受けポート、IPv4/IPv6の選択、PROXY protocolヘッダーに対応します。
- 05任意でHTTPヘルスチェックエンドポイントを利用でき、HEALTHCHECKを組み込んだDockerイメージも提供します。
ユースケース
- 公開サーバーに届くSSHブルートフォース攻撃を監視し、攻撃元を把握する。
- 攻撃者の統計情報を既存のPrometheus・Grafana環境に取り込む。
- 自動化されたSSHスキャナーをtarpitに誘導して時間を浪費させつつ、別のポートで本物のsshdを稼働させる。
クイックスタート
- 1
リポジトリをクローンし、ソースからビルドします
go build . - 2
サーバーを起動します
./endlessh-go & - 3
接続してtarpitをテストします(クライアントが応答しなくなるはずです)
ssh -p 2222 localhost
使う前に知っておきたいこと
- ip-api経由でGeoIP検索を有効にすると、レート制限や商用利用の制限が適用される場合があります。
- 元のC実装よりメモリを約10MB多く使用します。
- コピーレフトライセンスであるGPL-3.0の下でライセンスされています。
トピック
よくある質問
- endlessh-go とは?
- Prometheusメトリクスと攻撃者統計用Grafanaダッシュボードを備えた、endlesshのGo実装。 endlessh-goは、SSH接続を受け付けてバナー行をゆっくり送信し、ブルートフォース攻撃ボットをできるだけ長く接続状態に留めるtarpit、endlesshのGo移植版です。元のC版のようにテキストログを書き出すだけでなく、接続数、送信バイト数、拘束時間を含む構造化されたPrometheusメトリクスを公開します。
- endlessh-go は無料で使えますか?ライセンスは?
- endlessh-go は GPL-3.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- endlessh-go は今もメンテナンスされていますか?
- 活発にメンテナンス中。endlessh-go の最終コミットは 2026年10月13日 です。
- endlessh-go は何に使えますか?
- 公開サーバーに届くSSHブルートフォース攻撃を監視し、攻撃元を把握する。 攻撃者の統計情報を既存のPrometheus・Grafana環境に取り込む。 自動化されたSSHスキャナーをtarpitに誘導して時間を浪費させつつ、別のポートで本物のsshdを稼働させる。
- endlessh-go のインストール方法は?
- リポジトリをクローンし、ソースからビルドします: go build . サーバーを起動します: ./endlessh-go & 接続してtarpitをテストします(クライアントが応答しなくなるはずです): ssh -p 2222 localhost
- endlessh-go はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/shizunge/endlessh-go
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
インターネット速度テストを定期実行し、設定した期間にわたって結果を保存するセルフホスト型ソフトウェアです。
TeslaMateの走行、充電、効率、バッテリーの状態、走行距離を可視化するGrafanaダッシュボード集。
SSH秘密鍵をSecure Enclaveに保存し、Touch IDまたはApple Watchでアクセスを制御するmacOSアプリ。
メトリクス、ログ、SQLデータソース向けのセルフホスト型アラート管理システム。通知ルーティングに加え、AIエージェントとMCPサーバーを内蔵。
デスクトップ通知やWebhookでアラートを送る、稼働状況・応答時間・SSL証明書の有効期限を監視するCLIツール。