I am LAZY bones? AN ancient AND boring SITE

2010年 06月 26日 的归档

cryptsetup – 分区加密工具

cryptsetup是linux下的一个分区加密工具,和之前介绍过的eCryptfs不同的是:eCryptfs是文件系统级别的加密,而cryptsetup是分区级别的,比文件系统级别工作在更底层的位置,是在经过加密的块设备上,再创建文件系统,再挂载使用。这应该是纯软件能达到的最底层的加密了吧。
我折腾这玩意,是因为上篇文章说到,我要把/home的数据备份到另一个硬盘,而那个硬盘的物理安全性并不能得到充分地保证,所以只有通过加密来确保数据的安全了。如果当年陈老师也用这玩意的话,想必不会捅出这么大的篓子,呵呵。

废话不说,简单说说安装和使用的方法。
如果你是用ubuntu这类发行版的话,安装部分就很简单了,基本就是直接安装cryptsetup这个包,就完事了。
但是如果你和我一样也是用自己编译内核的发行版,比如gentoo的话,使用中可能会出现以下错误:

/proc/misc: No entry for device-mapper found
Is device-mapper driver missing from kernel?
Failure to communicate with kernel device-mapper driver.
Cannot initialize device-mapper. Is dm_mod kernel module loaded?
Command failed with code 22: Cannot initialize device-mapper. Is dm_mod kernel module loaded?

这时候你不要急着去安装 device-mapper ,因为现在 device-mapper 已经并入到更强大的 lvm2 里面了,所以你要确保装了 lvm2 和在内核选项里选择了CONFIG_DM_CRYPT,如下:

-> Device Drivers
  -> Multiple devices driver support
    -> Device mapper support
      -> Crypt target support

另外,还建议选取大文件支持的CONFIG_LBDAF和CONFIG_CRYPTO_AES两个内核选项,我这边不选取前者,会无法打开加密分区(虽然说LBDAF是2T+的单文件支持,而我的硬盘一共只有80G);后者是一个内核里的加密算法API,我们就用这个算法来加密(也可以用其他的算法)。

说说怎么使用:
建立一个加密的分区,很简单,执行下面的命令:

sudo cryptsetup --verbose --verify-passphrase -c aes-cbc-plain luksFormat /dev/sdb1

我的外接硬盘在 /dev/sdb1 ,因为这个命令会摧毁这个分区的所有数据,所以程序会让你确认,输入大写的YES,回车,就会让你输入两次密码,输完就搞定了。
话外音:其实cryptsetup不仅支持用密码加密,还支持用文件来加密,可以是任意类型的文件,不过解密的时候,要确保文件一个字节都不差,用这个特性可以方便地构建解密U盘。

好了,加密完分区以后,要使用的话,可以这样:

sudo cryptsetup luksOpen /dev/sdb1 back

其中最后的“back”,可以是任意字符串,程序会提示输入之前设置的密码,输对密码以后,文件系统里就会多出一个 /dev/mapper/back ,接下来就可以像使用 /dev/sdXX 一样地使用这个 /dev/mapper/back 了。
比如,建立一个ext4文件系统,挂载,复制文件之类:

sudo mkfs.ext4 /dev/mapper/back
sudo mount /dev/mapper/back /mnt/back/
sudo cp XXX /mnt/back/
....

使用完以后,可以这样显式地关闭加密分区:

sudo cryptsetup luksClose /dev/mapper/back

看看如果别人偷你加密后的硬盘,想挂载看你的艳照时,会怎么样?哈哈:

$ sudo mount /dev/sdb1 /mnt/back/
mount: unknown filesystem type 'crypto_LUKS'

PS: 现在ubuntu的易用性确实越来越好了,ubuntu里插入加密的硬盘后会自动判断,并直接弹出输入密码的窗口,输完自动挂载分区。

买了个硬盘转接器

之前在淘宝上买了一个硬盘转接器,昨天到货了,今天试了了一下,感觉还可以。
我买的是UNITEK的Y-1031,本来想拍个图传上来的,结果发现相机扔老家了以后,身边居然没有一个可以拍照的设备,呃,看来得买个新手机了?
不过好在现在有搜索引擎,拿型号随便一搜就有图片了,所以也省得我拍了。

还是说说使用感受:这玩意的特点是小巧,然后支持2.5寸和3.5寸的IDE以及SATA接口的设备,包括硬盘和光驱之类的。
现在好了,我可以把压箱底的80G大硬盘拿出来做/home的全量备份了,哈哈。还有下回买个1T的盘,放视频文件之类的大家伙。因为刻录的光盘实在太多了,我的光盘包都要爆满了,是时候换种存储方式了。
不过,在我看来,这个并不适合当移动硬盘,虽然转接器不大,但是带个电源加上硬盘,又都是外置的,移动用的话,不方便也不稳定。还是比较适合备份。

另外,全量备份的/home,因为涉及隐私(我倒是没有什么艳照,但不少密码都是明文保存的呢),然后硬盘的丢失概率又大些,所以采用了加密分区,关于这个加密分区,等我下文仔细说说吧~

这个是80G老硬盘的读写速度测试图,呵呵: