Red Hat Training

A Red Hat training course is available for RHEL 8

14.6. USB デバイス用に構造化されたカスタムポリシーの作成

カスタム USBGuard ポリシーは、/etc/usbguard/rules.d/ ディレクトリー内の複数の .conf ファイルで整理できます。次に、usbguard-daemon は、メインの rules.conf ファイルを、ディレクトリー内の .conf ファイルをアルファベット順で組み合わせます。

前提条件

  • usbguard サービスがインストールされており、実行している。

手順

  1. 現在接続している USB デバイスを許可するポリシーを作成し、生成されたルールを、新しい .conf ファイル (例: policy.conf) ファイルに保存します。

    # usbguard generate-policy --no-hashes > ./policy.conf

    --no-hashes オプションは、デバイスのハッシュ属性を生成しません。設定のハッシュ属性は永続的ではない可能性があるため、回避してください。

  2. 任意のテキストエディターで rules.conf ファイルを編集します。次に例を示します。

    # vi ./policy.conf
    ...
    allow id 04f2:0833 serial "" name "USB Keyboard" via-port "7-2" with-interface { 03:01:01 03:00:00 } with-connect-type "unknown"
    ...
  3. 選択した行を別の .conf ファイルに移動します。

    注記

    ファイル名の先頭にある 2 つの数字は、デーモンが設定ファイルを読み込む順序を指定します。

    たとえば、キーボードのルールを新規 .conf ファイルにコピーします。

    # grep "USB Keyboard" ./policy.conf > ./10keyboards.conf
  4. 新しいポリシーを /etc/usbguard/rules.d/ ディレクトリーにインストールします。

    # install -m 0600 -o root -g root 10keyboards.conf /etc/usbguard/rules.d/10keyboards.conf
  5. 残りの行をメインの rules.conf ファイルに移動します。

    # grep -v "USB Keyboard" ./policy.conf > ./rules.conf
  6. 残りのルールをインストールします。

    # install -m 0600 -o root -g root rules.conf /etc/usbguard/rules.conf
  7. usbguard デーモンを再起動して、変更を適用します。

    # systemctl restart usbguard

検証

  1. アクティブな USBGuard ルールをすべて表示します。

    # usbguard list-rules
    ...
    15: allow id 04f2:0833 serial "" name "USB Keyboard" hash "kxM/iddRe/WSCocgiuQlVs6Dn0VEza7KiHoDeTz0fyg=" parent-hash "2i6ZBJfTl5BakXF7Gba84/Cp1gslnNc1DM6vWQpie3s=" via-port "7-2" with-interface { 03:01:01 03:00:00 } with-connect-type "unknown"
    ...
  2. rules.conf ファイルと、/etc/usbguard/rules.d/ ディレクトリー内の .conf ファイルの内容をすべて表示します。

    # cat /etc/usbguard/rules.conf /etc/usbguard/rules.d/*.conf
  3. アクティブなルールに、ファイルのすべてのルールが正しく、正しい順序で含まれていることを確認します。

関連情報

  • usbguard-rules.conf(5) man ページ