Сегодня мы рассмотрим в двух частях, как не просто, а ну очень просто создать своё полноценное зашифрованное хранилище данных на файл-сервере, с защитой его подключения через USB-ключ, а также дополнительным вводом пароля (если враждебные силы ентот ключ у вас всё-таки отобрали). Также предусмотрено и автоотключение для такого активированного хранилища после его простоя какое-то время.
Заранее извиняюсь: описание намеренно сделано очень подробное и в пошаговом стиле, чтобы могли всё это воспроизвести даже начинающие — отчасти, поэтому литературная сторона изложения здесь здорово пострадала, но, надеюсь, это не касается его фактического содержания. Также я не объяснял, что значит каждая отдельная команда, сложного там ничего нет, а кому что-то неясно — на него всегда найдется соответствующий man!
Howto хорошо адаптировано под локальную сеть, а также сопровождается рисунками.
Ингредиенты:
Поехали!
Вставляем жесткий диск, тут самое трудное открыть корпус и найти свободное место. У меня корпус экзотический — Desktop Delux «B166» Slim, но здесь очень удобный площадка под HDD и DVD отворачивается в сторону, чтобы можно было поставить устройства, в собранном виде это не получится слишком тесно всё.
Два HDD WD — зеленой тихой, экономичной, не скоростной серии, отлично смотрятся вместе!
Кабели SATA дата и питания трудно подключить не правильно, а вот сломать после подключения очень легко, не надо их дергать, особенно вниз! Если в корпусе нет разъема питания SATA — нужен переходник питания PATA HDD->SATA HDD.
Другой конец SATA дата кабеля втыкаем в «мать», если первый раз, то не важно куда, после установки в ОС и последующей разборки кабеля надо возвращать всё на свои места.
Блок питания в этом корпусе слабый, пришлось вешать питание на разные кабели обязательно. Вот так все выглядит в сборе, все кабели спрятаны под диски, отличный корпус!
Всё, включаем сервер, заходим на него с помощью PuTTY по SSH. Новый жесткий диск установлен системой, определяется, поэтому делаем:
ls /dev
видим в списке новый диск:
ad6
Приступаем к установке шифрования, для этого надо пересобрать ядро ОС с нужными параметрами! Для начала посмотрим, что у нас за версия системы, делаем:
uname -a
или sysctl kern.version
и видим:
FreeBSD Server.home 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Apr 20 22:44:28
MSD 2009 root@Server.home: /usr/src/sys/i386/ compile/ipfw i386
У нас нестандартное ядро, кто-то его уже пересобирал (я даже знаю кто!) и назвал ipfw — это важно: именно в файл с этим именем надо добавить новые параметры, чтобы сохранились старые!
Перед сборкой ядра надо установить его исподники, например с CD, делать это надо при первой пересборке ядра.
sysinstal
выбираем:
Configure>Distributions>
[] src Source for everything
[x] sys
OK
Теперь приступаем к сборке ядра, тут используем ранее выясненное имя ядра «ipfw»:
cd /usr/src/sys/i386/conf
cp ipfw ipfwcrypt
Открываем этот файл.
Напоминаю команды редактора vi — кнопки [esc] [i] редактировать, [esc] [x] удалить, [esc] [:q!] [enter] выйти без записи, [esc] [:wq!] [enter] выйти записать.
vi ipfwcrypt
меняем строку на:
ident ipfwcrypt
добавляем снизу где-нибудь:
options GEOM_ELI
device crypto
далее делаем:
config ipfwcrypt
cd /usr/src/sys/i386/compile/ipfwcrypt
make cleandepend && make && make install
Последняя операция занимает значительное количество времени, по окончании надо добавить в файл /boot/loader.conf:
vi /boot/loader.conf
вот такой вот текст:
geom_eli_load="YES"
И перезагружаемся!
reboot
Готовим шифродиск
Самое время выбрать алгоритм шифрования. Blowfish — отличный алгоритм, его хвалят за стойкость и скорость. Ключ может быть от 16 до 448 бит, но у нас конечно будет 256. А вот скорость сильно зависит от процессора (не проверял, но проверю), в моем случае (Dual Celeron E1200 1,6Mhz, 1Gb) она упала в 5 раз с 100мб/c до 20 мб/c на одном диске — просто разные разделы, зашифрованный и нет.
Скорость можно проверить командой:
diskinfo -t ad6
Идем в папку /root
cd /root
Генерируем ключ под каким-нибудь незамысловатым обычным именем, расширение файла не важно:
dd if=/dev/random of=ads.txt bs=256 count=1
Диск ad6 у нас новый никак не прописанный в системе, так что сразу делаем его шифродиском:
geli init -s 4096 -K ads.txt -e Blowfish -l 256 /dev/ad6
Система запросит два раза пароль на этот наш шифродиск — его надо запомнить. Подключаем шифродиск так:
geli attach -k ads.txt /dev/ad6
В выводе команды ls /dev должно появиться ad6.eli.
Создаем на нем раздел:
newfs /dev/ad6.eli
Теперь для проверки делаем папку и монтируем туда наш шифродиск:
mkdir /root/test
mount /dev/ad6.eli/ /root/test
Смотрим:
df -h
Всё на своем месте:
/dev/ad6.eli 1.8T 8.0K 1.6T 0% /root/2
Далее размонтируем диск и отключим:
umount /dev/ad6.eli
geli detach /dev/ad6.eli
Для уже включенного в систему диска его надо удалить из загрузки, у нас это ad4s3d, все данные с него будут потеряны конечно же!
vi /etc/fstab
убираем или комментируем # строчку:
/dev/ad4s2d /usr/data/hdd1 ufs rw
и повторяем все вышеописанные действия для этого слайса, конечно меняя имена и пароли!
Флешка-ключ
На данном этапе у нас есть шифродиск, теперь сделаем так чтобы ключ хранился на USB (чтобы его оперативно прятать или глотать (что бессмысленно, так как флешка не успеет раствориться)), а пароль вводился с любой машины, которая в той же сети что и файл-сервер при помощи специального ярлыка программы — все это поможет упростить и автоматизировать процесс подключения.

Флешку берем любую обычную. Я взял не такую маленькую, но по-своему эффектную от SanDisk, кстати, на ней уже есть что-то для шифрования, но нам это не нужно!

Вставляем флешку в сервер, её можно увидеть командой:
ls /dev
она будет выглядит как показано ниже, если она выглядит (кодируется) по-другому, надо это конечно учесть в программе-скрипте который приводится ниже:
da0
da0s1
Создаем папку для флешки:
mkdir /mnt/usb
Монтируем флешку:
mount -t msdosfs /dev/da0s1 /mnt/usb
Копируем на флешку ключ он может лежать как в корне так и в папке, лучше как кто прятать:
cp /root/ads.txt /mnt/usb/
Отключаем флешку, при этом главное не сидеть в её папке в этот момент:
cd /
umount /dev/da0s1
~
Читаем вторую часть (окончание) этого howto: финальные скрипты подключения шифродиска и его отключения.
Похожие страницы:
1 комментарий
Хех. Намного удобнее вариант с Nas, с отключением usb, ssh на нестандартном порту и рулами на iptables.