萌えハッカーニュースリーダー

2025/10/22 08:37 Knocker, a knock based access control system for your homelab

出典: https://github.com/FarisZR/knocker
hakase
博士

やっほー、ロボ子!今日のニュースはKnockerっていう、HTTPベースのシングルパケット認証ゲートウェイについてなのじゃ。

roboko
ロボ子

博士、こんにちは。Knockerですか、初めて聞きました。具体的にどのようなものなのでしょうか?

hakase
博士

Knockerはね、CaddyとかFirewallDと連携して、Homelab環境のサービスを保護するの。許可されたIPアドレスに対してだけ、オンデマンドでサービスを公開するから、攻撃対象領域を最小限にできるってわけ。

roboko
ロボ子

なるほど、必要な時だけ公開するんですね。APIキー認証やTTLの設定もできるみたいですが、これはどういう仕組みですか?

hakase
博士

APIキー認証は、Knockエンドポイントを保護するためのもの。複数のAPIキーを設定できるのじゃ。TTLは、ホワイトリストに登録されたIPのアクティブ期間を設定できる機能。例えば、特定のAPIキーで登録されたIPは1時間だけ有効、とか設定できるぞ。

roboko
ロボ子

それなら、セキュリティも高まりますね。リモートホワイトリスト機能も便利そうです。自分のIPだけでなく、任意のIP/CIDR範囲を登録できるんですね。

hakase
博士

そうそう。管理者キーにその権限を与えれば、特定のIPレンジからのアクセスを許可できるのじゃ。静的IP/CIDRホワイトリストもあるから、常に許可するIPアドレスや範囲も設定できるぞ。

roboko
ロボ子

パスベースの除外機能も便利ですね。ヘルスチェックなどの特定のURLパスを認証から除外できるのは、運用上助かります。

hakase
博士

ロボ子、よく分かってるの!IPv6もサポートしてるし、Firewalld連携で高度なファイアウォール制御もできる。TTLに基づいて自動的に期限切れになる時間制限付きのルールを設定できるのがミソじゃ。

roboko
ロボ子

Firewalld連携はネットワークレベルで動作するから、HTTP以外のサービスにもKnockerを使えるんですね。sshやゲームサーバーにも応用できるのはすごい。

hakase
博士

その通り!Firewalld連携を有効にするには、Dockerコンテナをrootとして実行する必要があるけど、それだけの価値はあるぞ。D-Busアクセスも必要だから、Docker Composeファイルで設定する必要があるのじゃ。

roboko
ロボ子

APIもシンプルですね。/knockでIPをホワイトリストに登録して、/verifyで認証を確認するんですね。Caddyとの連携も簡単そうです。

hakase
博士

Caddyfileで認証チェック用のスニペットを定義して、保護するサービスにインポートするだけ。簡単でしょ?

roboko
ロボ子

はい、とても分かりやすいです。Docker Composeで簡単にデプロイできるのも良いですね。AMD64、ARMv8、ARMv7をサポートする構築済みのDockerイメージがあるのも助かります。

hakase
博士

でしょでしょ?`knocker.yaml`の設定をちゃんと変更して、リバースプロキシのネットワークのサブネットと一致させるのを忘れずに!

roboko
ロボ子

はい、気をつけます。ドキュメントも充実しているみたいですね。/docs、/redoc、/openapi.jsonでインタラクティブなドキュメントが見れるんですね。

hakase
博士

デフォルトでは無効だけど、`knocker.yaml`で設定を変更すれば有効にできるぞ。でも、ドキュメントを有効にするよりも、私との会話の方がもっと面白いと思うけどな!

roboko
ロボ子

それはどうでしょう?でも、KnockerはHomelab環境を安全に保つための強力なツールになりそうですね。今日のニュース、とても勉強になりました。

hakase
博士

ふふ、どうもありがとう。最後に一つ、Knockerを使うと、まるで私があなたの家のドアをノックして、「開けてくれなきゃ、イタズラしちゃうぞ!」って言ってるみたいじゃない?

roboko
ロボ子

博士、それはちょっと怖いですね…。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search