完全に暗号化されたUSBフラッシュドライブをOpenWRTルーターに自動的にマウントするにはどうすればよいですか?

完全に暗号化されたUSBフラッシュドライブをOpenWRTルーターに自動的にマウントするにはどうすればよいですか?

キーファイルを使用して外付けハードドライブを暗号化し、次の場所にマウントしました。私のルーター。問題は、再起動するたびにマッピングを手動で再作成して再インストールする必要があることです。

OpenWRTのドキュメントには言葉が多いようです。汎用ハードディスク自動マウントしかし、一般的な暗号化されたハードドライブを自動的にマウントする方法についてはあまり知りません。 Googleは/etc/crypttab私のOpenWRTシステムにないようなこの機能を使用することを提案しています。

プレーンテキストで暗号化された外部デバイスを自動的にインストールする方法は?

答え1

以前の回答が不足して削除しました。

警告:openwrtのvirtualboxイメージ(姿勢調整(12.9、r36088))でこの解決策を試しましたが、ルータでは多少異なる場合があります。

キーファイルは/ root / keyfileで、使用されたパスワードはaes-xts-plainであるとします。設定に応じてこの値を変更する必要があります。

必要に応じて、openwrtでluks拡張を有効にする方法を教えてください。

システムがすでにcryptsetupとすべてのさまざまなパスワードをサポートしていると仮定すると、openwrtのcryptosetup実装が/etc/crypttabをサポートしていないようであるため、ホットプラグレベルでこれを行う必要があります(おそらくブートイメージを再コンパイルする必要があります)

ホットプラグサポートの取り付け

root@OpenWrt:~# opkg install block-mount

私のシステムで、次のような/etc/hotplug.d/usb/10-usbを開きます。

#!/bin/sh

# Copyright (C) 2009 OpenWrt.org


case "$ACTION" in
        add)
                # update LEDs
                ;;                     
        remove)            
                # update LEDs
                ;;           
esac 

ファイルを編集しました。

#!/bin/sh

# Copyright (C) 2009 OpenWrt.org


case "$ACTION" in
        add)
                # update LEDs
                exec logger "PRD:" ${PRODUCT};
                ;;                     
        remove)            
                # update LEDs
                ;;           
esac 

ディスクを挿入する前に、ルータに接続されている端末でログを追跡します。

root@OpenWrt:~# logread -f|grep PRD

USB ディスクを接続すると、次のような行が表示されます。

Oct 29 10:43:48 OpenWrt user.notice root: PRD: 13fe/3600/100

PRDの後の文字列に注意してください。これは、復号化するディスクを識別するために使用されます。

ホットプラグ機構はまず/etc/hotplug.d/usbにあるスクリプトを呼び出し、次に/etc/hotplug.d/blockにある40-mountスクリプトを呼び出します。デバイスとマウントポイントのデータは環境変数を介して渡されますが、環境変数を使用して暗号化されたパーティションをマウントしたい40-mountスクリプトと通信する方法を理解することはできません。だからそれほど優雅ではありませんが、まだ機能的なものを選びました。 /etc/hotplug.d/usb/10-usb ファイルを修正しました。

#!/bin/sh

# Copyright (C) 2009 OpenWrt.org
PRODID="13fe/3600/100"
case "$ACTION" in
    add)
        # update LEDs
        if [ "${PRODUCT}" = "${PRODID}" ];
        then
            touch /tmp/crypt
        fi
        ;;
    remove)
        # update LEDs
                if [ "${PRODUCT}" = "${PRODID}" ];      
                then            
                        rm /tmp/crypt
            fi           

        ;;
esac    

暗号化されたディスクを挿入すると/tmp/crypファイルが作成され、ディスクを取り出すとそのファイルが削除されます。だから/etc/hotplug.d/block/40-mountファイルを編集しました:

case "$ACTION" in
        add)

### AUTO DECRYPT
            if [ -e /tmp/crypt ];
               then
                  /usr/sbin/cryptsetup -c aes-xts-plain create -d /root/keyfile cryptousb /dev/$device;
                  device="mapper/cryptousb"
                  mountpoint="/mnt/cryptousb"
                  sleep 10
            fi
#### END AUTO DECRYPT

そして:

remove)                          
### AUTO DECRYPT               
          if [ -e /tmp/crypt ];
             then           
                /usr/sbin/cryptsetup remove cryptousb;
                device="mapper/cryptousb"
                mountpoint="/mnt/cryptousb"
                sleep 10                 
        rm /tmp/crypt
          fi

#### END AUTO DECRYPT

ディスクを挿入してPRODIDが認識されたら、マウントする前にボリュームを開いてマッピングしてから、デバイス名とマウントポイントを変更してください。パスワード設定プロセスが完了するのを待つには、スリープモードが必要です。ボリュームをアンマウントすると、/dev/mapper のマッピングが削除されます。

これがあなたに役立つことを願っています

関連情報