教你加密Root文件系統(tǒng)(圖)
互聯(lián)網(wǎng) 發(fā)布時間:2008-10-08 19:02:19 作者:佚名
我要評論

當(dāng)你不能依靠物理安全來保證你文件的安全時,是時候采取額外的步驟加密文件系統(tǒng)了,雖然本文涉及到的是基于PowerPC的系統(tǒng),但原則上來說也適用于其他架構(gòu)的系統(tǒng)。
在另一篇文章“實現(xiàn)加密的home目錄”中,我描寫了如何透明地加密home目錄,本文敘述另一個技術(shù)實現(xiàn)--
NetBSD/macppc的安裝指令對Open Firmware做了一個充分的介紹,我們對使用Open Firmware命令行接口配置計算機從一個閃存盤啟動非常感興趣,Open Firmware允許你查看連接到計算機的設(shè)備和設(shè)置固件程序變量的值。
在一個新世界(G3或更新的)蘋果計算機初始化啟動過程中,可以通過暫停選擇性命令來訪問Open Firmware提示符。
變量boot-device用于確定系統(tǒng)將從哪個設(shè)備啟動,printenv命令允許查看當(dāng)前的值:
> printenv
[...]
boot-devicehd:,\\:txbihd:,\\:txbi
這實際上意味著通過執(zhí)行在第一塊IDE磁盤上HFS類型txbi的文件來實現(xiàn)啟動的,第二:txbi前的字符作為解釋一個HFS文件類型的標(biāo)志,否則,txbi可能被理解為文件路徑,假如這樣,標(biāo)志hd實際上是更復(fù)雜的/pci@f4000000/ata-6@d/disk@0的一個別名,這個字符串通過子系統(tǒng)變量表現(xiàn)了路徑,你可以使用Open Firmware命令查看設(shè)備對應(yīng)的別名。
網(wǎng)絡(luò)正確地設(shè)置boot-device,我們需要找出Open Firmware認(rèn)出的我們閃存盤的名字,通過ls命令顯示閃存盤路徑,并打印出設(shè)備樹:
> dev / ls
[...]
/pci@f2000000
[...]
/usb@1b,1
[...]
/disk@1
[...]
現(xiàn)在我們知道了一點關(guān)于計算機固件程序的知識,我們必須花些時間研究固件初始化執(zhí)行程序:bootloader。通常,運行在蘋果PowerPC架構(gòu)上的Linux系統(tǒng)使用一個叫做yaboot的程序來啟動系統(tǒng),yaboot與LILO或GRUB類似,它包含兩個關(guān)鍵程序:ofboot.b和yaboot。ofboot.b提供第一階段啟動過程,實際上,ofboot.b的工作決定了啟動什么操作系統(tǒng),例如:如果一臺電腦上同時安裝了Mac OS X和Linux系統(tǒng),ofboot.b執(zhí)行Mac OS X或Linux的bootloader,如果用戶選擇載入Linux,ofboot.b執(zhí)行yaboot,第二階段啟動過程,然后yaboot載入Linux內(nèi)核和initrd。圖3提供了一個基于PowerPC架構(gòu)的Linux如何使用一個加密的root文件系統(tǒng)啟動的實例。
圖3
用Open firmware啟動一個基于PowerPC系統(tǒng)的過程
我們的可移動啟動設(shè)備需要ofboot.b和yaboot程序,一個Linux內(nèi)核和一個包括加密密鑰的initrd文件。蘋果目前基于PowerPC的架構(gòu)預(yù)設(shè)它的啟動介質(zhì)格式化為HFS。
1)使用parted程序在閃存盤上創(chuàng)建正確的可啟動的分區(qū)(我的是64MB大小,用設(shè)備節(jié)點/dev/sda訪問)
# parted /dev/sda
(parted) mklabel mac
(parted) print
Disk geometry for /dev/sda: 0.000-62.500 megabytes
Disk label type: mac
Minor Start End Filesystem Name Flags
1 0.000 0.031 Apple
(parted) mkpart primary hfs 0.031 62.500
(parted) print
Disk geometry for /dev/sda: 0.000-62.500 megabytes
Disk label type: mac
Minor Start End Filesystem Name Flags
1 0.000 0.031 Apple
2 0.031 62.500 untitled
(parted) set 2 boot on
(parted) name 2 Apple_Boot
(parted) quit
2)在啟動分區(qū)上創(chuàng)建HFS文件系統(tǒng)
# hformat /dev/sda2
3)通過修改/mnt/encroot/etc/yaboot.conf配置yaboot啟動恰當(dāng)?shù)脑O(shè)備,下面是一個最小配置例子:
boot=/dev/sda2
ofboot=/pci@f2000000/usb@1b,1/disk@1:2
partition=2
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot
default=linux
image=/vmlinux
label=linux
root=/dev/hda4
initrd=/initrd.gz
read-only
值/pci@f2000000/usb@1b,1/disk@1:2來自我們先前檢查的Open Firmware設(shè)備樹,/pci@f2000000/usb@1b,1/disk@1是PCI總線f2000000上的第一塊USB磁盤,最有興趣的是:2意味著分區(qū)2
4)安裝啟動程序和內(nèi)核到/dev/sda2:
# ybin --config /mnt/encroot/etc/yaboot.conf -v
# mount /dev/sda2 /media/usbstick
# cp /boot/vmlinux /media/usbstick
就此,initrd必須被安裝到閃存盤上,F(xiàn)edora提供了一個叫做mkinitrd的工具來創(chuàng)建initrd,然而,在寫本文的時候,mkinitrd還不支持加載一個加密的root文件系統(tǒng),補丁在https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=124789,一旦應(yīng)用了補丁,mkinitrd就可以讀取/etc/crypttab并創(chuàng)建一個恰當(dāng)?shù)膇nitrd了:
1. mkinitrd --authtype=paranoid -f /media/usbdisk/initrd.gz
2. umount /media/usbstick
文件/mnt/encroot/etc/fstab應(yīng)該被更新反映出變化:
/dev/mapper/root / ext3 defaults 1 1
在一個新世界(G3或更新的)蘋果計算機初始化啟動過程中,可以通過暫停選擇性命令來訪問Open Firmware提示符。
變量boot-device用于確定系統(tǒng)將從哪個設(shè)備啟動,printenv命令允許查看當(dāng)前的值:
> printenv
[...]
boot-devicehd:,\\:txbihd:,\\:txbi
這實際上意味著通過執(zhí)行在第一塊IDE磁盤上HFS類型txbi的文件來實現(xiàn)啟動的,第二:txbi前的字符作為解釋一個HFS文件類型的標(biāo)志,否則,txbi可能被理解為文件路徑,假如這樣,標(biāo)志hd實際上是更復(fù)雜的/pci@f4000000/ata-6@d/disk@0的一個別名,這個字符串通過子系統(tǒng)變量表現(xiàn)了路徑,你可以使用Open Firmware命令查看設(shè)備對應(yīng)的別名。
網(wǎng)絡(luò)正確地設(shè)置boot-device,我們需要找出Open Firmware認(rèn)出的我們閃存盤的名字,通過ls命令顯示閃存盤路徑,并打印出設(shè)備樹:
> dev / ls
[...]
/pci@f2000000
[...]
/usb@1b,1
[...]
/disk@1
[...]
現(xiàn)在我們知道了一點關(guān)于計算機固件程序的知識,我們必須花些時間研究固件初始化執(zhí)行程序:bootloader。通常,運行在蘋果PowerPC架構(gòu)上的Linux系統(tǒng)使用一個叫做yaboot的程序來啟動系統(tǒng),yaboot與LILO或GRUB類似,它包含兩個關(guān)鍵程序:ofboot.b和yaboot。ofboot.b提供第一階段啟動過程,實際上,ofboot.b的工作決定了啟動什么操作系統(tǒng),例如:如果一臺電腦上同時安裝了Mac OS X和Linux系統(tǒng),ofboot.b執(zhí)行Mac OS X或Linux的bootloader,如果用戶選擇載入Linux,ofboot.b執(zhí)行yaboot,第二階段啟動過程,然后yaboot載入Linux內(nèi)核和initrd。圖3提供了一個基于PowerPC架構(gòu)的Linux如何使用一個加密的root文件系統(tǒng)啟動的實例。

