如何在Linux上借助eCryptFS加密文件和目錄?
譯文你沒必要非得是犯罪分子或者為情報部門效力,才使用加密技術(shù)。你根本不希望有誰暗中窺視自己的財務(wù)數(shù)據(jù)、家庭照片、尚未發(fā)表的手稿,或者是你在上面隨手寫下的,可能讓自己一夜爆富的創(chuàng)業(yè)想法的秘密便條。
我曾聽人這樣說過“我又不是什么重要人士,所以不會被窺視”,或者“我沒有什么重要的東西好隱藏的”。我的看法是,即便沒有任何東西好隱藏的,或者即便可以發(fā)布孩子與愛犬在一起的照片,我還是有權(quán)不這么做,目的是為了保護自己的隱私。
加密的類型
我們基本上有兩種不同的方法可以對文件和目錄進行加密。一種方法是,文件系統(tǒng)級加密,只有某些文件或目錄(比如/home/alice)選擇性地加密。在我看來,這是一種理想的入門方法。你沒必要重新安裝一切來啟用或測試加密。不過,文件系統(tǒng)級加密存在一些缺點。比如說,許多現(xiàn)代的應(yīng)用程序?qū)⑽募?或文件的部分內(nèi)容)緩存在硬盤中的未加密區(qū)域,比如交換分區(qū)、/tmp和/var文件夾,它們會導(dǎo)致隱私泄密。
另一種方法是所謂的全磁盤加密,這意味著整個磁盤都經(jīng)過了加密(主引導(dǎo)記錄可能除外)。全磁盤加密在物理磁盤層面實現(xiàn);寫入到磁盤上的每個比特數(shù)據(jù)都經(jīng)過了加密,從磁盤讀取的任何數(shù)據(jù)自動實時解密。這可以防止任何人可能未經(jīng)授權(quán)就訪問未加密的數(shù)據(jù),并且確保整個文件系統(tǒng)里面的所有數(shù)據(jù)都經(jīng)過了加密,包括交換分區(qū)或任何臨時緩存的數(shù)據(jù)。
可用的加密工具
在Linux中實施加密機制有幾種辦法。我在本教程中將介紹一種選擇:eCryptFS堆疊加密文件系統(tǒng)工具。下面整理出了幾種可用的Linux加密工具,僅供參考。
文件系統(tǒng)級加密
•EncFS:這是嘗試加密的最容易的方法之一。EncFS作為堆疊文件系統(tǒng)來運行,所以你只要創(chuàng)建一個加密的文件夾,將它掛載到文件夾上即可使用。
相關(guān)鏈接:http://www.arg0.net/encfs
•eCryptFS:作為一款與POSIX兼容的加密文件系統(tǒng),eCryptFS的工作方式與EncFS如出一轍,所以你得掛載它。
相關(guān)鏈接:http://ecryptfs.org
全磁盤加密
•Loop-AES:這是最古老的磁盤加密方法。它運行起來速度很快,可以在舊系統(tǒng)(比如內(nèi)核2.0分支版本)上使用。
相關(guān)鏈接:http://sourceforge.net/projects/loop-aes/
•DMCrypt:現(xiàn)代Linux內(nèi)核支持的最常見的磁盤加密方案。
相關(guān)鏈接:https://code.google.com/p/cryptsetup/wiki/DMCrypt
•CipherShed:這是現(xiàn)已停止開發(fā)的TrueCrypt磁盤加密軟件的開源分支版本。
相關(guān)鏈接:https://ciphershed.org
#p#
eCryptFS的基礎(chǔ)知識簡介
eCryptFS是一種堆疊加密文件系統(tǒng),自2.6.19以來,它就得到Linux內(nèi)核的支持(作為ecryptfs模塊)。用eCryptFS加密的偽文件系統(tǒng)掛載到你現(xiàn)有的文件系統(tǒng)上。它在EXT文件系統(tǒng)系列及其他文件系統(tǒng)(比如JFS、XFS、ReiserFS和Btrfs,甚至NFS/CIFS共享區(qū))上運行起來非常順暢。Ubuntu使用eCryptFS 作為其加密主目錄的默認方法,ChromeOS也是如此。eCryptFS在底層使用AES算法作為默認算法,但它也支持其他算法,比如blowfish、des3、cast5和cast6等算法。一旦你手動安裝eCryptFS,就可以在這些算法當(dāng)中作一個選擇。
正如我說過的那樣,Ubuntu讓我們可以在安裝過程中選擇是否對我們的/home目錄進行加密。這是使用eCryptFS的最簡單的方法。
Ubuntu提供了一系列易于使用的工具,與eCryptFS結(jié)合使用可以簡化我們的工作;不過在Ubuntu安裝過程中啟用eCryptFS完全形成一種特定的預(yù)配置安裝。所以萬一默認安裝不適合你的要求,你就需要執(zhí)行手動安裝。我在本教程中將介紹如何將eCryptFS手動安裝到主要的Linux發(fā)行版上。
安裝eCryptFS
安裝到Debian、Ubuntu或衍生版本上:
$ sudo apt-get install ecryptfs-utils
注意:如果你決定在Ubuntu安裝過程中加密你的主目錄,就要確保eCryptFS應(yīng)該已經(jīng)安裝。
安裝到CentOS、RHEL或Fedora上:
# yum install ecryptfs-utils
安裝到Arch Linux上:
$ sudo pacman -S ecryptfs-utils
為了穩(wěn)妥起見,安裝程序包后,裝入eCryptFS內(nèi)核模塊是個好的做法:
$ sudo modprobe ecryptfs
配置eCryptFS
現(xiàn)在不妨運行eCryptFS配置工具,開始加密某個目錄:
$ ecryptfs-setup-private
它會要求輸入登錄密碼和掛載密碼。登錄密碼與你平常的那個登錄密碼一樣。掛載密碼則用來獲得文件加密主密鑰。退出,重新登錄。
你會注意到eCryptFS在默認情況下創(chuàng)建了兩個目錄:主目錄中的Private目錄和.Private目錄。~/.Private目錄里面含有加密的數(shù)據(jù),你可以訪問~/Private目錄中相應(yīng)的解密數(shù)據(jù)。在你登錄時, ~/.Private目錄自動解密,映射到~/Private目錄,那樣你就能訪問它。你退出后,~/Private目錄自動卸載,~/Private目錄里面的內(nèi)容加密回到~/.Private目錄。
eCryptFS知道你擁有~/.Private目錄,并且自動解密到~/Private,不需要我們鍵入密碼,它是通過eCryptFS PAM模塊來做到這一點的,該模塊為我們完成了這項任務(wù)。
萬一你不想在登錄時讓~/Private目錄自動掛載,只要在運行ecryptfs-setup-private工具時,添加“--noautomount”這個選項。同樣,如果你不想在退出后讓~/Private目錄自動卸載,只要指定“--noautoumount”這個選項。不過那樣的話,你就得親自手動掛載或卸載~/Private目錄了。
$ ecryptfs-mount-private ~/.Private ~/Private $ ecryptfs-umount-private ~/Private
你可以運行下面這個命令,確認.Private文件已掛載:
$ mount
現(xiàn)在我們可以開始將任何敏感文件放入到~/Private文件夾里面,我們退出后,它們會自動加密,并在~/.Private文件夾里面嚴(yán)加保護起來。
這一切似乎相當(dāng)神奇。從根本上來說,ecryptfs-setup-private工具讓一切易于安裝。如果你想多嘗試一下,安裝eCryptFS的特定部分,可以參閱官方說明文檔:http://ecryptfs.org/documentation.html。
結(jié)束語
總之,如果你非常在意自己的隱私,我推薦的***方案就是將基于eCryptFS的文件系統(tǒng)級加密與全磁盤加密結(jié)合起來。不過總是要記住一點,光靠文件加密無法為你保證隱私。
原文地址:http://xmodulo.com/encrypt-files-directories-ecryptfs-linux.html