Como faço para montar automaticamente uma unidade flash USB criptografada simples no roteador OpenWRT?

1

Acabei de criptografar meu disco rígido externo usando um arquivo de chave e o montei no meu roteador . O problema é que, a cada reinicialização, eu preciso recriar manualmente o mapeamento e montá-lo novamente.

A documentação do OpenWRT parece ter muito a dizer sobre a montagem automática de discos rígidos normais , mas não o faço. Não há muito a ver com a montagem automática de discos rígidos com criptografia simples. O Google sugere usar /etc/crypttab , que parece não existir no meu sistema OpenWRT.

Como faço para montar automaticamente meu externo com criptografia simples?

    
por Noob Saibot 28.10.2015 / 15:27

1 resposta

1

Excluí a resposta anterior porque era inadequada.

Aviso: eu tentei esta solução em uma imagem de openbox virtual (ATTITUDE ADJUSTMENT (12.9, r36088)), pode ser um pouco diferente no roteador.

Eu assumo que o arquivo de chave é / root / keyfile e que a cifra usada é aes-xts-plain. Você precisa alterar os valores de acordo com sua configuração.

Se você quiser, posso dizer como ativar as extensões luks no openwrt.

Supondo que seu sistema já suporta cryptsetup e todas as várias cifras, você tem que atuar no nível do hotplug, porque a implementação do cryptosetup do openwrt não parece suportar o / etc / crypttab (provavelmente deve ser recompilado a imagem de inicialização )

instale suporte para hotplug

root@OpenWrt:~# opkg install block-mount

abra o /etc/hotplug.d/usb/10-usb, no meu sistema o arquivo se parece com isto:

#!/bin/sh

# Copyright (C) 2009 OpenWrt.org


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

Eu editei o arquivo:

#!/bin/sh

# Copyright (C) 2009 OpenWrt.org


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

de um terminal conectado ao roteador, antes de inserir o disco, siga os registros:

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

Conecte o disco USB, você verá uma linha como:

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

Anote a sequência depois de PRD: ela é usada para identificar seu disco para descriptografar

Agora, o mecanismo hotplug primeiro chama os scripts localizados em /etc/hotplug.d/usb e depois o script 40-mount em /etc/hotplug.d/block. Os dados do dispositivo e o ponto de montagem são passados por meio de variáveis de ambiente, mas não consegui entender como é possível se comunicar com o script de 40 montagens que queremos montar a partição criptografada usando variáveis env. Então eu optei por um menos elegante, mas ainda funcional. Eu modifiquei o arquivo /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    

Quando o disco criptografado é inserido, o arquivo / tmp / cryp é criado, esse arquivo é excluído quando o disco é removido. Então eu editei o arquivo /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

E:

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

Quando o disco é inserido e seu PRODID é reconhecido, antes da montagem, o volume criptografado é aberto e mapeado, o nome do dispositivo e o ponto de montagem são alterados. O sono é necessário para aguardar processo cryptosetup está concluído. Quando você desmonta o volume, o mapa em / dev / mapper é removido.

Espero que isso funcione para você

    
por 30.10.2015 / 09:44