はじめに
ラズパイなどエッジデバイスを工場内IoT等でセキュアに使用したい場合、物理的なUSBアクセス遮断以外に簡単なアクセス制限をする方法を試したので記録しておく
目次
特定のUSB機器のプロダクトIDを探します
以下のコマンドでUSB機器のプロダクトIDを取得
lsusb
以下のようにレスポンスがあります
例
Bus 001 Device 022: ID 10c4:ea60 Cygnal Integrated Products, Inc.
Bus 002 Device 004: ID 05e3:0626 Genesys Logic, INC
出力の意味
BusNo __ DeviceNo __ : ID vendorID:productID
vendorIDをチェックして、このVendorIDに対して次の項目で名前を付けます
特定のUSB機器に名前を付ける
echo 'KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0666", GROUP:="dialout", SYMLINK+="ydlidar"' >/etc/udev/rules.d/ydlidar.rules
service udev reload
service udev restart
ここでは、10c4:ea60のUSB機器に”ydlidar”という名前を付けています。
キーボード等、無効化から除外したい機器があれば登録します。
USB接続無効化
/lib/udev/rules.d/50-udev-default.rulesに記載されている接続時のルールを書き換える
sudo vi /lib/udev/rules.d/50-udev-default.rules
KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout"
KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout", MODE="000"
service udev reload
service udev restart
MODE="000"で実行・書き込み・読み込みを許可しないに変更
| シンボル | 数値 | パーミッションの内容 |
|---|---|---|
| rwx | 7 | 読み込み・書き込み・実行 を許可 |
| rw- | 6 | 読み込み・書き込み を許可 |
| r-x | 5 | 読み込み・実行 を許可 |
| r- | 4 | 読み込み を許可 |
| -wx | 3 | 書き込み・実行を許可 |
| -w- | 2 | 書き込みを許可 |
| -x | 1 | 実行を許可 |
| - | 0 | 許可なし |
| 左から1桁目 | 左から2桁目 | 左から3桁目 |
|---|---|---|
| オーナー | グループ | その他 |
注:パーミッション設定後にキーボードの操作をする場合はSSH経由でお願いします。
参考文献