Linux安裝使用eCryptFS加密文件的方法
Linux安裝使用eCryptFS加密文件的方法
eCryptFS是Linux系統(tǒng)中的文件加密系統(tǒng),能夠?qū)ξ募蚰夸涍M行加密,且加密級別高,安全性強于一般軟件,下面學習啦小編就給大家介紹下Linux如何使用eCryptFS加密文件。
加密類型
我們主要有兩種加密文件和目錄的方法。一種是文件系統(tǒng)級別的加密,在這種加密中,你可以選擇性地加密某些文件或者目錄(如,/home/alice)。對我而言,這是個十分不錯的方法,你不需要為了啟用或者測試加密而把所有一切重新安裝一遍。然而,文件系統(tǒng)級別的加密也有一些缺點。例如,許多現(xiàn)代應用程序會緩存(部分)文件你硬盤中未加密的部分中,比如交換分區(qū)、/tmp和/var文件夾,而這會導致隱私泄漏。
另外一種方式,就是所謂的全盤加密,這意味著整個磁盤都會被加密(可能除了主引導記錄外)。全盤加密工作在物理磁盤級別,寫入到磁盤的每個比特都會被加密,而從磁盤中讀取的任何東西都會在運行中解密。這會阻止任何潛在的對未加密數(shù)據(jù)的未經(jīng)授權(quán)的訪問,并且確保整個文件系統(tǒng)中的所有東西都被加密,包括交換分區(qū)或任何臨時緩存數(shù)據(jù)。
可用的加密工具
在Linux中要實施加密,有幾個可供選擇的工具。在本教程中,我打算介紹其中一個:eCryptFS,一個用戶空間文件系統(tǒng)加密工具。下面提供了一個Linux上可用的加密工具摘要供您參考。
文件系統(tǒng)級別加密
EncFS:嘗試加密的最簡單方式之一。EncFS工作在基于FUSE的偽文件系統(tǒng)上,所以你只需要創(chuàng)建一個加密文件夾并將它掛載到某個文件夾就可以工作了。
eCryptFS:一個POSIX兼容的加密文件系統(tǒng),eCryptFS工作方式和EncFS相同,所以你必須掛載它。
磁盤級別加密
Loop-AES:最古老的磁盤加密方法。它真的很快,并且適用于舊系統(tǒng)(如,2.0內(nèi)核分支)。
DMCrypt:最常見的磁盤加密方案,支持現(xiàn)代Linux內(nèi)核。
CipherShed:已停止的TrueCrypt磁盤加密程序的一個開源分支。
eCryptFS基礎(chǔ)
eCrypFS是一個基于FUSE的用戶空間加密文件系統(tǒng),在Linux內(nèi)核2.6.19及更高版本中可用(作為encryptfs模塊)。eCryptFS加密的偽文件系統(tǒng)是掛載到當前文件系統(tǒng)頂部的。它可以很好地工作在EXT文件系統(tǒng)家族和其它文件系統(tǒng)如JFS、XFS、ReiserFS、Btrfs,甚至是NFS/CIFS共享文件系統(tǒng)上。Ubuntu使用eCryptFS作為加密其家目錄的默認方法,ChromeOS也是。在eCryptFS底層,默認使用的是AES算法,但是它也支持其它算法,如blowfish、des3、cast5、cast6。如果你是通過手工創(chuàng)建eCryptFS設(shè)置,你可以選擇其中一種算法。
就像我所的,Ubuntu讓我們在安裝過程中選擇是否加密/home目錄。好吧,這是使用eCryptFS的最簡單的一種方法。
Ubuntu提供了一個用戶友好的工具集,通過eCryptFS可以讓我們的生活更輕松,但是在Ubuntu安裝過程中啟用eCryptFS只創(chuàng)建了一個指定的預配置的設(shè)置。所以,如果默認的設(shè)置不適合你的需求,你需要進行手工設(shè)置。在本教程中,我將介紹如何在主流Linux發(fā)行版上手工設(shè)置eCryptFS。
eCryptFS的安裝
Debian,Ubuntu或其衍生版:
$ sudo apt-get install ecryptfs-utils
注意,如果你在Ubuntu安裝過程中選擇加密家目錄,eCryptFS應該已經(jīng)安裝了。
CentOS, RHEL or Fedora:
# yum install ecryptfs-utils
Arch Linux:
$ sudo pacman -S ecryptfs-utils
在安裝完包后,加載eCryptFS內(nèi)核模塊當然會是一個很好的實踐:
$ sudo modprobe ecryptfs
配置eCryptFS
現(xiàn)在,讓我們開始加密一些目錄,運行eCryptFS配置工具:
$ ecryptfs-setup-private
它會要求你輸入登錄密碼和掛載密碼。登錄密碼和你常規(guī)登錄的密碼一樣,而掛載密碼用于派生一個文件加密主密鑰。這里留空可以生成一個(復雜的),這樣會更安全。登出然后重新登錄。
你會注意到,eCryptFS默認在你的家目錄中創(chuàng)建了兩個目錄:Private和.Private。~/.Private目錄包含有加密的數(shù)據(jù),而你可以在~/Private目錄中訪問到相應的解密后的數(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文件內(nèi)。
所有這一切看起來是那么得神奇。這主要是ecryptfs-setup-private工具讓一切設(shè)置變得簡單。如果你想要深究一點,對eCryptFS指定的方面進行設(shè)置,那么請轉(zhuǎn)到官方文檔。
結(jié)尾
上面就是Linux使用eCryptFS加密文件的方法介紹了,比較神奇的是,eCryptFS可以對同一文件進行層層加密,你可以對文件夾中的文件一個個的加密,一個密碼只能打開一個文件包。