13.6. USB デバイス用に構造化されたカスタムポリシーの作成
カスタム USBGuard ポリシーは、/etc/usbguard/rules.d/
ディレクトリー内の複数の .conf
ファイルで整理できます。次に、usbguard-daemon
は、メインの rules.conf
ファイルを、ディレクトリー内の .conf
ファイルをアルファベット順で組み合わせます。
前提条件
-
usbguard
サービスがインストールされており、実行している。
手順
現在接続している USB デバイスを許可するポリシーを作成し、生成されたルールを、新しい
.conf
ファイル (例:policy.conf
) ファイルに保存します。# usbguard generate-policy --no-hashes > ./policy.conf
--no-hashes
オプションは、デバイスのハッシュ属性を生成しません。設定のハッシュ属性は永続的ではない可能性があるため、回避してください。任意のテキストエディターで
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" ...
選択した行を別の
.conf
ファイルに移動します。注記ファイル名の先頭にある 2 つの数字は、デーモンが設定ファイルを読み込む順序を指定します。
たとえば、キーボードのルールを新規
.conf
ファイルにコピーします。# grep "USB Keyboard" ./policy.conf > ./10keyboards.conf
新しいポリシーを
/etc/usbguard/rules.d/
ディレクトリーにインストールします。# install -m 0600 -o root -g root 10keyboards.conf /etc/usbguard/rules.d/10keyboards.conf
残りの行をメインの
rules.conf
ファイルに移動します。# grep -v "USB Keyboard" ./policy.conf > ./rules.conf
残りのルールをインストールします。
# install -m 0600 -o root -g root rules.conf /etc/usbguard/rules.conf
usbguard
デーモンを再起動して、変更を適用します。# systemctl restart usbguard
検証
アクティブな 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" ...
rules.conf
ファイルと、/etc/usbguard/rules.d/
ディレクトリー内の.conf
ファイルの内容をすべて表示します。# cat /etc/usbguard/rules.conf /etc/usbguard/rules.d/*.conf
- アクティブなルールに、ファイルのすべてのルールが正しく、正しい順序で含まれていることを確認します。
関連情報
-
システム上の
usbguard-rules.conf(5)
man ページ