Gately v0.6.1.1 リリース
2026年10月30日
v0.6.1.1 をダウンロード · GitHub Release
Web パス探索のブロック
侵入防御のルールソースに「Web パス探索」が加わりました。ログを読まずに、Web サービスが処理したリクエストを直接数えます。
- 1 つ以上のリスナーに限定でき、空欄はすべてを意味します。パスルールはワイルドカード(
*は/にも一致、大文字小文字を区別しない)と~で始まる正規表現に対応し、//.envや/a/../.envのような書き方も正規化後のパスで一致します。 - 既定では 404 と 444 だけを数えるため、存在するページへのリクエストは数えません。「任意のステータスコード」(パスルールと併用)や「未知ドメインのみ」に切り替えることもできます。
- 3 つのテンプレートを内蔵:Web おとりパス(
/.env、/.git、wp-login.php、phpinfo.php、phpMyAdmin など、1 回でブロック)、未知ドメインのスキャン(1 分以内に 5 回)、Web 404 探索(1 分以内に 10 回)。 - 回数、時間枠、ブロック期間、ホワイトリスト、段階的ブロック、nftables 同期は他のルールと共通で、どのリスナーで発動したブロックもすべてのサービスに適用されます。
Web サービスのリスナーカードの「探索ブロック」は、そのリスナーを選んだ状態でおとりパスのテンプレートを適用します。ルール編集時にリクエストパスを貼り付けてテストできます。詳しくは 侵入防御 · Web パス探索 を参照してください。
認証ユーザーページ
サイドバーの「Web」グループに「認証ユーザー」ページが加わりました。共有ユーザー、シングルサインオンのドメイン、パスワードのセルフ変更、OIDC ID プロバイダーをまとめて管理し、サイトをリスナーごとに一覧表示して、絞り込みや全選択で共有ユーザーを使うサイトを一括設定できます。認証が無効のサイトをチェックすると Web 認証も有効になります。共有ユーザーだけで認証しているサイトは、誤って公開されないようここではチェックを外せません。フォワード認証を使うサイトはチェックできません。すべての変更は「保存」でまとめて反映され、どれか一つでも検証に失敗すると何も保存されません。API は GET/PUT /api/webservice/users です。
共有ユーザーによるパスワードのセルフ変更
「認証ユーザー」ページで「パスワードのセルフ変更」をオンにすると、共有ユーザー(内蔵 OIDC でアプリにログインするユーザーを含む)は /__gately_auth/password(発行者ドメインでは /__gately_oidc/password)で現在のパスワードとワンタイムコードを入力してパスワードを変更でき、各サイトのセッションはすぐに無効になります。ファイルサービスの共有ユーザーは「ファイル共有ユーザー」ページに専用のスイッチがあり、同じページで変更します。平文または bcrypt の保存形式はそのままで、WebDAV、FTP、SMB はすぐに新しいパスワードを使います。失敗回数はログインと同じレート制限と自動ブロックの対象で、同じアカウントは 1 分に 1 回だけ変更できます。詳しくは Web サービス · パスワードのセルフ変更 を参照してください。
拒否時に接続を切断
サイトの「セキュリティ」タブに「拒否時の動作」が加わりました。「接続を切断」を選ぶと、ブロック、IP アクセス制御(パスルールを含む)、国フィルターで拒否されたリクエストには何も返さず、アクセスログには 444 として記録されます。ホワイトリストと組み合わせると「自分の IP は通常どおりアクセス、それ以外はすべて切断」にできます。レート制限と WAF のブロックは変わりません。あわせて、切断でできる範囲をドキュメントに明記しました:TCP と TLS のハンドシェイクは完了済みで、HTTP/2 と HTTP/3 ではそのリクエストだけをリセットします。スキャナーからポートを隠すには侵入防御のブロックが必要です。
Cloudflare トンネルのルート
トークン方式のトンネルに任意の Cloudflare API トークンを入力すると、カードの「ルート」からトンネルのリモート設定を直接読み書きできます。ホスト名、パス正規表現、サービスに加え、「オリジン証明書を検証しない」とオリジンへの Host ヘッダーを設定でき、実行中の cloudflared は再起動なしで反映します。保存時に設定のバージョンを照合し、他の場所での変更を上書きしません。ホスト名にプロキシ有効の CNAME レコードを作成でき、既存のレコードはそのまま残して一覧表示します。詳しくは Cloudflare トンネル · ルート を参照してください。
ログの「除外」フィルター
ログビューアーに「除外」入力欄が加わりました。いずれかの語を含むログを非表示にし、キーワードと同時に適用されます。ログ API には対応する exclude パラメーターが加わりました。
修正と改善
- おとりポートとスキャン検出で永久ブロックを選ぶと保存に失敗する問題(#41)。
- ルート:サービスアドレス末尾の単独の
/を自動で取り除きます(cloudflared はパス付きのサービスを拒否します)。ローカル設定ファイルで管理されるトンネルは保存前に確認します。トンネルを指していてもプロキシが無効の CNAME は競合として報告します。ドメインはトンネルが属するアカウント内だけで検索します。 - Web サービスの全体設定ダイアログは共有ユーザーと OIDC の設定を送信しなくなり、「認証ユーザー」ページで保存したばかりの変更を上書きしません。
- パス探索は訪問者がリクエストした元のパスで照合し(リライトルールは集計に影響しません)、アクセスログにも元のパスを記録します。非常に長いパスは先頭と末尾だけで照合し、ブロック理由では改行などの制御文字をエスケープします。
- パスワードのセルフ変更の保存に失敗した場合、画面には共通のメッセージだけを表示し、詳しい理由はログに記録します。
- API ドキュメントの一部の複数段落の説明で、中国語と翻訳が混在していた問題。
アップグレードの注意
- Docker は新しいイメージを pull してコンテナーを作り直してください。OpenWrt は新しい
.apk/.ipkを上書きインストールしてください。fnOS はアプリセンターで新しい.fpkを手動でインストールしてください。その他の環境は「システム設定」からオンラインでアップグレードできます。 - 「任意のステータスコード」でパスルールがなく「未知ドメインのみ」もオフの保存済みパス探索ルールは、次に編集して保存するときに拒否されます。パスルールを追加してください。