web-dev-qa-db-ja.com

DebianでのUSBアクセスを制限する

Debian(Linux)システムでUSBポートのアクセス許可を制限することは可能ですか?

たとえば :

  • あらゆる種類の素材を差し込む機能を抑制する例外 USBキー?
  • 読み取り USBキーが書き込みではないに機能を与える?
  • USBキーがシステムに接続されたときにアラート信号を送信しますか?
7
JeanJouX

Linuxカーネルは、新しいデバイスを検出すると、 dev にメッセージを送信します。 udevの仕事は、ユーザーの土地が新しいデバイスにアクセスできるようにすることです。多くのデバイスでは、udevが行う必要があるのは/devにエントリを作成することだけです。ブロックデバイスの場合、これによりデバイスをマウントできます。シリアルポートやサウンドポートなどのキャラクターデバイスの場合、これにより専用アプリケーションでデバイスを使用できます。ネットワークインターフェースの場合、udevは名前を設定できます。キーボードの場合、udevは追加のスキャンコードを定義することもあります。 udevがデバイスエントリを作成しない場合、これにより実質的にデバイスが未使用になります。

Udevは rules ;によって制御できます。デフォルトのルールは/lib/udev/udev.dにあり、管理者は/etc/udev/udev.dのファイルを介してオーバーライドできます。各udevルールには、VARIABLE==VALUEの形式の条件があります。これらのルールがすべて満たされている場合、ルールが適用されます。 udevadm info -a -n /dev/…またはudevadm info -a /sys/…を実行すると、デバイスに適用される条件を確認できます。

私の知る限り、デバイスを無視する一般的なメカニズムはありません。ネットワークインターフェイス(/devの下のデバイスノードを使用しない)でない場合は、アクセス許可を与えないことで、効果的に使用できなくすることができます。

[〜#〜]条件[〜#〜]、MODE = "000"

USBデバイスには 認証メカニズムauthorized属性が0(false)に設定されている場合、システムはデバイスにアクセスしません。このルールでは、USBストレージデバイス以外のUSBデバイスは使用できません。

ACTION=="add", SUSYSTEMS=="usb", DRIVERS!="usb-storage", ATTR{authorized}="0"

/etc/rc.localのこのスニペットですべてのUSBホストポートを無効にすることにより、 起動シーケンス後にUSBデバイスを無効にする することもできます。

for x in /sys/bus/usb/devices/usb*; do
  echo 0 >"$x/authorized_default"
done

個々のデバイスは、authorized属性を1に設定するudevルールを介して(または手動で)有効にできます。

ストレージデバイスを読み取り専用にする場合は、そのro属性を1に設定します。

コマンドを実行する場合は、udevルールでRUNキーを使用します(コマンドへのフルパスが必要であり、使用可能なエスケープシーケンスと環境については manual を参照してください)。変数)。そのコマンドでGUIにアクセスする場合は、 リモートXディスプレイでウィンドウを開く(「ディスプレイを開けない」理由)? を参照してください。

いくつかのudevルールを設定する必要があります。

要件の手順:

  1. 許可されたデバイスをホワイトリストに登録する
  2. 他のすべてに制限的な権利/所有権を適用する
  3. ルールファイルへの挿入によってもトリガーされるようにスクリプトを構成します。

関連するスレッドは次のとおりです。 https://askubuntu.com/questions/15570/configure-udev-to-change-permissions-on-usb-hid-device

それは説明を助け、さらなる指針を提供するはずです。行き詰まった場合は、質問に次の障害を追加してください。

1
Alex Stragies