Partie crypted-var
This commit is contained in:
parent
e75d7e19e5
commit
7a27baf389
1 changed files with 67 additions and 20 deletions
|
@ -1,37 +1,84 @@
|
||||||
Notes...
|
---
|
||||||
|
title: Howto Serveur de mail sécurisé avec Mailcow et Scaleway
|
||||||
|
categories: sysadmin mail
|
||||||
|
---
|
||||||
|
|
||||||
|
# Intro
|
||||||
|
|
||||||
|
Ce Howto explique comment monter un serveur de mail sécurisé en utilisant [Mailcow](https://github.com/andryyy/mailcow) et un serveur virtuel chez [Scaleway](https://www.scaleway.com/). L'introduction est à lire sur mon [blog](https://www.lekernelpanique.fr/?p=925).
|
||||||
|
|
||||||
|
La première étape consiste évidement à créer l'instance sur la console de Scaleway en choisissant Debian 8 en OS.
|
||||||
|
|
||||||
|
> **Note**: Il est important d'utiliser le noyau Scaleway `x86_64 4.8.14 std #2 (latest)` dans les paramètres avancés, section « bootscript ». Sinon vous n'aurez pas les modules noyau liés au chiffrement. Il vous faudra rebooter pour appliquer le changement de noyau.
|
||||||
|
|
||||||
|
# Mise à jour
|
||||||
|
|
||||||
|
L'image Debian de Scaleway n'étant pas « buildé » tout les jours, il se peut qu'il y ait quelques mises à jour à faire. On fait donc une upgrade.
|
||||||
|
|
||||||
```
|
```
|
||||||
# dd if=/dev/zero of=/var.img bs=1M count=36000
|
# apt update
|
||||||
|
# apt upgrade
|
||||||
|
```
|
||||||
|
|
||||||
|
# Création du volume /var chiffré
|
||||||
|
|
||||||
|
Ce volume accueillera vos mails et journaux systèmes. Il est donc intéressant de le chiffrer. Malheureusement, l'image Scaleway fournit un disque non partitionné. L'`initrd` cherche à amorcer le volume root directement sur `/dev/vda`… On va donc créer un fichier image, puis le chiffrer avec `cryptsetup`. Un `/var` de 35G devrait suffire.
|
||||||
|
|
||||||
|
Création du fichier image et montage sur `/dev/loop0`.
|
||||||
|
|
||||||
|
```
|
||||||
|
# dd if=/dev/zero of=/var.img bs=1M count=35000
|
||||||
# chmod 600 /var.img
|
# chmod 600 /var.img
|
||||||
# losetup /dev/loop0 /var.img
|
# losetup /dev/loop0 /var.img
|
||||||
|
```
|
||||||
|
|
||||||
|
On en profite pour aussi créer une swap de 1G tant qu'à faire.
|
||||||
|
|
||||||
|
```
|
||||||
|
# dd if=/dev/zero of=/swapfile.img bs=1M count=1000
|
||||||
|
# chmod 600 /var.img
|
||||||
|
# mkswap
|
||||||
|
```
|
||||||
|
|
||||||
|
On chiffre le volume en LUKS avec `cryptsetup`. Choisissez une passphrase, vous aller devoir la taper à chaque démarrage dans la console de Scaleway. Pas très souvent si tout est stable ! :-)
|
||||||
|
|
||||||
|
```
|
||||||
|
# apt install cryptsetup
|
||||||
# cryptsetup luksFormat --hash sha256 --key-size=512 /dev/loop0
|
# cryptsetup luksFormat --hash sha256 --key-size=512 /dev/loop0
|
||||||
# cryptsetup luksOpen /dev/loop0 crypted-var
|
# cryptsetup luksOpen /dev/loop0 crypted-var
|
||||||
|
```
|
||||||
|
|
||||||
|
On formate le tout en EXT4, on monte le volume, on stoppe les services qui utilisent actuellement `/var` et on rsync le tout.
|
||||||
|
|
||||||
|
```
|
||||||
# mkfs.ext4 -LVAR /dev/mapper/crypted-var
|
# mkfs.ext4 -LVAR /dev/mapper/crypted-var
|
||||||
# mount /dev/mapper/crypted-var /mnt/
|
# mount /dev/mapper/crypted-var /mnt/
|
||||||
# ### stop your service using /var, rsyslog, etc.
|
# for pid in $(lsof | grep /var | tr -s '\t' ' ' | cut -d' ' -f2 | sort | uniq | grep -v "^1$"); do kill $pid; done
|
||||||
# rsync -avh --progress /var/ /mnt/
|
# rsync -avh --progress /var/ /mnt/
|
||||||
|
# rm -rf /var/*
|
||||||
# umount /mnt
|
# umount /mnt
|
||||||
|
```
|
||||||
|
|
||||||
|
On indique le volume chiffré dans `crypttab` et le point de montage dans `fstab` puis on reboot. Préparez-vous à aller taper votre passphrase dans la console Scaleway !
|
||||||
|
|
||||||
|
> **Note** : On désactive `unattended-upgrades` qui va planter l'arrêt à cause du /var qui n'existe plus.
|
||||||
|
|
||||||
|
```
|
||||||
# echo "crypted-var /var.img none luks" >> /etc/crypttab
|
# echo "crypted-var /var.img none luks" >> /etc/crypttab
|
||||||
# echo "/dev/mapper/crypted-var /var ext4 defaults 0 2" >> /etc/fstab
|
# echo "/dev/mapper/crypted-var /var ext4 defaults 0 2" >> /etc/fstab
|
||||||
|
# systemctl disable unattended-upgrades.service
|
||||||
# reboot
|
# reboot
|
||||||
# go to scaleway console, and type your passphrase!
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Enjoy you crypted `/var` volume!
|
Ta-daa ! On a notre `/var` chiffré.
|
||||||
|
|
||||||
```
|
``root@scw-049d84:~# df -h /var
|
||||||
root@machine:~# cryptsetup luksDump /var.img
|
|
||||||
LUKS header information for /var.img
|
|
||||||
|
|
||||||
Version: 1
|
|
||||||
Cipher name: aes
|
|
||||||
Cipher mode: xts-plain64
|
|
||||||
Hash spec: sha256
|
|
||||||
Payload offset: 4096
|
|
||||||
MK bits: 512
|
|
||||||
[…]
|
|
||||||
|
|
||||||
root@machine:~# df -h /var
|
|
||||||
Filesystem Size Used Avail Use% Mounted on
|
Filesystem Size Used Avail Use% Mounted on
|
||||||
/dev/mapper/crypted-var 35G 861M 32G 3% /var
|
/dev/mapper/crypted-var 3.3G 243M 2.9G 8% /var
|
||||||
```
|
`
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
# Installation de Mailcow
|
||||||
|
|
||||||
|
## Pré-requis
|
||||||
|
|
Loading…
Reference in a new issue