web-dev-qa-db-fra.com

Dropbear-initramfs sur Ubuntu 18.04

J'essaie de configurer un serveur dédié avec un lecteur chiffré. J'ai trouvé de l'aide en ligne pour le mettre en marche, mais j'ai quelques problèmes à obtenir que dropbear-initramfs démarre correctement. (tutoriel dans ce sens https://hamy.io/post/0005/remote-unlocking-of-luks-encrypted-root-in-ubuntu-debian/ )

Donc, j’installe le paquet dropbear-initramfs et j’obtiens une erreur qui dit que les clés manquent et que cela ne fonctionnera pas. J'ajoute les allowed_keys que je configure pour exécuter dropbear sur un autre port et je mets à jour initramfs mais au démarrage, dropbear ne démarre pas et on me demande simplement le nom d'utilisateur/mot de passe normal. J'ai essayé plusieurs choses pour le rendre opérationnel, j'ai essayé de dpkg reconfigurer le paquet une fois les clés configurées correctement et je ne reçois plus de message d'erreur, mais dropbear ne démarre toujours pas.

Si quelqu'un a un pointeur qui serait très apprécié :)

Meilleures salutations

P.S: J'ai jeté un œil aux questions déjà ouvertes, mais la majorité d’entre elles sont maintenant assez anciennes et le dropbear + initramfs est supposé être plus facile depuis Ubuntu 16.04 (avec le paquet dropbear-initramfs).

2
Adraen

Vous presque avez fait ce qu'il fallait faire ...

La version courte:

TL; DR

En raison d'un problème de sécurité, les authorised_keys, contenant la clé publique de votre client, ont été supprimés ...

  1. Dropbear et openssh sont tous deux des serveurs SSH, mais ils ne partagent pas le même format de clés, bien qu'ils partagent le même principe de clés privées-publiques:

    • Format DER pour dropbear
    • Format PEM pour openssh pour les clés privées
    • Un fichier authorized_keys du côté serveur,
    • Un fichier known_hosts du côté client.

    C'est pourquoi, pour vous connecter à un serveur Dropbear, vous pouvez utiliser ssh et dbclient, mais /usr/lib/dropbear/dropbearconvertdoit être utilisé pour convertir les clés publiques afin de garantir ssh est compatible avec dropbear ou pour rendre dbclient compatible avec sshd.

  2. dropbear est beaucoup plus petit que sshd et même s’il est plus élémentaire, il est bon d’avoir un serveur à clé publique SSH disponible au tout début du processus de démarrage Linux, en particulier lorsque vous utilisez un chargeur de démarrage tel que PXE et/ou iPXE.
    Pour ce faire, dropbear doit être intégré au système de fichiers init (image initrd).
    Le paquet Ubuntu dropbear-initramfs doit être installé (j'utilise la version 2017.75-3build1 sur Ubuntu 18.04).
    Tous les paramètres de dreopbear se trouvent dans le dossier /etc/dropbear-initramfs/, y compris le fichier de configuration (config), les clés privées du serveur, rsa, dss, ecdsa (dropbear_*_Host_key) et les données publiques du client. les clés acceptées (authorized_keys) doivent être placées ici dans le bon format Dropbear.
    Ensuite, pour mettre à jour votre fichier image initrd actuel dans le répertoire /boot/, vous devez lancer:

    Sudo update-initramfs -u
    

    Ce paquet est livré avec des scripts pour construire des images initrd dans /usr/share/initramfs-tools/hooks/dropbear, et des scripts à exécuter dans les premières étapes du processus de démarrage dans /usr/share/initramfs-tools/scripts/init-premount/dropbear, et ensuite seulement ces derniers scripts sont intégrés à la initrd images.

  3. Certaines distributions suppriment authorized_keys dans certaines conditions pour empêcher les connexions ssh à un stade précoce. Pour contourner ce problème, vous devez le vérifier et résoudre les problèmes suivants:

    $ cd /usr/share/initramfs-tools/scripts/
    $ grep -R authorized_keys *
    init-bottom/dropbear:# delete authorized_keys(5) file to forbid new SSH sessions
    init-bottom/dropbear:#rm -f ~root/.ssh/authorized_keys
    init-bottom/dropbear:    # just kill this script), so deleting root's authorized_keys(5) file
    

    ... où nous limitons la suppression de authorized_keys pour pouvoir se connecter à une machine lorsque quelque chose ne va pas dans l'étape initramfs.

1
Paul-et-Mickey