[ howto ] Installation d'un serveur dédié (partie 2 chiffrement des disques)

Rédigé par NaïLyK Aucun commentaire
Classé dans : devuan, self-hosting, linux Mots clés : self-hosting

Suite de [ howto ] Installation d'un serveur dédié (partie 1 debootstrap de devuan)

Maintenant que le système est installé, passons au chiffrement des disques.

#include <std_disclaimer.h
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*/

 

Les étapes sont assez simples.

 

  1. Installer luks

Pour installer luks ainsi que les utilitaires autour (cryptsetup) il suffit de l'installer :

sudo apt install cryptsetup

 

  1. Préparer les partitions / S'assurer que les partitions sont prêtes

Dans ce cas de figure, les containeur LUKS sera une partition et pas un périphérique physique.

$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
nvme0n1     259:0    0 476.9G  0 disk
|-nvme0n1p1 259:1    0   487M  0 part /boot
|-nvme0n1p2 259:2    0  46.6G  0 part /
`-nvme0n1p3 259:3    0 429.9G  0 part
nvme1n1     259:4    0 476.9G  0 disk
`-nvme1n1p1 259:5    0 476.9G  0 part

 

  1. Formatter les partitions au format luks

Cette étape va créér les containeurs luks sur les partitions.

⚠️ Cette commande ne vérifiera rien, il faut bien vérifier avant de lancer la commande !

$ sudo cryptsetup luksFormat /dev/nvme0n1p3

WARNING!
========
This will overwrite data on /dev/nvme0n1p3 irrevocably.

Are you sure? (Type 'yes' in capital letters): YES
Enter passphrase for /dev/nvme0n1p3:
Verify passphrase:

 

  1. Ouvrir les containeurs LUKS

Une fois que les containers sont créés, il faut les ouvrir pour pouvoir les utiliser

La commande `luksOpen` prends deux arguments:

  • Le périphérique à ouvrir
  • Un identifiant. Cette valeur est completement arbitraire et faite pour s'y retrouver, elle n'a aucun impact.
$ sudo cryptsetup luksOpen /dev/nvme0n1p3 home
Enter passphrase for /dev/nvme0n1p3:
$ sudo cryptsetup luksOpen /dev/nvme1n1p1 data
Enter passphrase for /dev/nvme1n1p1:

Résultat :

$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
nvme0n1     259:0    0 476.9G  0 disk  
|-nvme0n1p1 259:1    0   487M  0 part  /boot
|-nvme0n1p2 259:2    0  46.6G  0 part  /
`-nvme0n1p3 259:3    0 429.9G  0 part  
  `-home    254:0    0 429.9G  0 crypt
nvme1n1     259:4    0 476.9G  0 disk  
`-nvme1n1p1 259:5    0 476.9G  0 part  
  `-data    254:1    0 476.9G  0 crypt

 

  1. Formatter les containeurs

Maintenant que les containeurs sont ouver, il est possible de les formatter pour les utiliser. Ce sont des périphériques block standard et un lien symbolique est créé avec le nom passé à la commande précédente.

$ ls -l /dev/mapper/
total 0
crw------- 1 root root 10, 236 Jun  3 08:19 control
lrwxrwxrwx 1 root root       7 Jun  3 08:19 data -> ../dm-1
lrwxrwxrwx 1 root root       7 Jun  3 08:19 home -> ../dm-0
$ ls -l /dev/dm*
brw-rw---- 1 root disk 254, 0 Jun  3 08:19 /dev/dm-0
brw-rw---- 1 root disk 254, 1 Jun  3 08:19 /dev/dm-1

 

Un simple mkfs fera l'affaire :

$ sudo mkfs.ext4 /dev/mapper/home
[sudo] password for nailyk:
mke2fs 1.46.2 (28-Feb-2021)
Creating filesystem with 112693504 4k blocks and 28180480 inodes
Filesystem UUID: 27adf6c5-d09a-42b6-9bd0-8f3ca69cb215
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done     

$ sudo mkfs.ext4 /dev/mapper/data
mke2fs 1.46.2 (28-Feb-2021)
Creating filesystem with 125022464 4k blocks and 31260672 inodes
Filesystem UUID: 2dd1e0f0-ec85-41d7-8421-74cfda6a810e
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done     

 

  1. Configurer les partitions

