Banned Clients(禁止されたクライアント)
EMQXでは、特定のクライアントからのアクセスを禁止する機能を提供しています。クライアントは、クライアントID、ユーザー名、または送信元IPアドレスを使って禁止リストに追加できます。
禁止は以下のルールを通じて適用することも可能です。
クライアント識別子やユーザー名にマッチする正規表現パターン。
TIP
正規表現による禁止は、すでに接続されているクライアントには適用されません。
送信元IPアドレスにマッチするCIDR範囲。
TIP
大量のマッチングルールがある場合、パフォーマンスに悪影響を及ぼす可能性があります。これは、直接禁止とは異なり、接続を試みるクライアントごとにすべてのルールをチェックするためです。
本ページでは、EMQXダッシュボードを使った禁止クライアントの管理に焦点を当てています。禁止機能はREST APIからも利用可能です。
| API | 機能 |
|---|---|
| DEL /banned | すべての禁止データをクリアします。 |
| GET /banned | 現在禁止されているクライアントID、ユーザー名、IPアドレスの一覧を取得します。 |
| POST /banned | クライアントID、ユーザー名、またはIPアドレスをブラックリストに追加します。 |
| DEL /banned/{as}/{who} | クライアントID、ユーザー名、またはIPアドレスをブラックリストから削除します。 |
フラッピング検出は、クライアントID、ユーザー名、または送信元IPアドレスが設定された接続閾値に達した場合に、自動的に直接禁止エントリを作成します。これらのエントリはBanned ClientsページおよびGET /bannedのレスポンスに表示されます。REST APIのレスポンスでは、asが禁止タイプ(clientid、username、peerhost)を示し、byはflapping detectorとなります。エントリは有効期限前に削除可能です。詳細はFlapping Detectをご覧ください。
TIP
禁止リストは少数のクライアント禁止にのみ適用されます。多数のクライアントの認証管理が必要な場合は、認証機能を利用してください。
禁止クライアントの作成
- EMQXダッシュボードにアクセスし、左側のナビゲーションメニューから Access Control -> Banned Clients をクリックしてBanned Clientsページに入ります。
- 右上の Create をクリックします。Createダイアログで禁止するクライアントを指定します。
- Banned Object:ドロップダウンリストからClient ID、Username、IP Address、Client ID Pattern、Username Pattern、またはIP Address Rangeのいずれかを選択し、対応する値を入力します。
- Expire At(任意):時計アイコンをクリックして禁止の有効期限日時を選択します。
- Reason(任意):このクライアントを禁止する理由を入力します。
- Createをクリックして設定を完了します。

禁止クライアントのクリア
Actions列のDeleteボタンをクリックすると、単一の禁止クライアントレコードを削除できます。ページ上のすべてのレコードを一括でクリアしたい場合は、Clear Allボタンをクリックしてください。