Calculate Access: travailler avec des volumes chiffrés

Updated 13 Mars 2019

Calculate Access est une boîte à outils pour travailler avec des disques cryptés avec la clé à distance et les en-têtes de partition de soutien de stockage. De plus, le script de montage est également stocké sur un serveur distant. Pour celui qui n'a pas accès au serveur de clés, il n'y a aucune information sur la façon dont les partitions de disque sont utilisées.

Création d'une partition cryptée

Créez le répertoire / root / cryptdata et préparez les fichiers d'en-tête pour la partition cryptée et la clé de cryptage :

mkdir /root/cryptdata

dd if=/dev/zero of=/root/cryptdata/header bs=2M count=1
1+0 records received
1+0 records sent
2097152 bytes (2.1 MB, 2.0 MiB) copied, 0.00229696 s, 913 MB/s
dd if=/dev/urandom of=/root/cryptdata/key count=1 bs=2048
1+0 records received
1+0 records sent
2048 bytes (2.0 kB, 2.0 KiB) copied, 0.00050282 s, 4.1 MB/s

Ajoutez le cryptage :

cryptsetup luksFormat --header /root/cryptdata/header /dev/sda5 /root/cryptdata/key
WARNING!
========
This will overwrite data on /root/cryptdata/header irrevocably.

Are you sure? (Type uppercase yes): YES

Remplacez /dev/sda5 par la partition à chiffrer. Confirmez en tapant OUI en majuscules.

Montez la partition cryptée:

cryptsetup --header /root/cryptdata/header -d /root/cryptdata/key luksOpen /dev/sda5 sda5_crypt

Remplacez sda5_crypt et /dev/sda5 par vos partitions.

Formatez la partition:

mkfs.ext4 /dev/mapper/sda5_crypt

Configuration du serveur de clés

Pour la configuration initiale du serveur de clés, installez le paquet sys-apps / calculate-access avec le drapeau USE server on.

echo sys-apps/calculate-access server [HTML_REMOVED][HTML_REMOVED] /etc/portage/package.use/custom

emerge calculate-access

Initialisez maintenant le service:

cl-access-setup
Accès configuré avec succès dans /var/calculate/access !

Montage de la partition cryptée avec le serveur de clés

emerge calculate-access

Générez une clé ssh pour se connecter au serveur de clés:

ssh-keygen -f /var/lib/calculate/access_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /var/lib/calculate/access_key.
Your public key has been saved in /var/lib/calculate/access_key.pub.
The key fingerprint is:
SHA256:XFT3YqCScoAFeLmnzpfDO5BWSKiRQAKOcDkSHFBitT0 root@calculate
The key's randomart image is:
+---[RSA 2048]----+
|#B==.=o   ..o .  |
|X+= B  . o . o . |
|.= = E. + o   o .|
|.   o ++ o   . . |
|     =  S        |
|    =            |
|   + o .         |
|    o *          |
|     ..+         |
+----[SHA256]-----+

Important

Do not set a password for the private key, otherwise you will not be able to automatically connect to the service.

Modifiez les paramètres de connexion pour le serveur de stockage des clés:

/etc/conf.d/access

# List of access hosts, separated by a space
# You can define your host in several ways:
#   'example.org'       - access@example.org port 22
#   'example.org:200'   - access@example.org port 200
#   'user@1.2.3.4:333'  - user@1.2.3.4 port 333
ACCESSHOST="access.example.org"

# Path to the private SSL-key file for connection to the access host
# The key must be accessible without a password
KEYFILE=/var/lib/calculate/access_key

# Connection timeout (in seconds)
CONNECT_TIMEOUT=20

# Maximum number of retries before disallowing access, -1 - infinity
RETRY=5

Remplacez access.example.org par votre nom de serveur SSH. Si vous spécifiez plusieurs serveurs de clés, Access les appellera à tour de rôle, par ordre d'indication.

Ajoutez la clé publique pour le serveur:

/etc/init.d/access add_hostkey
access | Permanently added 'access.verevo.calculate.ru,10.3.0.4' (ECDSA) to the list of known hosts.


Déplacez la clé d'en-tête de partition (/root/cryptdata/header), la clé de cryptage (/root/cryptdata/key) et la clé publique (/var/lib/calculate/access_key.pub) sur le serveur de clés :

scp /root/cryptdata/{header,key} /var/lib/calculate/access_key.pub root@access.example.org:/root
Password: 
header                              100% 2048KB  60.1MB/s   2.0MB/s   00:00    
key                                 100% 2048     3.3MB/s   2.0MB/s   00:00    
access_key                          100% 1675     2.4MB/s   2.0MB/s   00:00 

Remplacez access.example.org par votre nom de serveur SSH.

Ajoutez les données chiffrées de la partition au serveur de clés:

cl-access-add --id client1 --ssh-key /root/access_key.pub --header /root/header --key /root/key --device da958374-f891-4280-8c15-6e20b6cdd8f7 --mount /var/calculate
* All OK!


Remplacez client1 par le serveur de partition cryptée. Pour afficher la PARTUID du volume, exécutez ce qui suit sur le système client :

blkid -s PARTUUID /dev/sda5
/dev/sda5: PARTUUID="da958374-f891-4280-8c15-6e20b6cdd8f7"

Vérifiez sur le client que le serveur renvoie les données requises:

/etc/init.d/access check
access            | * Host: access.example.org ...                           [ ok ]


Montez la partition cryptée:

/etc/init.d/access start
access            | * Caching service dependencies ...
access            | * Starting access ...
access            | * Host: access.example.org ...                           [ ok ]


Ajoutez le montage de la partition cryptée au démarrage automatique:

rc-update add access

Assurez-vous d'avoir une copie du répertoire / root / cryptdata sur la clé USB, puis effacez le répertoire avec les clés:

rm -r /root/cryptdata