Използване на Cryptomator за криптиране на облачен диск в Linux. Добавяне на криптиране към Ubuntu Ubuntu криптиращи дялове по време на инсталацията


Автор: Нитиш Тивари
Дата на публикуване: 04 февруари 2015 г
Превод: Н. Ромоданов
Дата на превод: март 2015 г

TrueCrypt вече не се поддържа, но dm-crypt и LUKS са чудесни опции с отворен код за криптиране и използване на криптирани данни.

Сигурността на данните се превърна в един от най-големите притеснения сред интернет потребителите. Новините за кражба на данни от уебсайтове станаха много чести, но защитата на вашите данни не е отговорност само на уебсайтовете, има много неща, които ние като крайни потребители можем да направим за собствената си сигурност. Например, само няколко примера - използвайте силни пароли, шифровайте твърди дискове, които се намират на нашите компютри и използват защитени връзки. По-специално, криптиране харддиске в добър смисълсигурност - тя не само ще ви предпази от всякакви троянски коне, които се опитват да откраднат вашите данни през мрежата, но и от физически атаки.

През май тази година разработката на TrueCrypt, добре известен инструмент за криптиране на дискове с отворен код, спря разработката. Както много от вас знаят, това беше един от много надеждните инструменти, предназначени за криптиране на дискове. Тъжно е да видим как инструмент от такъв калибър изчезва, но величието на света с отворен код е такова, че има няколко други инструмента с отворен код, които могат да ви помогнат да постигнете сигурност с дисково криптиране, което също има много опции за конфигуриране. Ще разгледаме два от тях - dm-crypt и LUKS - като алтернативи на TrueCrypt за Linux платформата. Нека започнем с бърз поглед върху dm-crypt и след това LUKS.

Това е основна информация за устройство, използващо LUKS, посочваща какво криптиране се използва, режима на криптиране, алгоритъма за хеширане и други криптографски данни.

Ресурси

Стъпка 01:Като се има предвид Dm-crypt

Името на приложението dm-crypt е съкращение от device mapper-crypt. Както подсказва името, той се основава на картографиране на устройства, рамка на ядрото на Linux, предназначена да картографира блокови устройства към виртуални блокови устройства от по-високо ниво. Когато картографирате устройства, можете да използвате няколко функции на ядрото, като dm-cache (създава хибридни томове), dm-verity (предназначена да проверява целостта на блока, част от Chrome OS), а също и много популярния Docker. За криптографски цели dm-crypt използва Crypto API рамката на ядрото на Linux.

И така, за да обобщим, приложението dm-crypt е подсистема за криптиране на ниво ядро, която предлага прозрачно криптиране на диска: това означава, че файловете са достъпни веднага след монтирането на диска - няма видимо забавяне за крайния потребител. За да шифровате с помощта на dm-crypt, можете просто да посочите един от симетричните шифри, режима на шифроване, ключа (с всеки валиден размер), режима на генериране на IV и след това да създадете ново блоково устройство в /dev. Сега всяко писане на това устройство ще бъде криптирано и всяко четене ще бъде декриптирано. Можете да монтирате файлова система на това устройство, както обикновено, или можете да използвате устройството dm-crypt, за да създадете други дизайни, като например RAID или LVM том. Таблицата за търсене на dm-crypt се дефинира, както следва:

Тук началният сектор обикновено е 0, размерът е размерът на устройството в сектори, а целевото име е името, което искате да дадете на криптираното устройство. Таблицата за картографиране на цели се състои от следните раздели:

