Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.12.3. ルール言語を使用した独自のポリシーの作成

usbguard デーモンは、一連のルールで定義されたポリシーに基づいて USB デバイスを認証するかどうかを決定します。USB デバイスがシステムに挿入されると、デーモンは既存のルールを順次スキャンして、一致するルールが見つかると(許可)、承認(ブロック)、またはルールターゲットに基づいてデバイスを削除(拒否)するか、削除(拒否)します。一致するルールが見つからない場合、デシジョンは暗黙的なデフォルトターゲットに基づいています。この暗黙的のデフォルトは、ユーザーが決定するまでデバイスをブロックすることです。
ルール言語の文法は以下のとおりです。
rule ::= target device_id device_attributes conditions.

target ::= "allow" | "block" | "reject".

device_id ::= "*:*" | vendor_id ":*" | vendor_id ":" product_id.

device_attributes ::= device_attributes | attribute.
device_attributes ::= .

conditions ::= conditions | condition.
conditions ::= .
ターゲット、デバイスの指定、デバイス属性などのルール言語の詳細は、man ページの usbguard-rules.conf(5) を参照してください。

例4.6 usbguard のポリシーの例

USB マースストレージデバイスとその他のものをすべてブロックする
このポリシーは、大量ストレージデバイスではないデバイスをすべてブロックします。USB フラッシュドライブディスクに非表示のキーボードインターフェースを持つデバイスはブロックされます。マースストレージインターフェースが 1 つあるデバイスのみが、オペレーティングシステムと対話できます。このポリシーは、単一のルールで構成されます。
allow with-interface equals { 08:*:* }
ブロックルールがないため、ブロッキングは暗黙的になります。USBGuard イベントがリッスンしているデスクトップアプレットは、デバイスに対して暗黙的なターゲットが選択された場合に決定を尋ねるため、暗黙的なブロックはデスクトップユーザーに便利です。
特定のポートを介して特定の Yubikey デバイスに接続することを許可
そのポートでそれ以外はすべて拒否します。
allow 1050:0011 name "Yubico Yubikey II" serial "0001234567" via-port "1-2" hash "044b5e168d40ee0245478416caf3d998"
reject via-port "1-2"
疑わしいインターフェースの組み合わせを持つデバイスを拒否
キーボードまたはネットワークインターフェースを実装する USB フラッシュドライブディスクは、非常に補足できます。以下のルールセットは、USB フラッシュドライブディスクを許可するポリシーを形成し、追加のインターフェースと疑わしいインターフェースを持つデバイスを明示的に拒否します。
allow with-interface equals { 08:*:* }
reject with-interface all-of { 08:*:* 03:00:* }
reject with-interface all-of { 08:*:* 03:01:* }
reject with-interface all-of { 08:*:* e0:*:* }
reject with-interface all-of { 08:*:* 02:*:* }
注記
ブラックリスト化は間違ったアプローチであり、デバイスセットをブラックリストに登録して、残りを許可しないでください。上記のポリシーは、ブロックが暗黙的なデフォルトであることを前提としています。「問題のある」として考慮されている一連のデバイスを拒否する方法は、システムの公開をできるだけ多くのデバイスに制限する方法です。
キーボードのみの USB デバイスを許可
以下のルールでは、キーボードインターフェースを持つ USB デバイスがすでに許可されていない場合に限り、キーボードのみの USB デバイスを許可します。
allow with-interface one-of { 03:00:01 03:01:01 } if !allowed-matches(with-interface one-of { 03:00:01 03:01:01 })
usbguard generate-policy コマンドを使用して初期ポリシーの生成後に、/etc/usbguard/rules.conf を編集して USBGuard ポリシールールをカスタマイズします。
~]$ usbguard generate-policy > rules.conf
~]$ vim rules.conf
更新されたポリシーをインストールし、変更を有効にするには、以下のコマンドを使用します。
~]# install -m 0600 -o root -g root rules.conf /etc/usbguard/rules.conf

このページには機械翻訳が使用されている場合があります (詳細はこちら)。