Device iSCSI crypté sous GNU/Linux
On peut facilement configurer un device iSCSI crypté sur FreeBSD, voici l'équivalent sous Debian GNU/Linux.
Sur le serveur
Installer IET:
# aptitude install iscsitarget iscsitarget-modules-2.6-amd64
Dans /etc/ietd.conf:
Target iqn.2008-12.net.orgrim:storage.crypt.test
Lun 0 Path=/home/iscsi/crypto.test,Type=fileio
IncomingUser orgrim prout
Créer le fichier:
# mkdir /home/iscsi # dd if=/dev/urandom of=/home/iscsi/crypto.test bs=1M count=1024
Relancer le daemon:
# /etc/init.d/iscsitarget restart
Sur le client
Installer le paquet contenant la partie initiator :
# aptitude install open-iscsi
Connection à la target
Il faut découvrir les targets fournies par le serveur, puis régler les paramètres d'authentification, et se logguer pour obtenir un device :
# iscsiadm -m discovery -t sendtargets -p 192.168.0.1 192.168.0.1:3260,1 iqn.2008-12.net.orgrim:storage.crypt.test # iscsiadm -m node -T iqn.2008-12.net.orgrim:storage.crypt.test -p 192.168.0.1 -o update -n node.session.auth.authmethod -v CHAP # iscsiadm -m node -T iqn.2008-12.net.orgrim:storage.crypt.test -p 192.168.0.1 -o update -n node.session.auth.username -v orgrim # iscsiadm -m node -T iqn.2008-12.net.orgrim:storage.crypt.test -p 192.168.0.1 -o update -n node.session.auth.password -v prout # iscsiadm -m node -T iqn.2008-12.net.orgrim:storage.crypt.test -p 192.168.0.1 -l Logging in to [iface: default, target: iqn.2008-12.net.orgrim:storage.crypt.test, portal: 192.168.0.1,3260] Login to [iface: default, target: iqn.2008-12.net.orgrim:storage.crypt.test, portal: 192.168.0.1,3260]: successful # cat /proc/scsi/scsi Attached devices: Host: scsi3 Channel: 00 Id: 00 Lun: 00 Vendor: IET Model: VIRTUAL-DISK Rev: 0 Type: Direct-Access ANSI SCSI revision: 04
Partitionnement
On utilise fdisk comme toujours pour découvrir quel device correspond à notre LUN :
# fdisk -l ... Disk /dev/sda: 1073 MB, 1073741824 bytes 34 heads, 61 sectors/track, 1011 cylinders Units = cylinders of 2074 * 512 = 1061888 bytes Disk identifier: 0x027ebc31 Disk /dev/sda doesn't contain a valid partition table
Ensuite, il faut partitionner:
# fdisk /dev/sda n, p, 1, <return>, <return>, w
Encryption
On utilise cryptsetup disponible dans le paquet éponyme :
# cryptsetup -y -c aes-cbc-essiv:sha256 -s 256 -h sha256 luksFormat /dev/sda1 WARNING! ======== This will overwrite data on /dev/sda1 irrevocably. Are you sure? (Type uppercase yes): YES Enter LUKS passphrase: Verify passphrase: Command successful.
Il faut entrer une passphrase qui permettra de décrypter le device.
Formatage et montage
On “ouvre” le device :
# cryptsetup luksOpen /dev/sda1 crypt-iscsi Enter LUKS passphrase: key slot 0 unlocked. Command successful.
Cette commande crée le device /dev/mapper/crypt-iscsi, qui correspond à la partition décryptée.
On termine par un système de fichier et le montage :
# mke2fs -j /dev/mapper/crypt-iscsi # mkdir /mnt/iscsi # mount /dev/mapper/crypt-iscsi /mnt/iscsi
Conclusion
Finalement, on voit que c'est plutôt équivalent. Ici, il y a plus de commandes à taper à cause de l'authentification pour l'initator. Mais on peut faciliter tout ça en configurant /etc/iscsi/iscsid.conf, voici un résumé :
node.startup = automatic node.session.auth.authmethod = CHAP node.session.auth.username = orgrim node.session.auth.password = prout