Skip to content
このページは AI で翻訳されており、不正確な表現が含まれる場合があります。GitHub で改善にご協力ください。

Gately v0.6.5.5 リリース ​

2026年11月11日

ダウンロード v0.6.5.5 · GitHub Release

ポートノッキング(#80) ​

「ネットワーク」グループに「ポートノッキング」モジュールを追加しました。fwknop クライアント互換のシングルパケット認可(SPA)で、保護対象のポートは普段外部から接続できず、クライアントが暗号化・認証付きのノックパケットを送って認証に通ると、その送信元アドレスだけを一定時間許可します。SSH の直接接続の保護に向いており、scp や IDE のリモート開発など Web ターミナルでは対応できない用途でも、インターネットから安全に接続できます。

  • セキュリティ:パケットは AES で暗号化、HMAC で認証され、HMAC を先に検証してから復号します。各パケットは 1 回しか使えず(リプレイ防止)、タイムスタンプが有効期間(既定 120 秒)を外れると拒否します。ユーザー名の限定や、許可アドレスの明記の要求もできます;
  • ファイアウォールによるブロック:ノックパケットは既定で UDP 62201 で受け付けます。ルールは保護対象のポートをシステムファイアウォール(nftables。カーネルに nf_tables がない場合は iptables + ipset)に書き込み、ノックに成功したアドレスは許可時間(既定 30 秒)内に新しい接続を確立できます。確立済みの接続には影響しません;
  • 締め出し防止:「内部ネットワークはノック不要」が既定で有効で、プライベートアドレスとこのマシンのインターフェースが属するパブリック IPv6 プレフィックスはノック不要です(キャリアグレード NAT の 100.64.0.0/10 は含みません)。ノック不要の許可リストも追加できます;
  • Gately の入口でノックによる許可:ポート転送、プロトコル振り分け、STUN 内蔵転送の IP アクセス制御で「ノックが必要」を選べます。Gately 自身が判定するためファイアウォール権限は不要で、Windows、macOS、NET_ADMIN のないコンテナーでも使えます;
  • ポートは 1 つだけ:プロトコル振り分けはルートごとにノックを要求でき、TCP でノックパケットを受け付ける「ポートノッキング」ルート(プロトコル spa、fwknop -P tcp)が加わりました。同じポートでノックを受け付け、その結果に応じて SSH などのルートを許可します;
  • 侵入防御との連携:拒否されたノックを侵入防御のイベントソースにでき、組み込みテンプレート「ポートノッキング失敗」は既定で 10 分間に 5 回で 1 日ブロックします。UDP で届き HMAC 認証に失敗したパケットは送信元を偽装できるため、数えるだけでイベントには使いません。ノックの成功と拒否は通知センターで購読できます;
  • クライアント設定:ルールカードの「クライアント」で fwknop のコマンドラインと ~/.fwknoprc の設定ブロックを生成します。鍵の形式は fwknop -k と同じです。

詳しくは ポートノッキング を参照してください。

Wake-on-LAN:エージェントによるリモートシャットダウン ​

リモートシャットダウンに「エージェント」方式が加わりました。Windows、Linux、macOS、OpenWrt にエージェントをインストールすると(それぞれタスクスケジューラ、または systemd / OpenRC、launchd、procd のサービスとして登録)、エージェントが Gately をロングポーリングして指示を受け取ります。デバイス側でポートを開ける必要はなく、Gately はデバイスのログイン情報を保存しません。

  • エージェントが実行するのはシャットダウン、再起動、スリープの 3 つの固定操作だけです。API POST /api/wol/devices/{key}/shutdown では {"action": "reboot"}、{"action": "sleep"} で再起動、スリープを指定できます;
  • 指示は送信後 10 秒間だけ有効です。エージェントが先に確認し、Gately の応答を受けてから実行します。エージェントがオフラインの場合はすぐにエラーになり、次回接続時まで保留されることはありません;
  • インストールコマンドはまずスクリプトの SHA-256 を検証し、一致しなければ中止します。認証情報はリクエスト本文と環境変数で渡され、URL やコマンドライン引数には現れません;
  • デバイスカードにエージェントのオンライン状態と、報告されたホスト名、OS、送信元アドレスを表示します。認証情報を「再生成」すると古いエージェントはすぐに切断されます。

Home Assistant やスマートプラグなど HTTP API を持つサービス向けに「HTTP リクエスト」方式も追加しました。URL、メソッド、ヘッダー、本文を入力し、ステータスコード 2xx を成功とみなします。詳しくは Wake-on-LAN · エージェント を参照してください。

Web サービス:ログイン済みユーザーを信頼(#81) ​

サイトに「ログイン済みユーザーを信頼」オプションを追加しました。このサイトの Gately 認証を通過した訪問者は WAF を通らず、リクエストは侵入防御の Web パス探索にも数えられません。WAF やおとりパスのルールが身内を誤ってブロックする場合に使います。信頼する認証情報は、Web 認証のセッション、サードパーティーログインの許可リストに個別に記載された ID、共有ユーザーのシングルサインオン、検証済みの基本認証です。github:* のような プロバイダー:* ワイルドカードで許可された ID は信頼しません。ブロック、IP と国のアクセス制御、レート制限はこれまでどおり適用されます。詳しくは WAF ファイアウォール を参照してください。

ユーザー別振り分けの対象サイト種別を拡大(#79) ​

リダイレクト、静的ファイル、ナビゲーションパネル、固定テキストのサイトでも、認証ユーザー別に振り分けられるようになりました。ルールに一致したユーザーはルールのバックエンドへリバースプロキシされ、それ以外の訪問者はこれまでどおりサイト種別に従って処理されます。たとえば管理者は管理画面に入り、他のログインユーザーは案内ページへリダイレクトされます。詳しくは Web サービス · ユーザー別振り分け を参照してください。

管理者のリクエストはサイトの WAF を通らない ​

WAF を有効にしたサイト経由で管理画面にアクセスする場合、このインスタンスの有効な管理者セッションを持つリクエストはサイトの WAF を通りません。ファイルパス、HTML、スクリプトなどを含む設定を保存しても、CRS ルールに 403 で誤ってブロックされなくなりました。読み取り専用アカウント、訪問者、他のインスタンスの管理画面へのリクエストはこれまでどおり検査されます。

修正 ​

  • OpenWrt パッケージ(#82):OpenWrt 25.12 の apk はアーキテクチャの確認に失敗してもファイルを置き換えるため、ファームウェアへのパッケージ組み込み時にオフラインフォルダーへ arm64 パッケージが混ざると、書き込み後にプログラムがクラッシュを繰り返していました。apk が別アーキテクチャのパッケージをインストールした場合は、動作中の gately プログラムを残し、その旨を表示するようになりました。ファームウェアへの組み込みやオフラインインストールでは、フォルダーにデバイスのアーキテクチャに合う gately パッケージだけを置いてください。詳しくは インストールとデプロイ · OpenWrt を参照してください。

その他の改善 ​

  • API ドキュメントにログイン不要のモジュールエンドポイント(Wake-on-LAN エージェントのポーリング、確認、スクリプトのダウンロードなど)を掲載し、モジュール独自の認証情報を使うことを明記しました。ポートノッキングのフィールドも追加しました。

アップグレードの注意 ​

  • Docker は新しいイメージを pull してコンテナーを作り直してください。OpenWrt は新しい .apk / .ipk を上書きインストールし、LuCI ページが必要な場合は同じバージョンの luci-app-gately も導入してください。fnOS はアプリセンターで新しい .fpk を手動でインストールしてください。その他の環境は「システム設定」からオンラインでアップグレードできます。
  • ポートノッキングのファイアウォールによるブロックには root または CAP_NET_ADMIN が必要です。Docker では host ネットワークと cap_add: NET_ADMIN を使ってください。

Apache-2.0 ライセンスで公開されています。