Passwordless зашифрованный iSCSI initiator в Debian Squeeze


В данной заметке описано подключение и шифрования луна с помощью , вместо парольной фразы исползуется ключевой файл. С точки зрения безопасности это не самый оптимальный вариант, но все же обеспечивает надежность.

В первую очередь установим то, с чем будем работать:

[email protected]:~$ apt-get install open-iscsi cryptsetup sharutils libdevmapper

Процесс создания iSCSI target в рамках данной заметки не рассматривается. Предполагается, что лун создан и презентован с использованием механизма проверки подлинности CHAP. Тогда модифицируем конфигурационный файл /etc/iscsi/iscsid.conf с указанием данных для аутентификации:

node.startup = automatic
node.session.auth.authmethod = CHAP
node.session.auth.username = Target
node.session.auth.password = Secret1234Password

После внесения данных в конфиг — перезапускаем демона:

[email protected]:~$ invoke-rc.d open-iscsi restart

Проверяем iSCSI target на доступные луны:

[email protected]:~$ iscsiadm -m discovery -t st -p 192.168.0.100
192.168.0.100:3260,0 iqn.2000-01.com.example:iscsi.target

Ага, лун доступен, подключаемся:

[email protected]:~$ iscsiadm -m node --targetname "iqn.2000-01.com.example:iscsi.target" \
--portal "192.168.0.100:3260" --login

Найдем подключенный диск:

[email protected]:~$  ll /dev/disk/by-path |grep iqn.2000-01.com.example
lrwxrwxrwx 1 root root 9 Apr 17 16:55 
/dev/disk/by-path/ip-192.168.0.100:3260-iscsi-iqn.2000-01.com.example:iscsi.target-lun-0
->
../../sdk

Создаем ключ, с помощью которого будем осуществлять шифрование:

[email protected]:~$ head -c 2880 /dev/urandom | uuencode -m - | head -n 65 | tail -n 64 \
> /root/.secret.key

Создаем зашифрованный раздел:

[email protected]:~$ cryptsetup luksFormat -c aes-cbc-essiv:sha256 /dev/sdk /root/.secret.key
WARNING!
========
This will overwrite data on /dev/sdk irrevocably.
Are you sure? (Type uppercase yes): YES

И подключаем его:

[email protected]:~$ cryptsetup --key-file=/root/.secret.key luksOpen /dev/sdk sdk_crypted

Теперь можно создать файловую систему и примонтировать зашифрованный раздел:

[email protected]:~$ mkfs.ext4 /dev/mapper/sdk_crypted
[email protected]:~$ mkdir /mnt/sdk_crypted
[email protected]:~$ mount /dev/mapper/sdk_crypted /mnt/sdk_crypted

Все данные в точке монтирования /mnt/sdk_crypted будут зашифрованы, прочитать их без ключа не возможно. После завершения работы диск можно отключить:

[email protected]:~$ umount /mnt/sdk_crypted
[email protected]:~$ cryptsetup luksClose sdk_crypted
[email protected]:~$ iscsiadm -m node --targetname "iqn.2000-01.com.example:iscsi.target" \
--portal "192.168.0.100:3260" --logout