Lorsque j'ai installé Ubuntu 10.04 et maintenant 10.10, on m'a proposé d'activer "LVM crypté" pour mon disque dur. Après avoir choisi cette option, je suis invité à saisir mon mot de passe lors du démarrage pour décrypter le LVM.
Maintenant, je pense à la mise en place d’un serveur sans tête fonctionnant sous Linux (pas nécessairement Ubuntu), mais je crains que, le serveur étant sans tête, je ne puisse pas le déchiffrer au démarrage. Est-ce que je pourrais entrer SSH pendant le démarrage pour entrer mon mot de passe pour le LVM crypté? Si oui, comment puis-je le configurer? Ou y a-t-il une autre solution? Encore une fois, cette question n'est PAS spécifique à Ubuntu. Merci.
zless /usr/share/doc/cryptsetup/README.remote.gz
Réponses:
Pour les versions plus récentes d’ubuntu, par exemple 14.04, j’ai trouvé très utile de combiner les réponses de @dragly et de ces articles de blog . Paraphraser:
(Sur le serveur) Installer Dropbear
(Sur le serveur) Copier et attribuer des autorisations pour la connexion à la clé publique / privée racine
N'oubliez pas de changer d' utilisateur avec votre nom d'utilisateur sur le serveur
(Sur le client) Récupérer la clé privée du serveur
(Sur le client) Ajouter une entrée à ssh config
(Sur le serveur) Créez ce fichier à
/etc/initramfs-tools/hooks/crypt_unlock.sh
(Sur le serveur) Rendre ce fichier exécutable
Mettre à jour les initramfs
Désactiver le service dropbear au démarrage afin que openssh soit utilisé après le déchiffrement de la partition
Vous avez terminé. Essaye le. Consultez la publication de blog liée à ci-dessus pour savoir comment configurer le serveur avec une adresse IP statique si vous devez le faire.
la source
/etc/initramfs-tools/root/.ssh/authorized_keys
, même s'il continue à copier la clé privée de Dropbear, ce que l'on peut ignorer complètement. Suivre le reste des instructions fonctionne pour moi, ce qui signifie que cela devrait être la réponse acceptée (une fois que cela reflète ce changement), car il utilise uniquement des clés publiques.Un guide pour faire une telle configuration avec BusyBox et Dropbear est présenté dans cet article de blog . early-ssh n'a pas fonctionné pour moi et n'est apparemment plus nécessaire.
J'ai résumé ce que vous devez faire dans ce qui suit. Pour plus de détails, consultez le post ci-dessus:
Installez BusyBox et Dropbear sur votre serveur
Mettez à jour vos initramfs sur le serveur
Copiez la clé privée générée par dropbear sur votre ordinateur client. Vous devrez peut-être copier ceci dans un nouveau répertoire et changer de propriétaire pour le faire. Procédez comme suit sur votre serveur :
N'oubliez pas de remplacer l'utilisateur par votre nom d'utilisateur. Les connexions par mot de passe ne semblent pas fonctionner.
Maintenant, vous pouvez transférer la clé privée avec scp en appelant ce qui suit sur votre client :
Configurez le fichier ~ / .ssh / config de votre client pour faciliter la connexion. Ouvrez-le avec un éditeur de texte et ajoutez ce qui suit:
Changez l'hôte comme bon vous semble et HostName par le nom de votre serveur. Laissez l'utilisateur être root. Il semble que ce soit le seul utilisateur accepté dans Dropbear. Enregistrez et fermez le fichier.
Redémarrez votre serveur et attendez l'invite de la phrase secrète. Donnez à Dropbear quelques secondes pour détecter et configurer sa connexion Internet. Connectez-vous à votre serveur avec la commande suivante sur votre client :
Une fois connecté, lancez la commande suivante sur votre serveur . Voir le blog pour plus de détails:
Il vous faudra un certain temps (30 secondes) pour taper votre phrase secrète. Tapez-le lorsque vous y êtes invité.
Fermez la connexion en tapant
Votre serveur doit maintenant avoir déverrouillé son disque dur crypté et démarrer normalement.
(Un grand merci à l'auteur original du blog!)
la source
Je pense que early-ssh fournit ce que vous recherchez:
Un paquet .deb est déjà disponible, vous êtes donc probablement satisfait d'Ubuntu.
la source
Jetez un coup d'œil au fichier Lisez-moi sur cryptsetup dans
/usr/share/doc/cryptsetup/README.remote.gz
(paquet Ubuntucryptsetup
). Dans il y a un guide complet pour accomplir ceci. C'est semblable à la réponse de dragly , mais je pense que c'est un peu plus élégant. (Clés formatées Dropbear, passant la phrase secrète via une FIFO plutôt qu'un script shell fragile, etc.)Merci à jap de me l'avoir signalé sur un autre canal.
la source
read -s -p
.Si vous voulez pouvoir démarrer sans surveillance et à distance, vous devriez aussi regarder Mandos (que moi et d'autres avons écrit):
En bref, le serveur de démarrage obtient le mot de passe sur le réseau de manière sécurisée. Voir le fichier README pour plus de détails.
la source
Serveur sans tête? S'il dispose d'un port série, utilisez-le.
GRUB peut être configuré pour fonctionner sur le port série. Votre noyau peut également être configuré, utilisez le port série pour générer les messages de démarrage initiaux, saisir le mot de passe permettant de déverrouiller vos lecteurs et vous connecter. (Si votre serveur prend en charge le BIOS série, activez-le également. un moniteur à la machine du tout).
C'est toujours une bonne idée d'avoir un moyen "non réseau" d'entrer dans un serveur sans tête.
la source
Sur arch linux, il existe un paquet AUR, dropbear_initrd_encrypt, qui fait ce que vous voulez immédiatement . Fonctionne plutôt bien pour les interfaces filaires. J'ai dû le pirater légèrement pour le sans fil.
la source
Malheureusement, aucune des réponses ci-dessus n'a fonctionné pour moi. De plus, copier une clé privée depuis un serveur semble paradoxal.
Quoi qu'il en soit, les instructions suivantes ont fonctionné:
Démarrez votre serveur en connectant et déverrouillant la partition cryptée via votre client.
Installer les packages obligatoires (sur le serveur)
Ajoutez vos clés publiques souhaitées dans le fichier registered_keys du serveur
Il suffit de copier et coller votre clé publique
/etc/dropbear-initramfs/authorized_keys
sur SERVERCréer le script de déverrouillage
Créez le script suivant dans
/etc/initramfs-tools/hooks/crypt_unlock.sh
Rendez-le exécutable:
Créer une adresse IP statique (ou ignorer cette étape pour utiliser DHCP)
Modifier
/etc/initramfs-tools/initramfs.conf
pour ajouter (ou changer) la ligne:Mettre à jour initialramfs
Désactiver le service dropbear au démarrage afin que openssh soit utilisé après le déchiffrement de la partition
Essai
ssh [email protected] [-i ~/.ssh/id_rsa]
la source
Sur debian 9 (stable), cette solution était obsolète. Lors de l'installation, un message d'avertissement s'affiche
dropbear: WARNING: Invalid authorized_keys file, remote unlocking of cryptroot via SSH won't work!
et je n'ai pas pu trouver les clés nécessaires. Cette méthode est d'ailleurs très simple et m'a été expliquée sur le super canal #debian (merci encore):Assurez-vous d'abord que
busybox
,dropbear
etdropbear-initramfs
sont installéspuis ajoutez votre clé publique (la plupart du temps
~/.ssh/id_rsa.pub
) dans le fichier/etc/dropbear-initramfs/authorized_keys
.Mettez
initramfs
à jour puis pour prendre en compte les changements:: update-initramfs -uC'est tout!
Notez que si vous voulez éviter un conflit entre les clés entre
dropbear
etopenssh
(elles partagent la même adresse IP mais utilisent une clé différente), vous voudrez peut-être ajouter à votre client~/.ssh/config
quelque chose comme ça:Ensuite, vous vous connectez simplement en utilisant:
et une fois que vous obtenez une invite, tapez comme suggéré par l'invite busybox:
et tapez votre mot de passe.
Prendre plaisir!
la source
J'ai écrit un rôle Ansible qui le fait pour vous. Il suffit d’obtenir le rôle debops-contrib.dropbear_initramfs et de l’exécuter. Reportez-vous à la documentation du rôle pour plus de détails.
la source
J'utilise la technique expliquée par d'autres sur cette page (SSH dans initramfs avec un
IP
paramètre de noyau pour configurer la mise en réseau) depuis plusieurs années maintenant pour déverrouiller à distance des serveurs sans tête Ubuntu Linux (12.02, 14.04, 16.04 et 18.04).Je suis même allé jusqu'à développer un programme Python ( unlock-remote-system ) qui effectue le déverrouillage pour moi, parce que le processus de le faire manuellement me semblait un peu fragile et que je commençais à craindre de redémarrer mes serveurs. de "si ça fait mal, ça vaut la peine d'automatiser", j'ai encodé mes connaissances en Python (et cela a en effet rendu beaucoup plus facile les redémarrages réguliers pour appliquer les mises à jour de sécurité).
Depuis lors, j'ai décidé de partager également mes notes personnelles sur le chiffrement du disque racine à distance avec le monde. La page liée contient de nombreux détails sur la procédure (ainsi que des astuces qui ne sont pas mentionnées ici) et je compte la tenir à jour.
la source