4 MFA
概要
Zabbixへのサインインには、多要素認証(MFA)を使用でき、ユーザー名とパスワードだけでなく、追加のセキュリティ層を提供します。
MFAを使用する場合、ユーザーはZabbixに存在し、ログイン時にZabbixの認証情報を提供し、さらに通常はユーザーの携帯電話の認証アプリによって生成されたコードなど、他の手段で本人確認を行う必要があります。
複数のMFA方式が利用可能であり、ユーザーは自分のセキュリティ要件や好みに最適なオプションを選択できます。 これらの方式には、時刻ベースのワンタイムパスワード(TOTP)とDuo Universal Promptがあります。
設定

設定パラメータ:
| パラメータ | 説明 |
|---|---|
| 多要素認証を有効にする | チェックボックスをオンにすると多要素認証が有効になります。 |
| メソッド | 追加をクリックしてMFAメソッドを設定します(下記のメソッド設定を参照)。 |
メソッドの設定

メソッド設定パラメータ:
| パラメータ | 説明 |
|---|---|
| タイプ | MFAメソッドのタイプを選択: TOTP - 認証アプリを使用して時限ワンタイムパスワードを生成します。 Duo Universal Prompt - Duo認証サービスを使用して多要素認証を提供します。 |
| 名前 | 認証アプリで全てのMFAユーザーにアカウント名として表示される名前を入力します(例:"Zabbix")。 |
| ハッシュ関数 | TOTPコードを生成するためのハッシュ関数(SHA-1、SHA-256、またはSHA-512)を選択します。 このパラメータは、MFAメソッドタイプが「TOTP」に設定されている場合に利用できます。 SHA-256またはSHA-512を選択すると、多くのアプリケーションがこれらの関数をサポートしていないため、互換性が大幅に制限される可能性があることに注意してください。 |
| コード長 | 認証コードの長さ(6または8)を選択します。 このパラメータは、MFAメソッドタイプが「TOTP」に設定されている場合に利用できます。 |
| APIホスト名 | Duo認証サービスから提供されたAPIホスト名を入力します。 このパラメータは、MFAメソッドタイプが「Duo Universal Prompt」に設定されている場合に利用できます。 |
| クライアントID | Duo認証サービスから提供されたクライアントIDを入力します。 このパラメータは、MFAメソッドタイプが「Duo Universal Prompt」に設定されている場合に利用できます。 |
| クライアントシークレット | Duo認証サービスから提供されたクライアントシークレットを入力します。 このパラメータは、MFAメソッドタイプが「Duo Universal Prompt」に設定されている場合に利用できます。 |
設定例
このセクションでは、Time-Based One-Time Password (TOTP) および Duo Universal Prompt を使用したMFAの設定例を示します。
TOTP
TOTPの場合、ユーザーは認証アプリ(例:Google Authenticatorアプリ)を使用して本人確認を行う必要があります。
1. ZabbixのMFA設定(ユーザー → 認証)に移動し、多要素認証を有効にします。
2. 次の設定で新しいMFAメソッドを追加します。
- タイプ: TOTP
- 名前: Zabbix TOTP
- ハッシュ関数: SHA-1
- コード長: 6
3. 追加ボタンをクリックし、続いて更新ボタンをクリックします。
4. ユーザー → ユーザーグループに移動し、次の設定で新しいユーザーグループを作成します。
- グループ名: TOTP group
- ユーザー: Admin
- 多要素認証: デフォルト(またはデフォルトに設定されていない場合は「Zabbix TOTP」)
5. Zabbixからログアウトし、再度認証情報を使用してログインします。 ログインに成功すると、MFAへの登録を求められ、QRコードとシークレットキーが表示されます。

6. QRコードをスキャンするか、シークレットキーをGoogle Authenticatorアプリに入力します。 アプリが認証コードを生成するので、それを入力してログインプロセスを完了します。
7. 次回以降のログイン時には、Google Authenticatorアプリから認証コードを取得し、ログイン時に入力します。
Duo Universal Prompt
Duo Universal Prompt では、ユーザーは Duo Mobile 認証アプリを使用して本人確認を行う必要があります。
Duo Universal Prompt の MFA メソッドを使用するには、php-curl 拡張のインストール、HTTPS 経由での Zabbix へのアクセス、および Duo サーバーへのアウトバウンド接続の許可が必要です。 さらに、Webサーバーで Content Security Policy (CSP) を有効にしている場合 は、仮想ホストの設定ファイル内の CSP ディレクティブに "duo.com" を追加してください。
1. Duo Signup で無料の Duo 管理者アカウントに登録します。
2. Duo 管理パネルを開き、Applications → Protect an Application に移動し、Web SDK アプリケーションを検索して、Protect をクリックします。
3. Zabbix で MFA メソッドを設定するために必要な認証情報(Client ID、Client secret、API hostname)を控えます。
4. Zabbix の Users → Authentication で MFA 設定に移動し、多要素認証を有効にします。
5. 次の設定で新しい MFA method を追加します。
- Type: Duo Universal Prompt
- Name: Zabbix Duo
- API hostname: (Duo の API hostname を使用)
- Client ID: (Duo の Client ID を使用)
- Client secret: (Duo の Client secret を使用)
6. Add ボタンをクリックし、次に Update ボタンをクリックします。
7. Users → User groups に移動し、次の configuration で新しいユーザーグループを作成します。
- Group name: Duo group
- Users: Admin
- Multi-factor authentication: Default(または、デフォルトに設定されていない場合は "Zabbix Duo")
8. Zabbix からログアウトし、資格情報を使用して再度ログインします。 ログインに成功すると、MFA の登録を求められ、Duo にリダイレクトされます。 Duo のセットアップを完了し、スマートフォンの Duo アプリでユーザーを確認してログインします。
9. 以降のログインでは、Duo アプリで提供される適切な MFA メソッド(確認コードの取得、プッシュ通知への応答、ハードキーの使用など)を使用し、ログイン時に必要な情報を入力します。