Le blog de Dju Un peu de moto, un zeste de geek, et un brin d'autres trucs ;-)

Dechiffrement d'un volume LUKS à distance sous Debian

Quand on a un serveur sous debian, avec le disque chiffré grâce à LUKS, il faut avoir un écran/clavier pour taper le mot de passe au boot.
Pas très pratique pour un serveur !

Mais une solution existe pour cela: le paquet dropbear-initramfs.

Il va faire en sorte que lorsque la machine démarre, dropbear (un serveur ssh très light) soit lancé, car intégré dans l'initramfs.
Ce qui va nous permettre de s'y connecter en SSH (avec authentification par clé), rentrer le mot de passe pour déchiffrement, et qu'au final le système démarre :)

Et comme je fais cela souvent, il m'arrive d'oublier une étape, en voici dont la liste :p

Pour ce faire, 5 étapes:

  1. installer dropbear
  2. configurer l'authentification
  3. configurer dropbear
  4. configurer l'initramfs
  5. désactiver dropbear pour que ssh se lancer normalement après

1/ installation

on l'installe simplement en une commande :

apt install dropbear dropbear-initramfs

2/ Authentification

Afin de s'authentifer par clé, on créé le fichier /etc/dropbear/initramfs/authorized_keys, dans lequel on inscrit notre clé publique (généralement dans ~/.ssh/id_rsa.pub)

3/ Configuration de dropbear

On édite le fichier /etc/dropbear/initramfs/dropbear.conf et on décommente la ligne DROPBEAR_OPTIONS.
Et on indique les options entre guillemets. au final, la ligne doit ressembler à ceci:

DROPBEAR_OPTIONS="-RFEsjk -c /bin/cryptroot-unlock"

ces options permettent pluisieurs choses, notemment de ne pas mettre dropbear en background, et qu'il affiche ce qui se passe à l'écran (dans stderr), de désactiver l'authentification par password, et le port forwarding.
Enfin et surtout la derniere option permet de demander directemnet le mot de passe LUKS, sans qu'on aie accès à un shell busybox ;)

4/ Configuration de l'initramfs

Dropbear étant maintenant configuré, on passe à l'initramfs.
On édite pour cela le fichier /etc/initramfs-tools/initramfs.conf, et on rajoute une ligne à la fin

IP=192.168.30.27::192.168.30.1:255.255.255.0::eth0:off

ici on indique que l'initramfs doit monter l'interface réseau eth0 avec l'ip 192.168.30.27; une gateway en 192.168.30.1 et un netmask à 255.255.255.0.
Cette partie est tres importante, car sans elle la machine n'aura pas de réseau à ce stade du démarrage.

Enfin, on met à jour l'initramfs:

update-initramfs -u

5/ Désactivation de dropbear

Finalement, on désactive dropbear pour qu'il ne se lance pas au démarrage. il doit etre lancé uniquement pendant la phase de l'initramfs, et doit se désactiver après.
Sans quoi, sshd ne pourra pas démarrer :)

Si vous utilisez systemd:

systemctl disable dropbear.service

Si vous utilisez sysvinit:

update-rc.d -f dropbear remove

Et voila, c'est terminé. :)

Désormais, lorsque la machine démarrera, vous pourrez toujours taper votre mot de passer au clavier si besoin, mais vous pourrez surtout vous y connecter en ssh, et une fois identifié, un prompt vous sera proposé pour taper votre mot de passe LUKS.

Login SSH long sur Ubuntu server 9.10

ubuntu-logo1.jpg Depuis la version 9.10, le login en ssh est particulièrement long, la ou d'habitude on était connecté le temps de claquer des doigts.
Après investigation, le responsable est le paquet update-motd, inclus par défaut, qui a subi un changement à partir de la 9.10, augmentant ainsi le temps de connexion.
Voici la solution permettant de contourner ce problème pour les plus impatients qui n'aiment pas attendre et se font des sueurs froides à chaque fois :p

Lire la suite

Protéger son acces SSH

Lorsqu'on a un serveur en ligne 24h/24, il est obligatoire d'avoir un accès SSH pour pouvoir s'y connecter à distance et intervenir dessus.
De fait, il y aura toujours des petits malins pour s'amuser à aller scanner vos ports et essayer d'entrer sur votre machine.
La plupart du temps, la technique n'est pas très évoluée et les tentatives sont faites en brute-force, c'est à dire en essayant successivement des logins et mots de passe différents jusqu'à trouver le bon.
On se retrouve donc avec un fichier log de 3 km de long, ainsi qu'une certaine utilisation des ressources de la machine ainsi que de sa bande passante...
Bref, pas glop !

Lire la suite