你是怎么備份自己重要而又敏感的資料的?
藏在自己電腦里俺叭?萬(wàn)一電腦壞了恭取。。
拿去修熄守。蜈垮。陳老師您好
拷貝一份在移動(dòng)硬盤上?移動(dòng)硬盤多容易壞多容易被人直接拿去用加密壓縮后存起來(lái)裕照?每次用都要解壓攒发,更新點(diǎn)內(nèi)容還要再壓縮加密一次
直接備份到網(wǎng)盤上?國(guó)內(nèi)網(wǎng)盤的隱私保障晋南。惠猿。。只能呵呵了
我知道各個(gè)網(wǎng)盤服務(wù)商也不愿隨便踐踏用戶的隱私负间,可大環(huán)境么偶妖,大家都懂的
還有的會(huì)用truecrypt吧,但容器一般較大政溃,不容易增量備份
看看我的解決方案:
在特定目錄上使用EncFS文件系統(tǒng)趾访,透明的加密存儲(chǔ)到另一個(gè)加密文件夾,將加密文件夾內(nèi)的內(nèi)容同步備份到百度網(wǎng)盤董虱。
效果:
實(shí)時(shí)存取解密后文件的文件夾
實(shí)際保存加密后文件的文件夾
百度網(wǎng)盤備份文件夾
我的環(huán)境:
Qnap的低端NAS上的嵌入式linux扼鞋。理論上任何linux或兼容系統(tǒng)皆可。
軟件:EncFS,F(xiàn)use, SyncY(百度網(wǎng)盤用云头,可替換)
Step 1: 安裝基礎(chǔ)工作環(huán)境
ipkg install gcc optware-devel make boost-dev boost-filesystem
boost-serialization boost-system openssl openssl-dev
*大部分桌面發(fā)行版linux可跳過(guò)此步驟捐友,嵌入式linux需已安裝optware
Step 2: 下載加密文件系統(tǒng)代碼
http://code.google.com/p/rlog/downloads/detail?name=rlog-1.4.tar.gz
http://sourceforge.net/projects/fuse/files/fuse-2.X/2.8.7/fuse-2.9.3.tar.gz
http://encfs.googlecode.com/files/encfs-1.7.4.tgz
Step 3: 編譯安裝
非嵌入式的linux發(fā)行版無(wú)需此步驟,用包管理工具安裝encfs即可盘寡,fuse大部分系統(tǒng)出廠即已安裝.
3.1 編譯安裝rlog
tar xvfz rlog-1.4.tar.gz
cd rlog-1.4
./configure --prefix=/opt/local
make
make install
3.2 編譯安裝fuse
tar zxvf fuse-2.9.3.tar
cd fuse-2.9.3
修改兩處
lib/mount_util.c 100行
util/mount_util.c 100行
從
execl("/bin/mount", "/bin/mount", "--no-canonicalize", "-i",
改為
execl("/bin/mount", "/bin/mount", "-i",
./configure --prefix=/opt/local
make
make install
3.3 編譯安裝encfs
tar xvfz encfs-1.7.4.tar
cd encfs-1.7.4
將encfs目錄下encfs.cpp中547行從
int res = lutimes( cyName.c_str(), tv);
改為
int res = utimes( cyName.c_str(), tv);
./configure CFLAGS='-O1' CXXFLAGS='-O1' --prefix=/opt/local CPPFLAGS=-I/opt/local/include LDFLAGS=-L/opt/local/lib
make
make install
Step 4: 初始化加密目錄
/opt/local/bin/encfs /pathtoenc /pathtoplain
第一個(gè)目錄為實(shí)際加密數(shù)據(jù)存放目錄楚殿,第二個(gè)目錄為透明訪問(wèn)數(shù)據(jù)的目錄
第一次運(yùn)行此命令后選擇默認(rèn)配置后要求輸入加密密碼,此密碼為唯一可解密數(shù)據(jù)的方法竿痰,丟失或遺忘將沒有任何辦法可以取回
可以試一下效果:echo 'test content' > /pathtoplain/text
ls -la /pathtoenc
目錄下有兩個(gè)文件脆粥,一個(gè)是xml配置文件,另一個(gè)就是text加密后的內(nèi)容了cat Xds.Dwefxiiksdf (實(shí)際名字會(huì)不同)
卸下加密文件夾
umount /pathtoplain
這時(shí)再看pathtoplain里的內(nèi)容就什么也沒有了
再次掛載/opt/local/bin/encfs /pathtoenc /pathtoplain
要求輸入密碼影涉,正確輸入后在查看pathtoplain变隔,原來(lái)的文件就可以訪問(wèn)了
如果encfs執(zhí)行失敗,提示 what(): locale::facet::_S_create_c_locale name not valid
在執(zhí)行之前先運(yùn)行:export LC_ALL="C"
同步至網(wǎng)盤我用的是百度網(wǎng)盤蟹倾,其他網(wǎng)盤請(qǐng)使用相應(yīng)的同步工具
網(wǎng)上有大善人寫了可以在各種系統(tǒng)上運(yùn)行的百度網(wǎng)盤同步腳本匣缘,我用的是python版本
請(qǐng)自行下載, SyncY
使用及配置請(qǐng)參考作者說(shuō)明
Step 5: 全自動(dòng)
根據(jù)所使用操作系統(tǒng)鲜棠,在啟動(dòng)中加入以下命令讓加密文件系統(tǒng)隨系統(tǒng)啟動(dòng)自動(dòng)加載
export LC_ALL="C"
echo 'xxxxxxxx' | /opt/local/bin/encfs --public /pathtoenc/ /pathtoplain/ -S
/opt/bin/python /share/homes/admin/SyncY/syncy.py
第一行'export':如果平時(shí)執(zhí)行encfs時(shí)不需要這句肌厨,則這兒也不需
要第二行:--public的作用是讓他人也可讀寫該目錄,如果需要將目錄給多人使用則需要豁陆,例如在nas上共享該目錄
-S 用于從管道接受密碼柑爸,前面的echo 'xxxx'中的xxxx即是密碼。這里的密碼是明文盒音。
我認(rèn)為明文也無(wú)所謂表鳍,畢竟能訪問(wèn)到這個(gè)機(jī)器的只有自己;如果對(duì)安全性要求實(shí)在比較高祥诽,那可以按需手動(dòng)加載并輸入密碼
第三行: 在加密文件夾掛載后運(yùn)行同步軟件譬圣。在同步軟件中配置將加密后目錄同步至網(wǎng)盤
已知問(wèn)題:
向加密文件夾中寫入體積較大文件時(shí),會(huì)有遲滯雄坪,具體程度取決于CPU計(jì)算能力厘熟;讀取時(shí)較快,基本做到透明使用
用于網(wǎng)絡(luò)共享文件使用時(shí)维哈,有時(shí)會(huì)發(fā)生復(fù)制移動(dòng)失敗盯漂,但刷新文件夾后查看內(nèi)容,其實(shí)已經(jīng)完成
用umount命令卸載加密文件夾時(shí)有時(shí)會(huì)提示錯(cuò)誤笨农,但實(shí)際已經(jīng)正常卸載
原創(chuàng)文章,轉(zhuǎn)載請(qǐng)表明出處帖渠,謝謝
2014-11-26 16:46
2015-04-16搬遷至簡(jiǎn)書