自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用DM-Crypt加密Linux文件系統(tǒng)?

譯文
系統(tǒng) Linux 系統(tǒng)運維
文件系統(tǒng)(file system)是指你目錄的布局,包括/dev目錄之類的目錄,表示不同的硬件設備,實際上并不指代磁盤驅動器上的文件。而“filesystem”指的是管理文件和目錄的軟件。本文介紹如何為Linux實施一種文件系統(tǒng)加密方法。

[[143392]]

讀者經常詢問我們的一個常見問題是,如何為Linux實施一種文件系統(tǒng)加密方法。在深入探討這個話題之前,我想要闡明兩點:

首先,很難在網上找到這方面足夠多的信息。于是,我會向大家介紹幾個好不容易找到的確實很棒的資源(實際上是幾篇教程)。

其次,明白這個問題的技術細節(jié)很重要。這也是我在本文中所要探討的,之后我會介紹如何實現(xiàn)加密,然后介紹其他資源。

人們時常說想要加密數(shù)據(jù),但是他們常常忽視了一個根本的方面:他們到底想對什么進行加密?他們是想從軟件包里面對數(shù)據(jù)進行加密,然后將該數(shù)據(jù)存儲到硬驅上的單個文件中?比如說,他們是想讓LibreOffice創(chuàng)建整個.odt文字處理文檔,對它進行加密,然后將加密的結果作為單個文件寫入到文件系統(tǒng),就像下圖那樣?還是說他們想讓Linux在文件系統(tǒng)層面自行處理加密?

 

一種方法就是從軟件包里面加密數(shù)據(jù),然后將該數(shù)據(jù)存儲到硬驅上的單個文件中。或者Linux會在文件系統(tǒng)層面自行處理加密。

以Linux處理加密事務為例,LibreOffice除了讀取和寫入文件外,什么也不做,就像它目前所做的那樣。Linux會加密文件,然后將文件實際寫入到磁盤上,解密后回過頭來讀取文件。這是我在這里采取的方法,但是你還要提出另外許多問題。想要提出合適的問題,你就要明白塊存儲的工作原理。不妨先看一下塊存儲。

塊級存儲

操作系統(tǒng)處理本地驅動器時,操作系統(tǒng)使用filesystem軟件來格式化驅動器,然后讀取并寫入單個扇區(qū)。保存文件時,filesystem軟件弄清楚需要寫入的扇區(qū)。讀取文件時,filesystem會弄清楚數(shù)據(jù)在哪些扇區(qū)上,然后讀取那些扇區(qū),為你重構文件。想管理文件,filesystem使用不同類型的索引,它將這些索引也存儲在磁盤上。不同的filesystem軟件使用不同的方式來組織數(shù)據(jù),還包括不同的安全機制;最終結果就是有了不同的文件系統(tǒng),比如ext4和NTFS。

底層細節(jié)

我們已交待清楚了塊級設備的工作原因,不妨考慮這個:操作系統(tǒng)使用其filesystem軟件,將數(shù)據(jù)扇區(qū)寫入到驅動器。filesystem軟件確定將數(shù)據(jù)扇區(qū)寫入到何處、如何組織它們,包括創(chuàng)建描述文件名稱、組織方式等信息的元數(shù)據(jù)。但是filesystem軟件為了執(zhí)行實際讀取并寫入到驅動器的操作,就需要有設備驅動程序來做實際控制設備本身的工作,如下圖的左邊所示(驅動程序在/dev目錄里面的文件系統(tǒng)層次結構中已有表示)。

 

filesystem軟件能夠在寫入數(shù)據(jù)之前進行加密。或者,位于filesystem軟件與設備驅動程序之間的某個軟件能進行加密。

就在filesystem軟件與設備驅動程序之間的這個點,加密方面需要做出選擇:你是想讓filesystem軟件進行加密,然后寫入數(shù)據(jù)呢?還是說,我們實際上將一個軟件嵌入到filesystem軟件與設備驅動程序之間怎么樣?這樣一來,filesystem會像平常那樣運轉,但是當它試圖訪問設備時,其調用改而由加密軟件來處理,如上圖的右邊所示。我們在本文中要采用這種方法。不過先不妨談論另外幾個問題。

順便說一下,如果你想看看設備驅動程序在Linux系統(tǒng)的/dev目錄中如何存在,可以參閱本文:http://www.linuxdevcenter.com/pub/a/linux/2007/07/05/devhelloworld-a-simple-introduction-to-device-drivers-under-linux.html?page=1。它包括編程方面,但是如果你不是編程員,就點擊到第2頁,向下滾動鼠標,找到標為Hello, World! Using /dev/hello_world的章節(jié),閱讀第一段,上面作了具體細致的解釋。)

