Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
||||||||||||||||||
www.lissyara.su
—> статьи
—> FreeBSD
|
|
Итак, для начала скомпилируем ядро с опциями:
|
Смонтируем на запись флешку в каталог /mnt:
|
Генерим ключ размером 64 байта на флешку:
|
Отмонтируем слайс ar0s1g (/crypto):
|
Инициализируем провайдера - размер сектора 4Кб, алгоритм Blowfish, контроль целостности посредством HMAC/SHA512, размер ключа, скажем, 384 бита (максимальный ключ в Blowfish насколько я помню может быть 448 бита). Придумываем ключевую фразу.
|
Связываем главный ключ с провайдером, ключевая фраза и сгенерированный файл на флешке служат дешифрацией главного ключа для создания нового GEOM провайдера. В каталоге /dev должен появиться файл /dev/ar0s1g.eli :
|
Далее достаточно продолжительная процедура создания файловой системы (у меня ушло на это около 4-часов):
|
Создадим произвольный файл длиной 512 байт на нашей новой ФС:
|
Теперь отмонтируем /crypto, отсоединим провайдера /dev/ar0s1g.eli и выведем список файлов директории. Тестового файла там нету.
|
Попробуем смонтировать устройство /dev/ar0s1g - неверный супер-блок:
|
Попробуем с неверным ключем или фразой попытаться подключить провайдера - как видим, ничего не получается:
|
Для своего удобства, накатал несложный скрипт на $BASH для монтирования-демонтирования шифрованной файловой системы (при условии, что она единственная на сервере). особо его не тестил, но у меня работает вроде все:
|
Работает он примерно так:
|
И так:
|
Вообщем, мне так удобней. Да, и еще. Желательно не забыть из /etc/fstab убрать строку устройства ar0s1g, а то система не загрузится
|
Ну вот в принципе и все.
размещено: 2007-12-08,
последнее обновление: 2007-12-08,
автор: netcat
Zer0, 2007-12-18 в 15:09:49
столкнулся с тем, что на 6.1 при перезагрузке типа *пропал свет*, раздел улетает в никуда.... щас до 6.2 обновлюся, посмотрим что будет.... иль искать альтернативу буду....
netcat, 2007-12-18 в 19:16:59
выключал аварийно специально, раза 3. Тьфу-тьфу проблем не возникло
bbb, 2007-12-20 в 13:00:10
Товарищи! Это поля для ввода комментариев статье, а не для вопросов. Сюда пишите найденные баги, или какие-то фичи :)
Для вопросов есть форум!!!!
bbb, 2007-12-20 в 13:00:42
ГыГы
lissyara, 2007-12-20 в 14:21:43
Ну а товарищщу 91.76.4.173 юзающему оперу под виндой ХР и инет от стрима, а также посещающему ресурс anastasia.mybb2.ru, я бы посоветовал не выкаблучиваться. =)
smilealex, 2007-12-20 в 14:33:29
Лиссяра - респект! )))
netcat, 2007-12-20 в 18:01:10
а кто это - 91.76.4.173 ? :)) Еще и с Оперой.
dyer, 2008-01-15 в 20:55:09
По тексту (не скрипта - там-то все ясно) не совсем очевидно что после geli attach можно спокойно убирать флэшку в сейф. :)
toptyg, 2008-01-21 в 21:25:53
хех меня вот больше тесты скорости работы и стабильность интересовали :)
DeNIS_1974, 2008-12-15 в 9:15:33
Вот столкнулся с проблемой. Прикупил винт на 750 гиг, присунул в систему FreeBSD 7.0. Сделал раздел на нем ad1s1c, натравил geli. Вроде бы все проинициализировалось и присоединилось. А вот при создании файловой системы - нифига. Из /dev/random ничего не писалось, перед созданием ФС. Я подумал, что можно и без него обойтись. И файловая система тоже несоздалась. Может у кого есть конструктивные идеи ?
netcat, 2009-03-06 в 15:42:31
ad1s1c раздела по определению быть не может.
DeNIS_1974, 2009-03-07 в 10:26:52
Уважаемый netcat, Вы заставили меня засомневаться ... вот листинг :
$ ls /dev/ad*
/dev/ad0 /dev/ad0s1a /dev/ad0s1c /dev/ad1s1
/dev/ad0s1 /dev/ad0s1b /dev/ad1 /dev/ad1s1c
Почему не может, если его создал сисинсталл? При пересоздании fdisk-ом было тоже. Но есть еще способ создания ФС ... нагуглил в инете ... там newfs запускается с ключем -n, хотя могу и попутать. Просто винт заполнен и с ним экперементировать не хочется, буду новый покупать наверное на тер, с ним позаморачиваюсь. При переходе на 7.1 проблема не исчезла.
netcat, 2009-03-07 в 10:40:49
Вы еще больше засомневаетесь, когда в шелле наберете man disklabel, в частности обращаю Ваше внимание на следующие строки - SAVED FILE FORMAT
The bsdlabel utility uses an ASCII version of the label when examining,
editing, or restoring a disk label. The format is:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 81920 16 4.2BSD 2048 16384 5128
b: 1091994 81936 swap
c: 1173930 0 unused 0 0 # "raw" part, don't edit
netcat, 2009-03-07 в 12:03:27
А если хотите сделать свою Фрю полностью на GELI с загрузкой с FLASH'ки (ключами доступа-паролями к fs). Если не лень будет статью напишу. У меня уже 3 сервера в таком режиме год работают. Полет нормальный :)
DeNIS_1974, 2009-03-07 в 12:22:48
Ну ... было бы интересно посмотреть, повторить, модифицировать под себя.
DeNIS_1974, 2009-03-07 в 18:39:20
Опс .... в мануале я увидел одну комманду ... disklabel -w /dev/ad-такой то ... блин ... и запустил ее. Появился /dev/ad1s1a так же как и остался /dev/ad1s1c. Машину перегрузил, все осталось на месте. Хотя disklabel говорит что оба слайса без сисемы(ФС). Надо будет почитать мат часть по внимательней ... может еще что нить интересное найду. Надо бы это уже в ветку форума перенести ...
fox, 2009-04-15 в 15:05:51
Добрый день! Это всё круто, но всё же как сделать что бы при загрузке системы Фри сама всё дела паоль вводила и так далие а если в друг чего я сервер парканул выдернул флешку и ушёл) ??? Нужен скрипт как автоматом пароль вводить???
lissyara, 2009-04-15 в 15:11:28
Вы, простите, в своём уме?
Смысл шифровать что-то, если сервер сам будет пароль вводить?
netcat, 2009-04-15 в 15:21:56
Ну для этого можно отказаться от использования пароля (GELI это позволяет). Смысл некий есть, ключ то все-равно используется, но зато теряется некий процент "секьюрности"
lissyara, 2009-04-15 в 17:02:38
настоятельный совет - не забывать про это
dd if=/dev/random of=/dev/ar0s1g.eli bs=1m
можно и /dev/zero юзать, не суть.
иначе получите файловую систему которую не сможетп роверить fsck, и, возможно с ошибками.
причина - размер до проведения этой операции точно не известен.
fox, 2009-04-16 в 2:10:52
Спасиба за наставления, глубоко уважаемые! Но пароль нужен и нужно что бы сам его вводил а пароль в файлеке лежал флешке, флешку я забрал и всё нет пароля нет ключей, а у ровень безопастности с паролем выше!!! И к стате когда я делаю вот это: dd if=/dev/random of=/dev/ar0s1g.eli bs=1m
то он это не длает он вот что отвечает:
[root@fortero ~]# dd if=/dev/random of=/dev/ad1s1d.eli bs=1m
dd: /dev/ad1s1d.eli: Operation not permitted
1+0 records in
0+0 records out
0 bytes transferred in 0.081596 secs (0 bytes/sec)
мне кажетса он не доделывает что то?
И всё же буду очень блогадарен за скрипты которые автоматом монтируют при наличие флешки с ключами и паролем в теикстишном файле...
Спасиба за внимание!)
netcat, 2009-04-16 в 16:31:08
Уровень безопасности по сути своей зависит от длины ключа, а не от того, какой у тебя пароль к ключу, учитывая, что он лежит у тебя на сервере в открытом виде. Смысла тогда в пароле нету никакого, поэтому в man geli в attach нету такой опции, что логично. Даже при варианте шифрования корневой ФС - /boot у тебя все-равно будет на флешке, с ключами и открытым паролем ? Смысл в пароле ?
netcat, 2009-04-16 в 16:34:09
lissyara
По большому счету достаточно добавить count=1 а потом newfs, чтобы время не терять :)
lissyara, 2009-04-16 в 16:47:43
Нет. попробуй сделать файловую систему после count=1 и прогнать по ней fsck
потом снова сделай с затиранием всего раздела - и снова запусти fsck
Увидишь именно то о чём я и говорил.
Надо полностью диск/раздел затирать.
netcat, 2009-04-16 в 17:26:49
Делал. На сервере с 5EE-RAID полезной емкостью HDD в Террабайт (уж не стал мучать террабайт dd). Только fsck должен понять сначала с какой файловой системой ему работать.На то и newfs.
lissyara, 2009-04-16 в 17:28:11
Сдаётся мне - что нет...
Отмонтируй ФС и запусти fsck
вывод - сюда (всё равно больше 64k не влезет =))
netcat, 2009-04-16 в 17:52:31
Ну хорошо. Хозяин-барин :) Щас
netcat, 2009-04-16 в 17:56:39
[17:57 alex@crypto /home/alex]% df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/aacd0.elia 2.0G 130M 1.7G 7% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/aacd0.elid 9.6G 2.1G 6.7G 24% /home
/dev/aacd0.elie 19G 382M 17G 2% /usr
/dev/aacd0.elif 19G 13G 4.7G 73% /var
/dev/aacd0.elig 2.0G 773M 1.1G 42% /tmp
/dev/aacd0.elih 861G 341G 451G 43% /crypto
172.17.2.200:/usr/ports 14G 2.0G 11G 15% /usr/ports
172.17.2.200:/twed0data/distfiles 451G 261G 154G 63% /home/alex/distfiles
[17:57 alex@crypto /home/alex]% su
Password:
[17:58 root@crypto /home/alex]# umount -f /tmp
[17:59 root@crypto /home/alex]# fsck -yf /dev/aacd0.elig
** /dev/aacd0.elig
** Last Mounted on /tmp
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
5655 files, 197771 used, 317004 free (192 frags, 79203 blocks, 0.0% fragmentation)
[17:59 root@crypto /home/alex]#
Ну вот...
lissyara, 2009-04-16 в 17:58:00
хм.. удивительное рядом.
почему же у меня так не получается =)
netcat, 2009-04-16 в 18:38:01
Попробуй так...
[18:34 root@crypto /home/alex]# dd if=/dev/zero of=/dev/aacd0.elig bs=1m count=1
1+0 records in
1+0 records out
1048576 bytes transferred in 0.024977 secs (41981716 bytes/sec)
[18:35 root@crypto /home/alex]# newfs -O2 -b 4096 -U /dev/aacd0.elig
/dev/aacd0.elig: 2048.0MB (4194304 sectors) block size 4096, fragment size 4096
using 39 cylinder groups of 53.50MB, 13697 blks, 3440 inodes.
with soft updates
super-block backups (for fsck -b #) at:
144, 109720, 219296, 328872, 438448, 548024, 657600, 767176, 876752, 986328, 1095904, 1205480, 1315056, 1424632, 1534208,
1643784, 1753360, 1862936, 1972512, 2082088, 2191664, 2301240, 2410816, 2520392, 2629968, 2739544, 2849120, 2958696,
3068272, 3177848, 3287424, 3397000, 3506576, 3616152, 3725728, 3835304, 3944880, 4054456, 4164032
[18:38 root@crypto /home/alex]# fsck -yf /dev/aacd0.elig
** /dev/aacd0.elig
** Last Mounted on
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
2 files, 2 used, 515765 free (0 frags, 515765 blocks, 0.0% fragmentation)
[18:38 root@crypto /home/alex]# mount /dev/aacd0.elig /tmp
[18:39 root@crypto /home/alex]# ls -lh /tmp
total 8
drwxrwxr-x 2 root operator 512B 16 ЮОП 18:38 .snap
[18:39 root@crypto /home/alex]#
salimk, 2009-11-24 в 13:40:12
а если сделать вот так:
geli init -P -s 4096 -K /mnt/ar0s1g.key -e Blowfish -a hmac/sha512 -l 384 /dev/ar0s1g
то тогда не будет запрашиваться "passphrase"
а в /etc/rc.conf можно добавить вот это
geli_enable="YES"
geli_devices="ar0s1g"
geli_amrd3s1a_flags="-p -k /mnt/ar0s1g.key"
тогда ar0s1g будет атачится самостоятельно
а так статья отличная то что нужно
DLRex, 2010-01-23 в 11:54:36
на этаве ввода команды
dd if=/dev/random of=/dev/ar0s1g.eli bs=1m
dd: /dev/ad1s1d.eli: Operation not permitted
1+0 records in
0+0 records out
0 bytes transferred in 0.081596 secs (0 bytes/sec)
и при создании файловой системы в консоль вылазят ошибки. Если проверку по sha не включать то хотя бы можно создать файловую систему и дальше работать. Как это исправить?
Lumpen, 2010-03-22 в 16:20:19
Ошибки fsck вылазят если включать проверку целостности, так что если использовали при создании ключ -a, то нужно делать
# dd if=/dev/zero of=/dev/XX.eli bs=1m
без контроля же достаточно
# dd if=/dev/zero of=/dev/XX.eli bs=1m count=1
BlackJaguar, 2011-05-19 в 10:02:54
замечено, что при перемещении файла ключа подмонтированный шифрованный том остается, поэтому решено написать такой скрипт:
[code]
#!/bin/sh
if [ -f /da0/mykey.key] then
else
reboot
fi
[/code]
Если ключа нет - перегружаем систему. Удобно. Прибежали маски-шоу - флешку за борт и спокоен как питон :)
хандбук по GEOM ELI (руссищ)
fox, 2011-05-19 в 18:11:18
Конечно спокойны как питон, пальцы в дверь засунут, сам раскажешь, кто когда и где?)))))
netcat, 2011-05-19 в 21:33:52
Щас почки опускать в моде. Это очень старая статья - сейчас один из серверов - backup работает с флешки с kernel и ключом к GELI (RAID 5EE полезной ёмкостью в 3Тб).
Минусы - большая нагрузка на процессор и дисковую подсистему в пиковую активность резервного копирования. Плюсы - сервер без флешки и пароля к ключу представляет полностью кучу шифрованного мусора (при условии его ребута).
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [36 шт.]