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