圖3
用Open firmware啟動一個基于PowerPC系統(tǒng)的過程
我們的可移動啟動設(shè)備需要ofboot.b和yaboot程序,一個Linux內(nèi)核和一個包括加密密鑰的initrd文件。蘋果目前基于PowerPC的架構(gòu)預(yù)設(shè)它的啟動介質(zhì)格式化為HFS。
1)使用parted程序在閃存盤上創(chuàng)建正確的可啟動的分區(qū)(我的是64MB大小,用設(shè)備節(jié)點/dev/sda訪問)
# parted /dev/sda
(parted) mklabel mac
(parted) print
Disk geometry for /dev/sda: 0.000-62.500 megabytes
Disk label type: mac
Minor Start End Filesystem Name Flags
1 0.000 0.031 Apple
(parted) mkpart primary hfs 0.031 62.500
(parted) print
Disk geometry for /dev/sda: 0.000-62.500 megabytes
Disk label type: mac
Minor Start End Filesystem Name Flags
1 0.000 0.031 Apple
2 0.031 62.500 untitled
(parted) set 2 boot on
(parted) name 2 Apple_Boot
(parted) quit
2)在啟動分區(qū)上創(chuàng)建HFS文件系統(tǒng)
# hformat /dev/sda2
3)通過修改/mnt/encroot/etc/yaboot.conf配置yaboot啟動恰當(dāng)?shù)脑O(shè)備,下面是一個最小配置例子:
boot=/dev/sda2
ofboot=/pci@f2000000/usb@1b,1/disk@1:2
partition=2
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot
default=linux
image=/vmlinux
label=linux
root=/dev/hda4
initrd=/initrd.gz
read-only
值/pci@f2000000/usb@1b,1/disk@1:2來自我們先前檢查的Open Firmware設(shè)備樹,/pci@f2000000/usb@1b,1/disk@1是PCI總線f2000000上的第一塊USB磁盤,最有興趣的是:2意味著分區(qū)2
4)安裝啟動程序和內(nèi)核到/dev/sda2:
# ybin --config /mnt/encroot/etc/yaboot.conf -v
# mount /dev/sda2 /media/usbstick
# cp /boot/vmlinux /media/usbstick
就此,initrd必須被安裝到閃存盤上,F(xiàn)edora提供了一個叫做mkinitrd的工具來創(chuàng)建initrd,然而,在寫本文的時候,mkinitrd還不支持加載一個加密的root文件系統(tǒng),補丁在https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=124789,一旦應(yīng)用了補丁,mkinitrd就可以讀取/etc/crypttab并創(chuàng)建一個恰當(dāng)?shù)膇nitrd了:
1. mkinitrd --authtype=paranoid -f /media/usbdisk/initrd.gz
2. umount /media/usbstick
文件/mnt/encroot/etc/fstab應(yīng)該被更新反映出變化:
/dev/mapper/root / ext3 defaults 1 1
相關(guān)文章
- “CMOS密碼”就是通常所說的“開機密碼”,主要是為了防止別人使用自已的計算機,設(shè)置的一個屏障2023-08-01
QQScreenShot之逆向并提取QQ截圖--OCR和其他功能
上一篇文章逆向并提取QQ截圖沒有提取OCR功能, 再次逆向我發(fā)現(xiàn)是可以本地調(diào)用QQ的OCR的,但翻譯按鈕確實沒啥用, 于是Patch了翻譯按鈕事件, 改為了將截圖用百度以圖搜圖搜索.2023-02-04- QQ截圖是我用過的最好用的截圖工具, 由于基本不在電腦上登QQ了, 于是就想將其提取出獨立版目前除了屏幕錄制功能其他都逆出來了, 在此分享一下2023-02-04
非系統(tǒng)分區(qū)使用BitLocker加密導(dǎo)致軟件無法安裝的解決方法
很多電腦用戶在考慮自己電腦磁盤分區(qū)安全時會采用 Windows 自帶的 BitLocker 加密工具對電腦磁盤分區(qū)進行加密。但有些人加密后就會忘記自己設(shè)置的密碼從而導(dǎo)致在安裝其它軟2020-11-25防止離職員工帶走客戶、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生
這篇文章為大家詳細介紹了如何才能防止離職員工帶走客戶、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-27徹底防止計算機泄密、重要涉密人員離職泄密、涉密人員離崗離職前防范舉
近些年企業(yè)商業(yè)機密泄漏的事件屢有發(fā)生,這篇文章主要教大家如何徹底防止計算機泄密、重要涉密人員離職泄密、告訴大家涉密人員離崗離職前的防范舉措,具有一定的參考價值,2017-06-27- 最近有電腦用戶反應(yīng)量子計算機可以破解下載的所有的加密算法嗎?其實也不是不可以,下面虛擬就為大家講解買臺量子計算機,如何分分鐘破解加密算法2016-09-26
怎么破解Webshell密碼 Burpsuite破解Webshell密碼圖文教程
webshell是以asp、php、jsp或者cgi等網(wǎng)頁文件形式存在的一種命令執(zhí)行環(huán)境,一種網(wǎng)頁后門。黑客通常會通過它控制別人網(wǎng)絡(luò)服務(wù)器,那么怎么破解webshell密碼呢?一起來看看吧2016-09-19- 本文討論了針對Linux系統(tǒng)全盤加密的冷啟動攻擊,大家都認(rèn)為這種攻擊是可行的,但執(zhí)行這么一次攻擊有多難?攻擊的可行性有多少呢?需要的朋友可以參考下2015-12-28
防止泄露公司機密、企業(yè)數(shù)據(jù)防泄密軟件排名、電腦文件加密軟件排行
面對日漸嚴(yán)重的內(nèi)部泄密事件,我們?nèi)绾问刈o企業(yè)的核心信息,如何防止內(nèi)部泄密也就成了擺在各個企業(yè)領(lǐng)導(dǎo)面前的一大問題。其實,針對內(nèi)網(wǎng)安全,防止內(nèi)部信息泄漏早已有了比較2015-12-17