Zašifrování LVM
September 20, 2007 on 5:59 pm | In Linux |Mimo svého notebooku mám ještě jedno starší PC, které jsem “kdysi dávno” běžně používával. Aby jen tak neleželo v komoře, tak jsem se rozhodl ho zužitkovat na kolejích jako “server” (diskový prostor, routing vnitřní sítě, VPNko a další služby). Jako dárek k jeho znovuvyužítí dostal novou skřín (stará už silně nevyhovovala, byla skřivená snad úplně všude a měla málo prostoru na pevné disky ) a dva 320GB SATA disky.
LVM - Linux volume manager
Koupil jsem dva disky jenom proto, že cenově toto řešení vyšlo levněji než koupit jeden velký 640 GB disk a s vědomím, že je budu moci pomocí LVM spojit do jednoho virtuálního oddílu. Popisovat vytváření LVM oddílů není mým cílem - různych tutoriálů je po celém webu plno, takže stačí použít strýčka google nebo pročíst příslušné manuálové stránky.
Co už se ovšem moc často neprobírá je bezpečnost. Na disku bude plno dat a určite se mezi nimi najdou i data důvěrná. Takže co s tím? No přeci šifrování, o kterém jsem již psal a které na notebooku bežně používám. Jsou dva způsoby jak LVM zašifrovat - první (a jednodušší) je normálně vytvořit LVM mapování, oddíly a zašifrovat až výsledný (výsledné) filesystém(y). Vlastní struktura LVM zůstane nezašifrovaná a všechna uchovávaná metadata budou normálně čitelná pro kohokoliv - i když ten kdokoliv jen pozná jak jsou disky rozděleny, samotná data už nepřečte. Drůhým způsobem je zašifrování fyzických disků, na kterých se LVM bude vytvářet - a tedy i znečitelnění metadat (=bežným pohledem na disk nezjistíte jak je rozdělen). No a asi úplně nejbezpečnějším řešením je využít oba dva způsoby a zašifrovat úplně všecho, každý disk/filesystém/mapování a to raději jinou šifrou a jiným heslem. Ať žije paranoia!
Jak na to
Jak jsem již zmínil na počátku - nehodlám vysvětlovat co je a jak se používá LVM - to si prosím přečtěte někde jidne. Já se zaměřím na popis jak vše funkčně zašifrovat. Moje výchozí prostředí vypadalo takto - dva SATA disky jako /dev/sda a /dev/sdb a na nich vytvořena jedna velká partition přes celý disk. Tuto partition jsem zašifroval nějak takto:
cryptsetup -c twofish luksFormat /dev/sda1
cryptsetup -c blowfish luksFormat /dev/sdb1
Seznam šifer, které má vaše jádro a tedy i Vy k dispozici lze získat čtením souboru /proc/crypto. Pro další práci se disky musí otevřít:
cryptsetup luksOpen /dev/sda1 storage1
cryptsetup luksOpen /dev/sdb1 storage2
Je-li vše v pořádku, tak se v /etc/mapper/ vytvoří dvě bloková zařízení - storage1 a storage2. Až na těchto se bude vytvářet LVM.
pvcreate /dev/mapper/storage1 /dev/mapper/storage2
vgcreate storage /dev/mapper/storage1
vgextend storage /dev/mapper/storage2
lvcreate -L640BG -ndata storage
Opět neobjevila-li se nějaká chyba, tak vznikne nové blokové zařízení, tentokráte /dev/storage/data, které se může dále zašifrovat.
cryptsetup -c aes luksFormat /dev/storage/data
cryptsetup luksOpen /dev/storage/data storage-encrypted
A to je v podstatě vše. Takto mám na “serveru” jednu velkou partition, kde mohu ukládat veškerá svá data a která je oproti nepovolaným očím chráněna dvěmi postupnými šifrováními. Kež by to bylo chráněno na 100%…
Mount
Asi Vám dojde jak nepříjemné musí být připojování, když jsou disky takto chráněny. Už na použití prvního mountování jsem si raději napsal script, který vše postupně otevře a připojí (samozřejmě se také zeptá na příslušná hesla).
#!/bin/bash
# Script pro mountovani sifrovanych partition a jejich mountovani
echo ">>> Oteviram sifrovany disk: /dev/sda1"
cryptsetup luksOpen /dev/sda1 storage1
echo ">>> Oteviram sifrovany disk: /dev/sdb1"
cryptsetup luksOpen /dev/sdb1 storage2
echo ">>> Aktivuji LVM mapovani"
vgscan --mknodes
vgchange -ay
echo ">>> Oteviram sifrovany LVM 'storage'"
cryptsetup luksOpen /dev/storage/data storage-encrypted
echo ">>> Pripojuji storage do /home/storage"
mount -t auto /dev/mapper/storage-encrypted /home/storage
Epilog
Jen tak pro zajimavost - šifry použité v příkladech jsem si sice nevymyslel (opravdu existují), ale garantuji, že je takto na discích nepoužívám
.
1 Comment »
RSS feed for comments on this post. TrackBack URI
Leave a comment
Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds.
Valid XHTML and CSS. ^Top^
omfg
Comment by JR — 2007-09-20 #