Como se pode desbloquear um sistema Ubuntu 11.10 totalmente criptografado através do SSH na inicialização? O

8

Nas versões anteriores do Ubuntu e nas versões atuais do Debian, você pode desbloquear um sistema totalmente criptografado (usando dmcrypt e LUKS) no momento da inicialização via SSH.

Foi tão fácil quanto:

  1. Instalar o sistema criptografado usando o disco do instalador alternativo do Ubuntu ou o disco normal do instalador do Debian e escolhendo criptografar o sistema.
  2. Após a instalação do sistema, adicione os pacotes dropbear e busybox.
  3. Atualizando o initram-fs para autorizar sua chave ssh.

No momento da inicialização, você só precisa fazer ssh na máquina e fazer:

echo -ne "keyphrase" > /lib/cryptsetup/passfifo

A máquina então desbloqueia e inicializa o sistema criptografado.

Usando exatamente os mesmos passos no Ubuntu 11.10, posso ssh para a máquina, mas /lib/cryptsetup/passfifo não existe.

Parece não haver maneira de desbloquear o sistema por ssh. Não tenho certeza de onde procurar para ver se essa funcionalidade foi alterada ou se foi removida.

    
por Jeff 15.10.2011 / 13:19

2 respostas

4

Apenas fiz algumas pesquisas e parece que o plymouth fica no caminho. Se plymouth está lá, então na inicialização, o cryptsetup pedirá à plymouth a senha e isso significa que ele não está usando o passfifo.

A melhor solução parece ser colocar o script a seguir no diretório /usr/share/initramfs-tools/hooks/ . Depois de colocá-lo, você pode usar chmod +x e, em seguida, update-initramfs -u . Você deve então poder usar o comando unlock (que é criado pelo script abaixo).

Isso depende de você usar uma chave ssh para fazer login. Se você quiser usar uma senha, então você precisa colocar SSHUSERPASS=<username> em /etc/initramfs-tools/initramfs.conf

#!/bin/sh

PREREQ="dropbear"

prereqs() {
    echo "$PREREQ"
}

case "" in
    prereqs)
        prereqs
        exit 0
    ;;
esac

. "${CONFDIR}/initramfs.conf"
. /usr/share/initramfs-tools/hook-functions

if [ "${DROPBEAR}" != "n" ] && [ -r "/etc/crypttab" ] ; then
    cat > "${DESTDIR}/bin/unlock" <<-EOF
        #!/bin/sh
        if PATH=/lib/unlock:/bin:/sbin /scripts/local-top/cryptroot
        then
            /sbin/pkill cryptroot
            /sbin/pkill -f "plymouth ask-for-pass"
            /sbin/pkill cryptsetup
            exit 0
        fi
        exit 1
    EOF
    chmod 755 "${DESTDIR}/bin/unlock"

    mkdir -p "${DESTDIR}/lib/unlock"
    cat > "${DESTDIR}/lib/unlock/plymouth" <<-EOF
        #!/bin/sh
        [ "$1" == "--ping" ] && exit 1
        /bin/plymouth "$@"
    EOF
    chmod 755 "${DESTDIR}/lib/unlock/plymouth"

    # Enable password login
    if [ -n "$SSHUSERPASS" ]
    then
        sed -n "s/^${SSHUSERPASS}:/root:/p" /etc/shadow > "${DESTDIR}/etc/shadow"
        chmod 640 "${DESTDIR}/etc/shadow"
    fi
fi

Você pode ler mais em esta postagem nos ubuntuforums , este bug da barra de lançamento e o post alemão eu peguei a maior parte disso .

    
por Hamish Downer 20.11.2011 / 18:52
0

até que o este bug seja resolvido, você pode tentar primeiro eliminar o plymouth. Infelizmente, não há maneira fácil de determinar o PID de plymouthd. Mas plymouth sabe como se sair :-) Então, o seguinte deve ser suficiente.

plymouth --quit; echo -ne "keyphrase" > /lib/cryptsetup/passfifo

    
por Frederick Nord 09.04.2015 / 08:57