[<#opt_params> ]

Стъпка 02:Имайки предвид LUKS

Както вече видяхме в предишната стъпка, приложението dm-crypt може да криптира/декриптира данни самостоятелно. Но има няколко недостатъка - ако използвате директно dm-crypt, той няма да създаде метаданни на диска и това може да бъде сериозен проблем, ако искате да осигурите съвместимост между различните Linux дистрибуции. В допълнение, приложението dm-crypt не поддържа използването на множество ключове, докато в реални ситуации е много важно да се използват множество ключове.

Поради тези причини се роди техниката LUKS (Linux Unified Key Setup). LUKS е стандартът за криптиране на Linux твърди дисковеи стандартизацията позволява съвместимост между различни дистрибуции. Използването на множество ключове и пароли също се поддържа. Като част от тази стандартизация към криптираните данни се добавя LUKS хедър и този хедър съдържа цялата информация, необходима за конфигуриране. Когато има такъв хедър с данни, потребителите могат лесно да преминат към всяка друга дистрибуция. Проектът dm-crypt понастоящем препоръчва използването на LUKS като предпочитан начин за конфигуриране на дисково криптиране. Нека да разгледаме как да инсталирате помощната програма cryptsetup и как да я използвате за създаване на базирани на LUKS томове.

Стъпка 03:Инсталация

Функционалността на ниво ядро, използвана в dm-crypt, вече присъства във всички Linux дистрибуции; имаме нужда само от интерфейс към тях. Ще използваме помощната програма cryptsetup, с която можете да създавате томове с помощта на dm-crypt, стандарта LUKS, както и доброто старо приложение TrueCrypt. За да инсталирате cryptsetup на дистрибуции на Debian/Ubuntu, можете да използвате следните команди:

$ sudo apt-get update $ sudo apt-get install cryptsetup

Първата команда синхронизира ракетните индексни файлове със съдържанието на техните хранилища: тя получава информация за най-новите версиивсички налични пакети. Втората команда ще изтегли и инсталира пакета cryptsetup на вашия компютър. Ако използвате дистрибуция RHEL/Fedora/CentOS, можете да използвате командата yum, за да инсталирате помощната програма cryptsetup.

$ yum инсталирайте cryptsetup-luks

Стъпка 04:Създаване на целеви файл

След като помощната програма cryptsetup е инсталирана успешно, трябва да създадем целеви файл, който ще съхранява контейнера LUKS. Въпреки че има много начини за създаване на такъв файл, има редица условия, които трябва да бъдат изпълнени при създаването му:

  • Файлът не трябва да се състои от няколко части, разположени на различни места на диска, т.е., когато го създавате, трябва незабавно да заделите достатъчно количество памет за него.
  • Целият файл трябва да бъде попълнен с произволни данни, така че никой да не може да каже къде ще бъдат разположени данните, използвани за криптиране.

Командата dd може да ни помогне да създадем файл, който отговаря на горните условия, въпреки че ще бъде относително бавна. Просто го използвайте със специален файл на устройство /dev/random, посочен като вход и целеви файл, посочен като изход. Примерна команда изглежда така:

$ dd if=/dev/random of=/home/nitish/basefile bs=1M count=128

В резултат на това в директорията /home/nitish ще бъде създаден файл с име basefile с размер 128 MB. Все пак, имайте предвид, че изпълнението на тази команда може да отнеме доста време; в системата, използвана от нашия експерт, това отне един час.

Стъпка 05:Създайте dm-crypt LUKS

След като създадете целевия файл, трябва да създадете LUKS дял в този файл. Този раздел служи като основен слой, върху който се изгражда цялото криптиране на данни. В допълнение, заглавката на този раздел (LUKS заглавка) съдържа цялата информация, необходима за съвместимост с други устройства. За да създадете LUKS дял, използвайте командата cryptsetup:

$ cryptsetup -y luksFormat /home/nitish/basefile

След като се съгласите, че данните в базовия файл ще бъдат изтрити за постоянно, въведете паролата и след това я потвърдете, дялът LUKS ще бъде създаден. Можете да проверите това със следната файлова команда:

$filebasefile

Моля, обърнете внимание, че фразата, която въвеждате тук, ще бъде използвана за дешифриране на данните. Много е важно да запомните това и да го съхранявате на сигурно място, защото ако го забравите, почти сигурно ще загубите всички данни в шифрования дял.

Стъпка 06:Създайте и монтирайте файловата система

Контейнерът LUKS, който създадохме в предишната стъпка, вече е достъпен като файл. В нашия пример това е /home/nitish/basefile. Помощната програма cryptsetup ви позволява да отворите контейнера LUKS като независимо устройство. За да направите това, първо съпоставете контейнерния файл с името на устройството и след това монтирайте устройството. Командата за показване изглежда така:

След като въведете успешно паролата, която сте създали в предишната стъпка, контейнерът LUKS ще бъде картографиран към volume1. Това, което всъщност се случва, е, че файлът се отваря като локално устройство за обратна връзка, така че останалата част от системата вече може да третира файла, сякаш е истинско устройство.

Стъпка 07:Файлова система - продължение

Контейнерният файл LUKS вече е достъпен в системата като обикновено устройство. Преди да можем да го използваме за нормални операции, трябва да го форматираме и да създадем файлова система върху него. Можете да използвате всяка файлова система, която се поддържа от вашата система. В моя пример използвахме ext4, защото това е най-новата файлова система за Linux системи.

$ mkfs.ext4 -j /dev/mapper/volume1

След като устройството бъде успешно форматирано, следващата стъпка е да го монтирате. Първо трябва да създадете точка на монтиране, за предпочитане в /mnt (въз основа на здравия разум).

$mkdir/mnt/файлове

Сега да монтираме:

За кръстосана проверка използвайте командата df –h - ще видите устройството "/dev/mapper/volume1" в края на списъка с монтирани устройства. Вижда се, че заглавната част на LUKS вече заема място в устройството.

Благодарение на тази стъпка вече можете да използвате устройството LUKS с файлова система ext4. Просто използвайте това устройство за съхраняване на файлове - всичко, което пишете на това устройство, ще бъде криптирано и всичко, което прочетете от него, ще бъде декриптирано и показано на вас.

Стъпка 08:Използване на криптирано устройство

Следвахме няколко стъпки, за да постигнем този резултат и ако не сте много наясно как работи всичко, най-вероятно ще се объркате какво трябва да направите само веднъж (необходимо за инсталиране) и какво трябва да правите редовно, когато използвайки криптиране. Нека разгледаме следния сценарий: Успешно сте изпълнили всички стъпки по-горе и след това сте изключили компютъра си. На следващия ден, когато стартирате компютъра си, не можете да намерите монтираното устройство - къде отиде? За да разберете всичко това, трябва да имате предвид, че след стартиране на системата трябва да монтирате контейнера LUKS и преди да спрете компютъра, да го демонтирате.

За да получите достъп до вашия LUKS файл, направете следното всеки път, когато включите компютъра си, и след това безопасно затворете файла, преди да изключите компютъра си:

Отворете файла LUKS (т.е. /home/nitish/basefile) и въведете паролата. Командата изглежда така:

$ cryptsetup luksOpen /home/nitish/basefile volume1

След като файлът е отворен, монтирайте го (ако не се монтира автоматично):

$ монтиране /dev/mapper/volume1 /mnt/files

Сега можете да използвате монтираното устройство като обикновен диск и да четете или записвате данни на него.

След като сте готови, демонтирайте устройството, както следва:

$ umount /mnt/файлове

След успешно демонтиране затворете файла LUKS:

$cryptsetup luksClose том1

Стъпка 09:Архивиране

Повечето загуби на данни, съхранени в LUKS контейнер, се дължат на повреда на LUKS заглавката или ключовите слотове. В допълнение към факта, че дори поради случайно пренаписване на хедър в паметта, LUKS хедърите могат да бъдат повредени, в реални условия е възможен и пълен отказ на твърдия диск. Най-добрият начин да се предпазите от подобни проблеми е архивиране. Нека да видим какви резервни опции са налични.

Да създам резервно копие LUKS заглавен файл, посочете параметъра luksHeaderBackup в командата:

$ sudo cryptsetup luksHeaderBackup /home/nitish/basefile --header-backup-file /home/nitish/backupfile

Или, ако искате да възстановите файл от резервно копие, посочете параметъра luksHeaderRestore в командата:

$ sudo cryptsetup luksHeaderRestore /home/nitish/basefile --header-backup-file /home/nitish/backupfile

За да проверите заглавния файл на LUKS и да се уверите, че файлът, с който работите, съответства на действително устройство LUKS, можете да използвате параметъра isLuks.

$ sudo cryptsetup -v isLuks /home/nitish/basefile

Вече видяхме как да архивираме LUKS заглавни файлове, но LUKS заглавно архивиране всъщност няма да защити срещу пълна повреда на диска, така че ще трябва да архивирате целия дял, като използвате следната команда cat:

$ cat /home/nitish/basefile > basefile.img

Стъпка 10:Различни настройки

Има няколко други настройки, които могат да бъдат полезни при използване на dm-crypt LUKS криптиране. Нека ги разгледаме.

За да изхвърлите заглавката LUKS, командата cryptsetup има опцията luksDump. Това ще ви позволи да направите моментна снимка на заглавния файл LUKS на устройството, което използвате. Примерна команда изглежда така:

$ cryptsetup luksDump /home/nitish/basefile

В началото на тази статия споменахме, че LUKS поддържа множество ключове. Нека видим това в действие сега, като добавим нов слот за ключ ( Бележка на преводача: ключов слот - ключово пространство):

$ cryptsetup luksAddKey --Ключ-слот 1 /home/nitish/basefile

Тази команда добавя ключ към слот за ключ номер 1, но само след като въведете текущата парола (ключът присъства в слот за ключ 0). Има общо осем слота за ключове и можете да дешифрирате данни, като използвате всеки ключ. Ако изхвърлите заглавката след добавяне на втория ключ, ще видите, че вторият слот за ключ е зает.

Можете да премахнете слотовете за ключове по този начин:

$ cryptsetup luksRemoveKey /home/nitish/basefile

Това ще премахне слота за ключ с най-висок номер на слот. Внимавайте да не изтриете всички слотове, в противен случай вашите данни ще бъдат загубени завинаги.

Това е единственият надежден начинзащита на информацията в условия, при които е възможен физически достъп на неоторизирани хора до компютъра. Парола за стартиране на всяка операционна система - Windows, Linux или Mac OS - може да ви спаси само от деца. Всеки специалист може да заобиколи защитата с парола за няколко минути - приблизително същото време, необходимо за поставяне на флаш устройство в компютър и зареждане на вашата операционна система от него.

Но криптираните данни се отварят много по-трудно. Или дори невъзможно без цифров ключ или парола. Разбира се, има различни алгоритми за криптиране и в рамките на тези алгоритми има различни параметри - всичко това влияе върху устойчивостта на хакване. Когато използвате слаби алгоритми или уязвими параметри, можете да получите достъп до криптирани файлове и папки. Но като цяло можем да приемем, че криптирането е надеждна защита на данните.

Най-често срещаният начин за защита на данните е криптирането на файлове. На диска се създава криптирана папка и в нея се записват файлове. Теоретично това е надеждно, ако се използва AES алгоритъм, ключовете са дълги. Но остава неочевидна уязвимост на данните с този метод на криптиране. Факт е, че операционната система остава незащитена. И това дава възможност на атакуващия да се инсталира в системата специална програма, (keylogger, rootkit), които ще се стартират при стартиране на ОС и ще проследяват действията на потребителя и по този начин рано или късно атакуващият ще получи паролата или ключов файлза достъп до криптирани папки и файлове. Или ще може сам да получи тези данни, след като потребителят отвори шифрования файл.

Това означава, че наистина силната защита на данните на диска не е криптиране. отделни файловеи папки, но целия раздел. Освен това, за надеждна защитаИзисква се криптиране на целия диск. Нищо не трябва да остава „на повърхността“. Тази статия ще предостави инструкции как да създадете криптиран системен дяли диск в Linux Ubuntu OS.

Шифрованата файлова система в Linux се поддържа на ниво ядро ​​на операционната система. Тоест, не е нужно да търсите някаква фантазия криптографски програмиНещо повече, използването на криптирани Linux дялове е прозрачно - потребителят не трябва да знае нищо за криптирането и не трябва да прави нищо, за да криптира своите файлове и папки.

За да създадете надеждна криптирана система за Linux, трябва да разберете кои части от тази система трябва да бъдат защитени. Има четири от тях:

  • Системна област - означава се като коренили / .
  • Област на зареждане - означена като /зареждане коренпод формата на папка.
  • Област с потребителски данни - означава се като /У дома. Може да бъде разположен на отделна преграда или на преграда коренпод формата на папка.
  • Област на виртуалната памет - означава се като размяна. Най-често се намира на отделна преграда, но може да бъде разположена и на преграда коренкато файл.

Всички тези зони трябва да бъдат защитени.

Статията ще обсъди опростена конфигурация - размянаИ /зарежданена отделни секции и коренИ /У домакомбинирани в една секция. Но за по-сложни случаи технологията за защита ще бъде същата.

С зонално криптиране корен, размянаИ /У доманяма затруднения, но със защита /зарежданеИма проблем. Факт е, че от тази област системата за зареждане на системата стартира initrd и Linux ядро. Ако тази област е криптирана, тогава буутлоудърът няма да може да стартира ядрото и съответно стартирането на ОС ще бъде невъзможно. Тоест криптирайте /зарежданеневъзможно е, но също така е невъзможно да го оставите отворен, защото в този случай ще бъде възможно да замените ядрото с друго, съдържащо злонамерен код, който ще прихване паролата за декриптиране на диска.

Решението е поставянето на секция /зарежданена сменяем носител, на флаш устройство. Флашката ще е някаква електронен ключкъм системата. Без него стартирането на ОС от криптиран диск ще бъде невъзможно. Тоест защита на дяла /зарежданеизвършено на физическо ниво- премахване от компютъра.

По този начин обща схемазащитата е:

  • Раздели корен, размянаИ /У домаразположен на напълно криптиран твърд диск.
  • Глава /зарежданеразположени на преносим носител.

Шифрованата инсталация на Ubuntu ще се извърши с помощта на Ubuntu Live. Защо на живо? В края на краищата алтернативната дистрибуция ви позволява да правите същото, без да танцувате с тамбура, има опции за криптиране в инсталатора. Лично аз не харесвам факта, че Alternate е изключително инсталационна дистрибуция, не може да се използва по друг начин - нито за диагностика, нито за работа. Освен това алтернативният инсталатор работи в конзолата и това е някак архаично в 21 век. И така, на живо.

Тази инструкция се отнася за две версии на LTS 10.04 и 12.04, и в двата случая всичко се прави по същия начин. Въпреки че е тестван на практика само на тези две версии, той трябва да работи и на други.

След като изтеглите на Live, ще ви е необходима интернет връзка, тъй като версиите на Live нямат пакета lvm2 - ще трябва да го изтеглите и инсталирате. И така, инструкциите са стъпка по стъпка.

Инсталиране на LVM

Установете интернет връзка. След това изпълнете две команди:

sudo apt-get актуализация
sudo apt-get install lvm2

Можете да изтеглите предварително, да запишете на флаш устройство или диск пакетите libdevmapper-event, lvm2, watershed и след това да ги инсталирате с командата dpkg. Но на последния етап все още ще се изисква интернет.

Подготовка на твърдия диск и флашката

Трябва да създадете един празен дял на вашия твърд диск, който не е разделен във файловата система. Форматът на диска може да бъде MS-DOS или GPT - няма значение. Този раздел ще служи като крипто контейнер.

Трябва също да създадете един дял на флашката, но с файлова система Ext3.

Шифроване на системния диск

Криптирането на цял дял на твърд диск се извършва с командата:

sudo cryptsetup --cipher aes-xts-plain --key-size 512 --verify-passphrase luksFormat /dev/sda1

Важна забележка.

Тази команда ще издаде заявка и за да я потвърдите трябва да въведете думата ДА, точно така, с главни букви. Тази заявка се прави, за да се уверите, че клавиатурата ви е активирана. английски език! След това ще трябва да въведете паролата два пъти. Тази фраза трябва да е дълга и да не съдържа често повтарящи се знаци. В идеалния случай това трябва да е произволен набор от букви и цифри. По-добре е да измислите тази фраза предварително, дори преди да започнете работа по създаването на системата.

Когато въвеждате ключова фраза, в терминала няма да се показват знаци, така че трябва да пишете внимателно. Но фразата ще бъде поискана два пъти, така че ако направите грешка, програмата ще я докладва.

След успешно създаванекриптоконтейнер, за по-нататъшна работа трябва да свържете този криптиран диск:

sudo cryptsetup luksOpen /dev/sda1 криптиран

Тази команда ще ви подкани за паролата, въведена в предишната команда.

Създаване на криптирани дялове

Следващият етап е създаването на криптирани секции в крипто контейнера LUKS. Механизмът LVM се използва за създаване на тези дялове.

sudo pvcreate /dev/mapper/crypted
sudo vgcreate ubuntu /dev/mapper/crypted
sudo lvcreate -L 2600M -n swap ubuntu
ssudo lvcreate -l 100% БЕЗПЛАТНО -n root ubuntu
sudo mkswap /dev/mapper/ubuntu-swap
sudo mkfs.ext3 /dev/mapper/ubuntu-root

Забележка.

Размерът на суап дяла трябва да бъде приблизително 30% по-голям от размера оперативна памет. Основният дял е поне 5-7 гигабайта.

Инсталиране на Ubuntu на криптирано устройство

След като създадете криптираните дялове, трябва да стартирате инсталатора, чийто пряк път е на работния плот. Инсталацията е нормална, важно е само да демонтирате флашката, където ще пише /boot, преди да стартирате инсталатора, и правилно да посочите дяловете за инсталация.

Трябва да отговорите с „Да“ на това искане. Това е флашка, където ще трябва да инсталирате /boot дяла. Тази заявка ще бъде издадена, ако забравите да демонтирате флаш устройството, преди да стартирате инсталатора.

И свържете секциите така:

Шифрованите дялове за инсталация на Ubuntu са /dev/mapper/ubunu-root, /dev/mapper/ubunu-swap. /boot дяла на флаш устройството (това е sdb1).

В прозореца на инсталатора, на стъпка 8, трябва да щракнете върху бутона „Разширени“ и да се уверите, че програмата за зареждане ще бъде инсталирана на флаш устройството:

В Ubuntu 12.04 и двата дяла и буутлоудъра са в един прозорец:

След това в прозореца на стъпка 8 трябва да щракнете върху бутона „Инсталиране“ и да изчакате инсталацията да завърши. След като инсталацията приключи, инсталаторът ще ви подкани да рестартирате компютъра си. Не можете да рестартирате!Трябва да останете в Live Ubuntu. Факт е, че в инсталираните HDD Ubuntu няма пакет lvm2, което означава, че зареждането на системата от твърдия диск няма да е възможно.

Инсталиране на LVM на твърд диск

За да инсталирате lvm2 на прясно инсталиран Ubuntu на вашия твърд диск, трябва да изпълните следните команди:

sudo mount /dev/mapper/ubuntu-root /mnt
sudo mount /dev/sdb1 /mnt/boot
sudo mount -o bind /dev /mnt/dev
sudo mount -t proc proc /mnt/proc
sudo mount -t sysfs sys /mnt/sys

sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
sudo chroot /mnt /bin/bash
echo "crypted UUID=$(ls -la /dev/disk/by-uuid | grep $(basename /dev/sda1) | cut -d " " -f 9) none luks" >> /etc/crypttab
apt-get актуализация
apt-get инсталирате cryptsetup lvm2
изход

Бележка 1.Вместо това в Ubuntu 12.04 cut -d " " -f 9трябва да пиша cut -d " " -f 11! Освен това препоръчвам след командата echo ... /etc/crypttab да изпълните командата cat /etc/crypttab, за да проверите дали редът е написан правилно:

Бележка 2.След предпоследната команда ще има съобщения за грешка, можете да ги игнорирате.

Сега можете да рестартирате компютъра си и да използвате инсталирания криптиран Ubuntu. Разбира се, в BIOS трябва да посочите зареждане от флашката, където е инсталиран /boot дял!

В Ubuntu, инсталиран по този начин, можете дори да използвате режим на хибернация, без да се страхувате, че съдържанието на паметта, изхвърлено на диска, ще стане достъпно за нападател.

Бележка 1

Важно е да се разбере, че дори при такова пълно криптиране остават уязвимости.

  • Първо, трябва да запазите ключовата фраза в тайна. Ако го запишете на листче и го залепите на монитора, не е добре. Ако нападател получи паролата, той ще може да отвори вашия криптиран диск с помощта на която и да е дистрибуция на Live Linux.
  • Второ, трябва да защитите стартиращото USB флаш устройство на физическо ниво. Не я оставяйте без надзор. Изключете компютъра - извадете флаш устройството и го поставете на безопасно място.
  • Трето, не трябва да го оставяте без надзор. включеникомпютър. Когато компютърът е включен, както шифрованият диск, така и стартиращото USB флаш устройство са налични.

Също така трябва да разберете, че криптирането е защита за времето, когато компютърът ви е изключен и вие не сте наоколо. Но когато работите на компютър, все още е възможно някой да влезе в компютъра ви. зловреден софтуерот Интернет. Такива програми могат да „откраднат“ вашата информация, докато използвате компютъра и интернет.

Ето защо е важно да се вземат общи предпазни мерки. Не се лутайте никъде в интернет. Не инсталирайте непроверени програми. Използвайте защитна стена. И за по-сериозни изисквания за сигурност трябва да използвате tcbИ SELinux.

Бележка 2

Направи копие стартиращо флаш устройство, най-лесният начин е с командата дд. Запишете това изображение на друго флаш устройство или на лазерен диск. Копие на друга флашка е по-удобно, защото, ако е необходимо, можете да го използвате веднага. Но във всеки случай това копие, независимо на какво е, ще трябва да се съхранява на сигурно място. И след като актуализирате ядрото или буутлоудъра, ще трябва да актуализирате копие на флаш устройството.

Иван Сухов, 2012г

При написването на тази статия е използвана информация от публикация в

Семененко В.

Когато инсталирате операционната система Ubuntu, може да не мислите за настройка на криптиране на данни в нея. Или може да има ситуация, в която добавяте потребител към системата, без да шифровате неговата домашна директория. Но сега променихте решението си и решихте да конфигурирате защитата за тази директория. С други думи, вие (или друг потребител на компютъра) искате да имате опция, която в момента не съществува...

Създаване на криптиран дял в Ubuntu

Как можете да добавите възможности за криптиране към вече инсталирана система Ubuntu Linux?

За щастие е доста лесно за изпълнение. За да направите това, просто следвайте три основни стъпки:

  • създайте криптирано копие на вашата домашна директория;
  • изтрийте оригиналната некриптирана начална директория;
  • шифровайте суап дяла (извършва се само веднъж, при инсталиране на системата Ubuntu или по време на стъпка по стъпка изпълнение на това ръководство).

Действията, описани в тази статия, бяха извършени на напълно актуализирана система Ubuntu Precise 12.04.

Подготовка

Поради текуща грешка в Ubuntu Linux, не можете да влезете, ако графиката на прозореца за влизане е в шифрованата начална папка на потребителя. Ако потребител е променил кожата по подразбиране, уверете се, че тя също не се намира в домашната папка на потребителя.

Създаването на криптирано копие на домашната директория на потребителя е сигурна процедура. Струва си обаче да се отбележи, че за изпълнението на тази задача е необходимо определено количество пространство на твърдия диск. Ако откриете, че има твърде малко място, трябва да създадете резервно копие на вашите данни, след това да изтриете всички големи файлове от него (например филми) и да ги възстановите от това копие, след като криптирането приключи. Обикновено препоръчвам да архивирате всичките си данни, за да предотвратите потенциални проблеми.

Използвайки любимия си мениджър на пакети, инсталирайте програмата encrypt-utils.

Шифроване

IN това ръководствоЩе използвам полето за влизане като потребителско име, чиито данни ще се използват за извършване на действия. Трябва да го замените с името на потребителя, чиято домашна директория ще бъде шифрована.

Рестартирайте Ubuntu Linux и отидете в „Режим на възстановяване“ ( Режим на възстановяване). Малък съвет - докато системата започва да се зарежда, натиснете и задръжте клавиша Shift, за да отворите менюто Grub. Обикновено редът „Режим на възстановяване“ се намира на второ място отгоре в списъка на този буутлоудър.

В менюто за режим на възстановяване изберете „Изпускане“, за да се появи подкана командна линияЗа сметкакорен.

За да коригирате софтуерната грешка, спомената в началото на тази статия, въведете следните две команди:

монтиране --опции remount,rw /
монтиране --всички

Сега можете да създадете криптирано копие на домашната директория на потребителя на пади. За да направите това, въведете командата по-долу. В същото време си направете труда да запомните собствената си парола, тъй като тази помощна програмаще го изисква за извършване на операцията:

Когато процесът на криптиране приключи, ще видите няколко предупреждения. Можете да ги игнорирате. Но ще трябва да запомните пътя до временната папка, създадена от тази команда. Ще изглежда така: /home/paddy.ChPzzxqD

В този случай последните осем знака (след точката) са случаен набор. Тази директория ще ви е необходима в следващите стъпки „Завършване“ или „Връщане към първоначалното състояние“, които ще бъдат обсъдени по-късно.

Рестартирайте вашата Ubuntu Linux система. За да направите това, въведете командата: Рестартирай сега

Въвеждането и изпълнението на командата може да отнеме няколко секунди, така че бъдете търпеливи.

Завършване

Влезте в Ubuntu по обичайния начинкакто правеше всеки път. Проверете дали всичко работи както преди.

Ако нещо не е наред, можете незабавно да отидете на елемента „Връщане към първоначалното състояние“.

Ако всичко в системата работи добре, завършете последните стъпки.

Отворете терминал и въведете командата за изтриване на временната директория. За да направите това, ще трябва да запомните пътя до временната папка, която е създадена при шифроването на вашата домашна директория.

sudo rm -R /home/paddy.ChPzzxqD

Възстановете данните, които сте изтрили (ако има такива) в стъпката „Подготовка“.

Отворете отново терминал и въведете командата за шифроване на суап дяла. Ако вече сте имали потребител с конфигурирано криптиране на домашната директория, можете спокойно да пропуснете тази стъпка: sudo ecryptfs-setup-swap

Рестартирайте отново.

Връщане към първоначалното състояние

Ако процесът на криптиране е завършен с грешки, ще трябва да повторите предишните стъпки отново.

Изпълнете командите:

монтиране --опции remount,rw /
монтиране --всички
ecryptfs-migrate-home --user paddy

След това въведете командата, за да видите съдържанието на временната папка, създадена по време на процеса на криптиране. За да направите това, отново ще трябва да запомните пътя до него. Не трябва да се появяват грешки. Ако се появят, ще имате нужда от помощ.

ls -l /home/paddy.ChPzzxqD

Сега завършете процеса на нулиране, като изпълните три команди:

cd /дом
rm -R пади .ecryptfs/пади
мв пади.ChPzzxqD

Рестартирайте отново.

Надявам се, че горните стъпки са ви помогнали. Ако имате неразрешени проблеми, можете да публикувате заявка в моята нишка във форума на Ubuntu.

Режим на заспиване по време на криптиране

Повечето потребители често се чудят защо операционна система Ubuntu не влиза в хибернация след предишни операции (описани по-рано в тази статия) и как мога да възстановя тази функция. Причината е конфигурираното криптиране. Ако сте конфигурирали криптиране за вашата домашна директория, суап дялът също е криптиран, но с помощта на произволен ключ. Когато поставите системата в режим на хибернация, RAM данните се съхраняват в суап дяла и се криптират с произволен ключ. Когато системата бъде възстановена от режим на заспиване, ключът, който е бил използван за шифроване на суап дяла, вече е загубен безвъзвратно и системата не може да чете този раздел. Съответно данните не могат да бъдат извлечени и връщането към предишното състояние не е възможно.

Ако вашата система не е конфигурирана да криптира дялове, тогава възстановяването на способността за хибернация в Ubuntu е лесно. За да направите това, просто изпълнете командите: ls -l /home/paddy.ChPzzxqD
rm -R пади .ecryptfs/пади

Но ако системата криптира домашния дял на потребителя и суап дяла, е необходимо да замените криптирането на суап дяла не с произволен ключ, а с предварително избрана парола.

Все пак, имайте предвид, че всеки потребител на компютъра ще трябва да знае тази парола, когато системата се зарежда.

Опитах този метод и в двата случая - както на обикновена система Ubuntu 12.04, така и на система Ubuntu, инсталирана на виртуална машина VirtualBox. В последния случай имаше проблеми с показването на екрана при възобновяване от режим на заспиване. Но на обикновена система всичко работи добре.

Подготовка

Въведете следната команда в терминала: крипта за състоянието на sudo cryptsetup размяна 1

В резултат на това ще видите ред, указващ устройството, което изглежда по следния начин: /dev/sda1

или /dev/sdb5

Това устройство е суап дялът на вашата система. Запомнете го, тъй като ще ви трябва по-късно.

Когато правите промени в системата, винаги препоръчвам да направите пълно архивиране на вашите данни. В нашия случай също ще бъде полезно.

Настройка на режим на заспиване

Въведете следните команди. Уверете се, че сте заменили устройството /dev/sdXN с вашия суап дял, създаден в раздела „Подготовка“. Когато въвеждате команди, трябва стриктно да се придържате към определената последователност:

sudo swapoff /dev/mapper/cryptswap1
sudo cryptsetup luksClose /dev/mapper/cryptswap1
sudo cryptsetup luksFormat cipher aes cbc essiv:sha256 проверка на паролата размер на ключа 256 /dev/sdXN

ВНИМАНИЕ!
========
Това ще презапише безвъзвратно данните в /dev/sda1.
Сигурен ли си? (Въведете главни букви да): ДА
Въведете парола за LUKS:
Проверете паролата:
sudo cryptsetup luksOpen /dev/sdXN cryptswap1

Въведете паролата за устройството /dev/sda1 (и я повторете, за да избегнете правописни грешки):

sudo mk размяна/dev/mapper/crypt размяна 1
sudo swapon всички
swapon s

Последната команда ще покаже името на файла на устройството /dev/crypt swap 1 .

Отворете файла с настройки /etc/crypttab в предпочитания от вас редактор. Заменете линията crypt swap 1 със следното (не забравяйте да замените /dev/sdXN с вашето суап устройство): cryptswap1 /dev/sdXN няма лукс

Сега редактирайте файла /usr/share/initramfstools/scripts/local-top/cryptroot. Намерете реда в него (обикновено е с номер 288, но може да се промени): съобщение "cryptsetup: неизвестна грешка при настройване на картографиране на устройство"

Преминете към следващия празен ред(преди FSTYPE=") и вмъкнете нов ред (като не забравяте да замените /dev/sdXN устройството): /sbin/cryptsetup luksOpen /dev/sdXN crypt размяна 1

Редактирайте файла /etc/acpi/hibetnate.sh. В първия празен ред въведете стойността: УСТРОЙСТВО="/dev/mapper/crypt размяна 1"

Редактирайте файла /etc/initramfstools/conf.d/resume. Заменете съществуващия ред със следното: RESUME=/dev/mapper/crypt размяна 1

След това редактирайте файла /etc/polkit1/localauthoriyt/50-local.d/com.ubuntu.enable-hibernate.pkla. Файлът първоначално не съществува, така че ще трябва първо да го създадете. След това добавете редовете към него:
Идентичност=unixuser:*
Действие=org.freedesktop.upower.hibernate
ResultActive=да

Накрая отворете терминал и въведете следната команда: sudo актуализира initramfs u k всички

Рестартирайте.

Използване на режим на заспиване

В последствие стартиране на Ubuntu Linux ще ви помоли за нова парола за размяна. Въведете го и нормалният процес на влизане ще продължи.

Борбата срещу пиратството набира нова скорост; притежателите на авторски права и правителствените агенции удвояват усилията си по този труден въпрос. Вярвам, че всеки от нас е мислил за защита на личните си файлове от посегателства от „неочаквани гости“ и просто от твърде любознателни хора.

Въведение

Ще шифроваме дисковете стандартни средства Ubuntu и ключът за шифроване, като /boot дяла, ще бъде поставен на сменяемо хранилище. Но защо да криптирате основния дял? В крайна сметка можете да шифровате само /home? Причините за това са няколко. Първо, въз основа на конфигурационните файлове, можете да извлечете някаква информация от /etc, дори и да не са поверителни данни. Второто е, че ако внезапно се заинтересуват от съдържанието на диска, винаги можете да кажете, че всичко се е случило така и че дискът вече е пълен с псевдослучайни данни. И така, какво ще отнеме?

  • Флашка с MBR
  • Ubuntu 12.10
  • Празен твърд диск

Ще използваме AES като алгоритъм за криптиране на диска, тъй като е приет като стандарт и е криптоустойчив, и cryptsetup/LUKS като средство. За да можем да добавим свободно място върху криптиран том, ние използваме логически томове (LVM).

Създаване на криптиран том

След като стартирате от LiveCD, трябва да подготвите флаш устройство: създайте втори дял върху него, където ще се намират /boot и ключът за шифроване. Създавайки /boot дял с ext2 FS секундата, ние убиваме две птици с един камък - първият дял ще бъде видим във всички системи и можете да съхранявате данни в него, но вторият дял от Windows не може да се види толкова лесно, което създава неудобство за любопитните. За разделянето използвах gparted, но никой не ви пречи да използвате например fdisk. След това трябва да монтирате новосъздадения дял и да генерирате ключов файл:

Защо да четете един байт наведнъж? Факт е, че наборът от произволни числа в ядрото е сравнително малък и не винаги съдържа достатъчно количество произволни данни, така че по време на генерирането местите мишката на случаен принцип.


Нека да видим какво прави тази команда. Първият ключ указва типа хеш функция, която ще се използва за хеширане на главния ключ. Вторият ключ определя алгоритъма и типа на криптиране. На това ще се спра малко по-подробно. Какво е CBC? Както знаете, AES е блоков шифър, който работи в блокове от 128, 192 или 256 бита. Но по правило много по-големи обеми информация са криптирани. И възниква проблемът - как да се криптира, така че да не се вижда неслучайното разпределение, от което криптоаналитик да извлече информация. Умните хора го решиха по следния начин: първият блок съдържа IV - произволен набор от битове. И всеки следващ блок от отворени данни е XOR’d с предишния блок от вече криптирани данни. Всичко изглежда наред, но в случай на криптиране на диска такава схема по очевидни причини не е приложима (няма да чакате 10-20 минути всеки път, докато системата дешифрира секцията, от която се нуждаете?). В LUKS ESSIV се използва за решаване на проблема с произволния достъп до информация - сравнително малки блокове от данни се криптират (сектор по сектор), а векторът за инициализация се генерира въз основа на номера на сектора и хеша на ключа. Тази схема предпазва и от някои крипто атаки. Ето защо използвам LUKS. Потвърждаване на вашите намерения след стартиране предишна команда, създайте картографиране на LUKS устройство:

# cryptsetup -d=/mnt/boot/key.bin luksOpen /dev/sdd криптодиск

Първият етап от подготовката е завършен - сега устройството за криптодиск се появява в директорията /dev/mapper, което може да се третира като обикновен диск.


Създаване на LVM върху криптиран том

По принцип вече можете да инсталирате Ubuntu на новосъздадения крипто диск, но както вече писах, за да можете да увеличите пространството, е по-добре да създадете LVM том върху него, което ще направим направи. Нека инициализираме физическия том и създадем група томове:

Сега можете да ги форматирате файлови системи. Вие сте свободни да изберете сами, но аз използвах добрия стар ext4 както за root тома, така и за vg-home - според мен вече сме отишли ​​твърде далеч, за да използваме по-нови файлови системи:

Всичко, което трябва да направим, е да инсталираме Ubuntu на некриптиран дял/диск и да го прехвърлим на криптиран.

Подготовка и мигриране на Ubuntu

Сега инсталирайте Ubuntu на некриптиран диск - направете конфигурацията по ваш вкус, с изключение на поставянето на /boot и буутлоудъра. Те трябва да бъдат поставени на флашка, където предварително сте създали съответния дял. След това зареждаме от флаш устройството, за да проверим дали всичко е инсталирано правилно, инсталираме пакетите lvm2 и cryptsetup с помощта на apt-get - те бяха премахнати автоматично след инсталиране на Ubuntu - и добавяме/променяме редовете в /etc/fstab. Трябва да получите нещо подобно (с изключение на редовете с псевдофайлови системи, които обаче модерни системиНе):

/etc/fstab UUID = dd7ca139 - 074a - 4b1b - a116 - 3a42feab7459 / boot ext2 по подразбиране 0 2 / dev / mapper / vg - root / ext4 грешки = remount - ro 0 1 / dev / mapper / vg - home / home ext4 по подразбиране 0 1 /dev/mapper/vg - swap няма swap sw 0 0

Ние монтираме дяла /boot чрез UUID, така че при добавяне на нови дискове да няма объркване с техните имена. Сега отиваме във файла /etc/crypttab, той има приблизително следното съдържание:

Нека създадем скрипт, за да не се налага отново да монтираме флаш устройството:

Копирайте ключа и настройката на криптата

cp / boot / key .bin $ ( DESTDIR ) / etc / crypto copy_exec / sbin / cryptsetup / sbin

И действителният скрипт за свързване на криптодиска (изпълнен по време на зареждане initrd):

/etc/initramfs - инструменти/скриптове/локални - горе/криптоключове. . . modprobe - b dm_crypt докато ! /sbin/cryptsetup - d=/etc/crypto/key .bin luksOpen /dev/disk/by - uuid /c34e4c91 - 1fa1 - 4802 - 88ca - 9c3be5c99097 криптодиск; do echo "Опитайте отново..." готово

Цикълът while е необходим, ако по-късно добавите отключване с парола на тома. И двата скрипта трябва да са изпълними, в противен случай следващата команда няма да ги види и ще създаде стандартно изображение. Сега можете да подадете командата initrd update:

# актуализиране initrd -u -k всички -v

Почти забравихме за конфигурацията на буутлоудъра. Има два начина за редактиране: единият е прост, но неправилен - директно редактиране на файла /boot/grub/grub.cfg, вторият също е прост, но този път правилен. Неправилността на първия метод е, че всеки път, когато ядрото се актуализира, конфигурацията се пренаписва с помощта на скриптове от /etc/grub.d/. Ние ще тръгнем по друг начин - ще добавим скрипт, който ще генерира правилните редове в реалната конфигурация на Grabov. Има обаче едно „но“ - когато актуализирате ядрото, ще трябва или да го променяте всеки път, или да останете със старото (последното според мен е за предпочитане - вижте страничната лента). Ето как изглеждат репликите му:

/etc/grub.d/40_custom menuentry "Ubuntu crypto" ( recordfail = 1 if [ - n $ ( have_grubenv ) ] ; тогава save_env recordfail ; fi set тих = 1 insmod part_msdos insmod ext2 insmod gzio

UUID се взема от предварително записан файл

търсене -- не - дискета -- fs - uuid -- set = root dd7ca139 - 074a - 4b1b - a116 - 3a42feab7459

/boot дялът за Grub се счита за основен дял, така че пътищата до ядрото и initrd изображението са посочени спрямо него

Ако желаете, можете да изключите ненужните елементи от менюто. За да направите това, просто премахнете разрешението за изпълнение от всички ненужни скриптове в /etc/grub.d/. Сега можете да актуализирате основната конфигурация:

След копиране можете да опитате да стартирате от флаш устройството - просто изберете елемента от менюто Ubuntu crypto. Ако всичко е минало добре, след известно време ще видите подкана за влизане. В този случай мога да ви поздравя - вече работите в криптирана система.


Добавяне/смяна на ключове

Да приемем, че трябва да промените ключа - компрометирали сте го или просто сте създали политика за промяна и искате стриктно да я следвате. Какво е необходимо за това? Първо, направете резервно копие на заглавката на тома LUKS - ако всичко върви добре, след промяна на ключа можете да го унищожите. Правим го, разбира се, на некриптиран дял:

Разглеждаме текущите слотове за ключове (местата в хедъра на криптирания том, където се съхраняват ключовете - да, да, може да има повече от един) и запомняме активния номер (Enabled). Обикновено това е нула.


Не разбирам Canonical. Изглежда, че на 23 август преминахме замразяването на нови функции FeatureFreeze, а на 30 август преминахме замразяването външен вид UserInterfaceFreeze. Какво всъщност виждаме? В инсталатора Ubiquity вече има способността да криптира цялата системаи в Unity Greeter добавя мрежов индикатор и функция за влизане в мрежата.

Шифроване на целия Ubuntu по време на инсталацията.

Както можете да видите, Canonical е внедрил дисково криптиране в графичния инсталатор на Ubiquity, за да подсили сигурността на Ubuntu 12.10 Quantal Quetzal. Подобна функционалност беше налична преди това само в Alternate CD, но както знаете, Canonical планира да изостави алтернативните дискове.

Ако изберете „Шифроване нова инсталация Ubuntu за сигурност" ("Шифроване новотоИнсталация на Ubuntu за сигурност"), тогава в следващата стъпка ще трябва да въведете ключовете за шифроване.

Освен това за допълнителна сигурностИма опция за презаписване на празното дисково пространство, но това ще удължи процеса на инсталиране.

Не забравяйте, че всички файлове извън инсталацията на Ubuntu не са криптирани!В бъдеще новите дискове и новите дялове няма да бъдат криптирани по подразбиране и трябва да запомните това.

И не бъркайте криптирането на всички дялове на Ubuntu с криптирането на папката Home!

Мрежа Unity Greeter и начален екран.

Има някои малки козметични промени с Unity Greeter. Прозорецът за добре дошли стана по-широк и по-близо до центъра. Заоблените ъгли направиха цялостната визия визуално по-мека. Шрифтът, показващ потребителското име, е леко намален. Поддържайки общия стил, полето за въвеждане на парола беше подчертано в фин оранжев цвят. Списъкът с достъпни за вас сесии се промени, вместо „прост списък“ вече има „бутони“.

Заедно с горните промени, разработчиците добавиха мрежов индикатор.

Следователно, когато влизате, можете лесно да деактивирате интернет връзкаили прегледайте текущото състояние на мрежата, за да се уверите, че влизането в мрежата е възможно.

Съдейки по официални списъципромени, ние се подготвяме да въведем възможности за влизане в мрежата в Unity Greeter в близко бъдеще.

Вълшебната лампа вече е активирана по подразбиране.

Ефект за възстановяване на прозорец, известен като Genie или Magic Lamp, беше наличен в Compiz преди, но в Ubuntu 12.10 ще бъде активиран по подразбиране.