Привет!
А есть ли возможность прикрутить luks-шифрование подключаемых по USB дисков? и справится ли wnr3500l?
Printable View
Привет!
А есть ли возможность прикрутить luks-шифрование подключаемых по USB дисков? и справится ли wnr3500l?
+1, только можно ли такое на wl-500gP (v1) ?
Потянет ли? Хотелось бы поэкспериментировать, если не трудно прикрутите плиз :)
EDIT: нашел на польском http://eko.one.pl/?p=openwrt-crypto завтра буду пробовать..
так понимаю OpenWRT пакеты ставятся на эту прошивку?
Не совсем. У нас с томатовцами свой клон репозитория OpenWRT, по объёму равный примерно трети объёма оригинала.
В первом посте нет такой инструкции. Если вы про сохранение настроек при переходе с ветки -d на -rtn, то перенос настроек крайне нежелателен.
не могли бы туда включить cryptsetup ?
+ ядровые модули dm_crypt, aes256_generic в прошивку.
EDIT: http://danm.de/files/src/bcm5365p/REPORTED_DEVICES
кстати в 500gP оказывается есть hardware crypto o_O
собственно удалось-таки поднять cryptsetup на wl500gP v1, все работает :)
скомпелировал на optware.. честно говоря замучался править исходники, чтобы оно собралось..
нужно конечно же компилить кастом прошивку с включенными
cryptoloop по желанию (если планируете хранить в файле контейнер, а не использовать целый раздел флешки).Code:sha256 12320 0
dm_crypt 14224 1
dm_mod 59872 3 dm_crypt
cryptoloop 2176 0
aes 31024 2
нужно по сути основное это сам скомпиленный пакет cryptsetup_1.4.3-1_mipsel.ipk
остальные депы ipkg доставит автоматом (они уже все есть) + модули ядра естественно собрать
неплохо б конечно это вынести в отдельную опцию при сборке прошивки, чтобы не мучаться.
скорость естественно грустная:
Но на WNR3500L проц помощнее и памяти больше (в 2 раза), думаю скорость будет получше, но не особо, не больше 1мб/secCode:dd if=/dev/zero of=1 bs=1M count=20
20+0 records in
20+0 records out
20971520 bytes (20.0MB) copied, 45.423548 seconds, 450.9KB/s
Отцы, ранее товарищ staticroute здесь же отписался, что пропатчил cryptsetup.
Нельзя ли в основной прошивке собирать среди прочих модули sha256, dm_mod, dm_crypt, cryptoloop, aes?
Единственный неприятный момент, который приходит в голову -- увеличится итоговый размер тарбола с модулями.
Вы можете сделать это самостоятельно при сборке прошивки и включить нужные модули, просто для этого придется (пока что) ручками править Makefile.
У меня есть подозрение, что cryptsetup я немного криво пропатчил, так как собирал под Optware, находу меняя нужные структуры в заголовочных файлах. Хотя он и работает, но с некоторыми багами.
Надо будет перепроверить или перелезть-таки на Entware и собрать уже там.
Зачем? Если месяцем раньше сами доказали его неработоспособность в плане скорости.
Зачем? Если раньше была доказана его неработоспособность в плане скорости. RAID-то получится софтовый, нагрузка по вводу-выводу ляжет на CPU.
Уболтали:) Cryptosetup добавлен в репозиторий. Ниже приведена краткая инструкция по его использованию. Учтите, что cryptsetup будет бесполезен, если у вас нет перечисленных ниже модулей ядра для вашей прошивки.
1. Подготавливаем файл-контейнер
Размер контейнера в примере 512Мб, текущая директория - на USB-носителе.
Контейнер смонтирован как loop device в /dev/loop1. Для использования LUKS-шифрования его необходимо отформатировать:Code:$ opkg install losetup cryptsetup
$ dd if=/dev/zero of=./crypto.img bs=1M count=512
$ insmod ./loop.ko
$ losetup /dev/loop1 ./crypto.img
2. Монтируем контейнерCode:$ insmod ./dm-mod.ko
$ insmod ./aes.ko
$ insmod ./sha256.ko
$ insmod ./dm-crypt.ko
$ cryptsetup -y --key-size 256 luksFormat /dev/loop1
Напоминаю, что cryptsetup - это всего лишь user space надстройка, облегчающая использование dm-crypt. В примере был создан готовый к монтированию block device /dev/mapper/crypted.Code:$ cryptsetup luksOpen /dev/loop1 crypted
3. Создаём на нём файловую систему
Всё как с жёстким диском:
Всё! Можно использовать /tmp/crypted/ для хранения зашифрованных данных. Оценим производительность на RT-N66u (данные затираются!):Code:$ mkfs.ext3 -j /dev/mapper/crypted
$ mkdir /tmp/crypted
$ mount /dev/mapper/crypted /tmp/crypted/
...при загрузке системы:Code:$ /opt/bin/dd if=/dev/zero of=/dev/mapper/crypted bs=1M count=510
510+0 records in
510+0 records out
534773760 bytes (535 MB) copied, 118,957 s, 4,5 MB/s
Информацию о состоянии смонтированного криптоконтейнера можно посмотреть командой:Code:$ top
top - 20:11:29 up 5 days, 22:27, 0 users, load average: 1.06, 1.24, 0.73
Tasks: 82 total, 1 running, 81 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.7%us, 63.4%sy, 0.0%ni, 0.0%id, 34.3%wa, 1.3%hi, 0.3%si, 0.0%st
Mem: 255520k total, 230476k used, 25044k free, 32832k buffers
Swap: 0k total, 0k used, 0k free, 158712k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
26656 admin 11 -5 0 0 0 S 52.5 0.0 1:19.22 kcryptd/0
18037 admin 0 -20 0 0 0 S 5.6 0.0 0:00.49 loop1
18316 admin 17 0 2080 1384 1316 D 4.6 0.5 0:00.26 dd
4. Окончание работы с контейнеромCode:$ cryptsetup -y luksDump /dev/loop1
Надо просто всё размонтировать в обратном порядке:
К посту приложены необходимые модули для стоковой/мерлиновской прошивки для Asus RT-N66u.Code:$ umount /tmp/crypted/
$ cryptsetup luksClose crypted
$ losetup -d /dev/loop1
Есть. Предшественник dm-crypt - cryptoloop.
В посте выше я монтировал файл-контейнер как loop device, а dm-crypt шифровал данные между /dev/loop1 и /dev/mapper/crypted. При использовании cryptoloop данные между файлом контейнера и loop device'ом волшебным способом шифруются на лету.
1. Создаём файл-контейнер
2. Подгружаем модули шифрования sha/aesCode:$ dd if=/dev/zero of=./crypto.img bs=1M count=512
Шифры должны стать нам доступны в перечне:Code:$ insmod ./aes.ko
$ insmod ./sha256.ko
3. Монтируем шифрованный loop deviceCode:$ cat /proc/crypto | grep ^name
Далее /dev/loop0 можно отформатировать и смонтировать ровно как в предыдущем случае. Производительность, правда, поменьше:Code:$ opkg install losetup
$ insmod ./loop.ko
$ insmod ./cryptoloop.ko
$ losetup -e aes /dev/loop0 ./crypto.img
...при загрузке:Code:$ /opt/bin/dd if=/dev/zero of=/dev/loop0 bs=1M count=510
510+0 records in
510+0 records out
534773760 bytes (535 MB) copied, 142,805 s, 3,7 MB/s
Code:$ top
top - 20:07:12 up 5 days, 22:22, 0 users, load average: 4.47, 1.45, 0.59
Tasks: 83 total, 5 running, 77 sleeping, 0 stopped, 1 zombie
Cpu(s): 0.6%us, 56.5%sy, 0.0%ni, 0.0%id, 41.7%wa, 0.3%hi, 0.9%si, 0.0%st
Mem: 255520k total, 234192k used, 21328k free, 77308k buffers
Swap: 0k total, 0k used, 0k free, 117640k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
17397 admin 0 -20 0 0 0 S 49.7 0.0 0:41.73 loop0
17529 admin 18 0 2080 1384 1316 R 2.5 0.5 0:02.42 dd
469 admin 10 -5 0 0 0 S 1.6 0.0 29:06.05 usb-storage