Forum Linux.debian/ubuntu [RÉSOLU] cryptsetup et installation à distance

Posté par .
2
9
déc.
2012

Bonjour,

Quelqu'un a-t-il une expérience de l'installation d'une debian à distance, en particulier impliquant un chiffrement de toutes les partitions, y compris rootfs ?

Comment se pilote l'installation ?
en partant d'un système pré-installé, et une fois connecté via ssh, on utilise debian-installer ?

/usr/share/doc/cryptsetup/README.remote.gz explique comment ça se passe en local pour un système existant, mais j'ai du mal à concevoir l'équivalent à distance pendant l'installation.

merci de vos éclaircissements.

PS: pourquoi chiffrer rootfs ? parce que je sais le faire en local alors pourquoi pas à distance !

  • # Install à distance

    Posté par (page perso) . Évalué à 1.

    Passage en mode expert et en gros après avoir chargé le driver de ta carte réseau et positionné une IP (ou reçue dynamiquement)…. Tu charges un module et tu peux continuer à distance

    http://blog.remoteresponder.net/2011/03/23/debian-squeeze-60-installation-over-ssh/

    • [^] # Re: Install à distance

      Posté par . Évalué à 2.

      comme expliqué dans les commentaires de ton lien, il faut avoir accès à la machine pour les premières étapes

  • # Initrd plus SSH

    Posté par . Évalué à 5.

    Bonjour,
    je l'ai fais assez récemment avec une gentoo sur une machine louée chez un gros hébergeur français.

    Dans un premier temps, il est bien d'installer un système de base sur la machine pour pouvoir travailler à se mise en place.
    Le grand principe est de créer une partition boot en clair contenant un noyau et un initrd.
    Tu dois forger cet initrd pour qu'au boot il initialise le réseau et de lance un petit serveur SSH (par exemple dropbear).

    Ainsi au reboot, tu peux te connecter au serveur a l’intérieur du initrd, avec aucun disque monté, tout se passe en ram.
    A partir de ce moment, si tu as mis les bon outils dans l'initrd, tu peux creer une partition, la chiffrée, et en faire ton rootfs et installer une debian avec debootstrap.

    Ainsi à chaque reboot de la machine, tu devra te connecter en ssh pour déchiffrer à la main les disques et mount root, puis de donner la main au vrai démarrage du système.

    J'ai tenté à la base de le faire à partir d'une debian, mais finalement c'est beaucoup plus simple avec une gentoo en faisant tout son initrd à la main :)

  • # comment ferait l'installeur classique ?

    Posté par . Évalué à 2.

    l'installeur classique demande-t-il des choses que ne demanderait pas l'installeur à distance ?

    apres tout, une installation à distance, c'est une installation automatisée avec un fichier contenant les reponses aux questions de l'installeur.

    et si tu en es à installer le serveur, tu peux prendre 1h pour tester l'installeur à distance et voir s'il propose le chiffrement du rootfs.

    • [^] # Re: comment ferait l'installeur classique ?

      Posté par . Évalué à 2.

      L'installateur classique gère le chiffrement de rootfs, mais pas le fait que personne n'est devant la machine physique pour entrer la passphrase de la clé lors du démarrage.
      Je pensais qu'il existait une solution toute prête mais ce n'est apparemment pas le cas.

      Je vais donc essayer de concocter une solution maison et la tester sur une machine virtuelle avant de me lancer.

      • [^] # Re: comment ferait l'installeur classique ?

        Posté par . Évalué à 2.

        ah oui, j'avais pas pensé à ce cas là.

        y a les posts precedents,
        et avec le moteur de recherche de linuxfr tu trouveras peut-etre un autre sujet ou un utilisateur voulait faire demarrer automatiquement un rootfs crypté en verifiant une clef sur une machine distante.

  • # La solution

    Posté par . Évalué à 3.

    Il n'y a pas de solution toute faite, mais ce n'est pas si compliqué que cela.

    Dans un premier temps, il faut suivre ce guide pour pouvoir utiliser le debian-installer: cela permet de créer un noyau et un initrd à placer sur la machine cible. À l'exception de la partie grub dont la syntaxe doit être mise à jour, ce guide se suit sans difficulté. Il faut juste s'assurer d'indiquer les bonnes informations dans le fichier preseed pour la mise en réseau de la machine (dns, gateway, ip etc …), et s'assurer que votre item 'debian-installer' est bien la sélection par défaut de grub.

    Dans un deuxième temps on redémarre la machine cible qui doit lancer le debian installer et attendre qu'on s'y connecte via ssh. Une fois cela fait, l'installation se déroule comme sur votre machine locale, phase de chiffrage des partitions incluse. On n'oubliera pas d'installer un serveur SSH pour ne pas se retrouver enfermer dehors. La seule différence se situe à la fin de la procédure: ne redémarrez pas la machine quand l'installateur indique c'est la prochaine étape, sinon, comme tout est chiffré, le boot s'arrêtera à la demande de passphrase, sans possibilité de s'y connecter à distance.

    On revient en arrière et on ouvre un shell pour installer dropbear sur la machine cible (chroot /target apt-get install dropbear). Les clés d'identification de la machine sont créés automatiquement dans le initramfs, ainsi que la paire de clé d'accès ssh. Il faut ensuite scp la clé privée sur sa machine locale, ne garder que le fichier authorized_keys dans /target/etc/initramfs-tools/root/.ssh ( pas la peine de laisser traîner le reste sachant que le initramfs ne sera pas chiffré), et enfin mettre à jour le initramfs (mount --rebind /proc /target/proc; chroot /target update-initramfs -u ).

    On redémarre la machine cible et on prie !

    depuis la machine locale on envoie la passphrase:

    ssh -o "UserKnownHostsFile=<chemin_ver_un_fichier_known_host_de_votre_choix>" -i <chemin_vers_la_clé_privée> root@<addresse_ip_de_la_machine_cible> 'echo -ne "la passpĥrase magique configurée lors de l'installation" > /lib/cryptsetup/passfifo'

    et voila !
    ssh <mon_login>@<addresse_ip_de_la_machine_cible> et vous serez chez vous en toute intimité !

    • [^] # Re: La solution

      Posté par . Évalué à 3.

      Pour info, j'ai testé tout cela sur une machine virtuelle pour l'installation d'une Debian stable (squeeze). Je ne pense pas qu'il y ait de grands changements pour une autre version de Debian ou sur une machine réélle.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.