如果你想加密整個分區(qū),可以考慮加密整個驅動器。不過這里存在一個小問題。如果計算機從該驅動器啟動,驅動器就需要一個小小的分區(qū)專門用于存放啟動代碼。該啟動代碼是機器代碼,計算機讀入后執(zhí)行,才能啟動計算機。如果整個硬驅經過了加密,包括這部分數(shù)據(jù),計算機就需要某種方式來解讀數(shù)據(jù)。但是計算機還沒有裝入文件系統(tǒng),所以它沒法讀取解密它的程序。看到問題之所在了嗎?解密代碼需要在BIOS本身里面。但是大多數(shù)計算機沒有這種代碼。而這意味著啟動記錄其實無法被加密。不過人們已經討論了解決這個問題的種種方法(參閱:http://www.linuxquestions.org/questions/linux-security-4/full-disk-encryption-on-boot-partition-626270/),比如把啟動代碼放在可移動USB驅動器上面。

遠程驅動器

如果你的驅動器是遠程驅動器,有幾種方法可以訪問數(shù)據(jù);這對于你了解可以使用哪種類型的加密很重要。兩種方法是:

•塊級存儲就像使用本地驅動器那樣,因而你的filesystem軟件可以讀取并直接寫入到遠程磁盤上的扇區(qū)。

•文件級存儲,你的操作系統(tǒng)將文件發(fā)送到遠程服務器,遠程服務器有自己的操作系統(tǒng)和filesystem軟件;該遠程服務器進而將文件寫入到其磁盤上。

如果是文件級存儲,你在加密方面沒有太多的選擇。如果你想加密數(shù)據(jù),就需要在你的應用程序中加密它,然后將數(shù)據(jù)發(fā)送到遠程服務器上存儲起來。

但如果是塊級遠程存儲,確實有幾個辦法。比如說,如果你使用云托管服務,因而你能將不同的卷連接到分配的服務器,你通??梢允褂脡K級存儲。卷未必物理連接到你的托管服務器;不過,服務器可以訪問它們,好像它們就是本地卷那樣,并且格式化卷,讀取和寫入單個扇區(qū),就好像驅動器是本地掛載的。這意味著,如果是塊級遠程存儲,你可以在文件系統(tǒng)層面執(zhí)行加密,就好像在本地計算機和本地驅動器上執(zhí)行加密那樣。

軟件

       現(xiàn)在我們知道了想要完成的任務;問題是,你該如何實現(xiàn)呢?事實上,Linux內置了一個軟件包,使用我之前介紹的那種方法,即把軟件嵌入到filesystem軟件與設備驅動程序之間。該軟件名為dm-crypt。而dm-crypt可以加密數(shù)據(jù),然后使用一種名為LUKS的存儲格式,將數(shù)據(jù)寫入到存儲設備(通過設備驅動程序)上。

LUKS(Linux統(tǒng)一密鑰設置)是驅動器本身上面所用的格式,它實際上用來取代ext4之類的文件系統(tǒng)。dm-crypt系統(tǒng)位于filesystem軟件與設備驅動程序之間; filesystem軟件讀取和寫入ext4,而ext4數(shù)據(jù)通過dm-crypt加以推送,然后dm-crypt將數(shù)據(jù)以LUKS格式存儲到驅動器上。因而,實際上ext4或NTFS之類的文件系統(tǒng)就在經過加密的LUKS格式的“上面”。

請注意:dm-crypt是子系統(tǒng)的名稱,你可以使用諸多工具來處理它。沒有名為dm-crypt的單個命令。你可以使用一些程序來管理dm-crypt:

cryptsetup:這個命令行程序為你提供了底層訪問權,以便管理創(chuàng)建dm-crypt管理的設備這一任務。

cryptmount:這個程序提供了更多的功能特性,更易于使用一點,具體可參閱幾年前的這篇文章:http://www.enterprisenetworkingplanet.com/netsecur/article.php/3742191/Create-Encrypted-Volumes-With-Cryptmount-and-Linux.htm。

其他功能特性

dm-crypt系統(tǒng)的一個優(yōu)點在于,它沒必要直接處理磁盤驅動程序。相反,它可以將所有數(shù)據(jù)保存到單個文件中,而不是使用LUKS和整個磁盤分區(qū)。這就意味著,你可以讓dm-crypt創(chuàng)建單個文件,然后你可以在單個文件里面創(chuàng)建整個文件系統(tǒng)。之后,你可以將該單個文件作為單獨的驅動器來掛載,然后從任何軟件來訪問它,就像你對待其他任何驅動器那樣。

云驅動器

由于一些云服務提供商(比如亞馬遜網絡服務)為你提供了全面的根訪問權,可以訪問連接到你服務器的塊設備,你可以充分利用dm-crypt;可以用LUKS格式來格式化塊設備,然后將它準備用于你的dm-crypt系統(tǒng);之后,你完全可以用ext4文件系統(tǒng)來格式化它。最終結果就是完全加密的驅動器駐留在云端,你可以自行管理這個驅動器。想不想試一試?這篇教程就介紹了使用cryptsetup程序來加密:http://silvexis.com/2011/11/26/encrypting-your-data-on-amazon-ec2/。

另外一些云服務提供商不像AWS那樣讓你可以直接訪問塊設備。比如說,Digital Ocean就不允許你直接訪問;不過你仍可以創(chuàng)建一個文件,安裝dm-crypt來使用那個文件,然后在文件里面創(chuàng)建一個所謂的“容器”,它代表了文件系統(tǒng)。實際上,這個過程與你在自己的本地機器上創(chuàng)建一個加密的容器文件如出一轍。這里有一篇出自Digital Ocean網站的教程:https://www.digitalocean.com/community/tutorials/how-to-use-dm-crypt-to-create-an-encrypted-volume-on-an-ubuntu-vps,介紹了創(chuàng)建dm-crypt LUKS容器文件。在該教程中要注意:就像使用塊設備那樣,你可以創(chuàng)建整個文件系統(tǒng)(比如ext4),不過在這里,該文件系統(tǒng)駐留在容器文件里面。

本地驅動器

而這就引出了我們如何在本地實現(xiàn)這一切的話題。在亞馬遜上創(chuàng)建加密驅動器的上述教程涉及的步驟與在你自己的硬驅上本地創(chuàng)建加密驅動器一個樣。不過另一篇教程(https://www.howtoforge.com/tutorial/how-to-encrypt-a-linux-partition-with-dm-crypt-luks/)給出了逐步的說明,以便在你自己的硬驅上本地創(chuàng)建,它也使用cryptsetup。

如果你想創(chuàng)建一個本地容器驅動器,含有整個經過加密的文件系統(tǒng),只要遵循上面Digital Ocean教程中的步驟即可。

或者,如果你想使用另一個程序cryptmount來加密整個分區(qū)或創(chuàng)建容器文件,請關注這篇教程:http://www.enterprisenetworkingplanet.com/netsecur/article.php/3742191/Create-Encrypted-Volumes-With-Cryptmount-and-Linux.htm。作者Carla Schroder給出了幾個明確的步驟。

結束語

就是這樣。想知道如何加密,重要的一點是先要完全了解你實際上試圖完成什么任務:讓應用程序加密和解密數(shù)據(jù),還是讓操作系統(tǒng)處理加密;是加密整個分區(qū),還是僅僅加密個別文件;是不是想創(chuàng)建保存加密文件的容器。之后,你可以遵照我在本文中給出鏈接的幾個教程中提到的步驟,順利完成加密。

 

 

責任編輯:火鳳凰 來源: 51CTO
相關推薦

2012-07-05 10:06:13

2018-12-10 09:00:00

Linux加密分區(qū)dm-crypt

2012-07-18 13:07:14

加密文件系統(tǒng)Wi-Fi防火墻

2018-05-02 08:35:33

LinuxTripwire文件系統(tǒng)

2012-07-05 09:52:06

EFS文件加密

2020-10-29 08:34:48

Linux - tmp

2009-12-10 09:42:07

2019-01-29 10:43:59

Linux 系統(tǒng) 數(shù)據(jù)

2011-01-13 14:10:30

Linux文件系統(tǒng)

2010-03-16 14:42:16

linux環(huán)境

2009-12-14 13:33:31

linuxramdisk文件系統(tǒng)

2019-03-04 14:40:46

Linux文件系統(tǒng)修復

2020-07-22 14:53:06

Linux系統(tǒng)虛擬文件

2010-11-04 10:16:11

inotify監(jiān)控Linux文件系統(tǒng)

2009-11-06 10:05:18

Linux系統(tǒng)環(huán)境GFS

2021-06-06 16:55:22

Linux文件系統(tǒng)

2021-04-12 05:44:44

Linux文件系統(tǒng)

2010-03-05 17:43:00

Linux XFS文件

2010-03-02 13:27:17

LinuxXFS文件系

2010-03-05 17:20:23

Linux XFS文件
點贊
收藏

51CTO技術棧公眾號