Recupérer les ID :

$ sudo blkid
[sudo] password for nailyk:
/dev/mapper/home: UUID="27adf6c5-d09a-42b6-9bd0-8f3ca69cb215" BLOCK_SIZE="4096" TYPE="ext4"
/dev/mapper/data: UUID="2dd1e0f0-ec85-41d7-8421-74cfda6a810e" BLOCK_SIZE="4096" TYPE="ext4"

et les mettre dans le fstab :

% cat /etc/fstab
# UNCONFIGURED FSTAB FOR BASE SYSTEM

UUID=af0c516a-4da3-4010-903f-e8a6213b1ec4       /boot           ext4    discard,noatime,nodiratime,errors=remount-ro    0       1
UUID=d6a7c1f4-036a-411c-a50d-eaee427131aa       /                       ext4    discard,noatime,nodiratime,errors=remount-ro    0       0
UUID=27adf6c5-d09a-42b6-9bd0-8f3ca69cb215       /home           ext4    discard,noatime,nodiratime,errors=remount-ro,noauto     0       0
UUID=2dd1e0f0-ec85-41d7-8421-74cfda6a810e       /media/data     ext4    discard,noatime,nodiratime,errors=remount-ro,noauto     0       0

 

⚠️ ⚠️ ⚠️ ⚠️ ⚠️

Surtout pour les systèmes avec systemd (bloatwared pour les intimes), il faut ajouter le 'noauto' dans les paramètres. Si non, comme l'entrée ne sera pas trouvée, le système ne démarrera pas. (je ne retrouve pas l'issue sur le github)
Dans tous les cas, il sera impossible de tapper la passphrase au démarrage donc, il est plus sage de désactiver le montage automatique de ces partitions.

⚠️ ⚠️ ⚠️ ⚠️ ⚠️

 

  1. Préparer /home

Pour éviter tout problème, il est important de populer home :

 

mkdir /tmp/home
sudo mount /dev/mapper/home /tmp/home
sudo cp -ax /home/nailyk /tmp/home/
ls -al /tmp/home/

 

  1. Un peu de customisation (inutiles)
cd /tmp/home/nailyk/
wget "https://raw.github.com/nailyk-fr/dot/master/.zshrc"
wget "https://raw.github.com/nailyk-fr/dot/master/.bashrc"
wget "https://raw.github.com/nailyk-fr/dot/master/prompt_nailyk_setup"
wget "https://raw.github.com/nailyk-fr/dot/master/.screenrc"
wget "https://raw.github.com/nailyk-fr/dot/master/.vimrc"
mv .bashrc.1 .bashrc
sudo ln -sf .bashrc /root/
sudo ln -sf .vimrc /root/
sudo ln -sf .zshrc /root/
sudo ln -sf prompt_nailyk_setup /root/
sudo chsh -s /bin/zsh nailyk
sudo chsh -s /bin/zsh root

 

  1. Il ne reste plus qu'a redémarrer 🤞

Une fois le redémarage éffectué, il faut monter les partitions (puis se reconnecter sur le nouveau /home) :

UNMOUNTED! % sudo cryptsetup luksOpen /dev/nvme0n1p3 home
Enter passphrase for /dev/nvme0n1p3:
UNMOUNTED! % sudo cryptsetup luksOpen /dev/nvme1n1p1 data
Enter passphrase for /dev/nvme1n1p1:
UNMOUNTED! % sudo mount /home
UNMOUNTED! % sudo mount /media/data
UNMOUNTED! % sudo swapon /media/data/swapfile
UNMOUNTED! % lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
nvme0n1     259:0    0 476.9G  0 disk  
├─nvme0n1p1 259:1    0   487M  0 part  /boot
├─nvme0n1p2 259:2    0  46.6G  0 part  /
└─nvme0n1p3 259:3    0 429.9G  0 part  
  └─home    254:0    0 429.9G  0 crypt /home
nvme1n1     259:4    0 476.9G  0 disk  
└─nvme1n1p1 259:5    0 476.9G  0 part  
  └─data    254:1    0 476.9G  0 crypt /media/data

(Le UNMOUNTED! est dans le PS1 de mon zshrc sur / (donc, quand /home n'est pas monté)

 

Écrire un commentaire

Capcha
Entrez le code de l'image

Fil RSS des commentaires de cet article