首页 > 其他网络资源 > 常用Linux工具命令之 – 分区加密

常用Linux工具命令之 – 分区加密

三月 2nd, 2015 关键字:

有(许多)其他替代方法来加密磁盘,我只呈现我所知道和使用的方法.请记住,安全只是系统还未经过实际考验而已.
入侵者可以轻易通过键盘事件记录密码.此外,当已经加载了分区,其数据是可以自由访问的,并不会阻止入侵者去访问它.

10.1 Linux

这部分我们使用可用于2.6内核的Linux dm-crypt(device-mapper).在这个实例中,让我们加密/dev/sdc1分区,它可为任何其他分区、磁盘、USB或者用 losetup 创建的基于文件的分区.
对于基于文件的分区,我们使用/dev/loop0.看镜像文件分区.Device mapper利用标签来标识一个分区.我们使用sdc1作为此标签,但可以为任何字符串.
dm-crypt with LUKS
LUKS和dm-crypt是较好的加密技术,并且可为同一个分区设置多个口令,更改密码也很方便.可简单输入


# cryptsetup --help


来测试LUKS是否可用.如果没有显示任何关于LUKS的信息,可看下面Without LUKS的介绍.第一步如果需要的话创建一个分区:
fdisk /dev/sdc.
创建加密分区


# dd if=/dev/urandom of=/dev/sdc1	//可选
# cryptsetup -y luksFormat /dev/sdc1	//这破坏了在sdc1上的数据
# cryptsetup luksOpen /dev/sdc1 sdc1
# mkfs.ext3 /dev/mapper/sdc1	//创建ext3文件系统
# mount -t ext3 /dev/mapper/sdc1 /mnt
# umount /mnt
# cryptsetup luksClose sdc1	//Detach已加密的分区


Attach


# cryptsetup luksOpen /dev/sdc1 sdc1
# mount -t ext3 /dev/mapper/sdc1 /mnt


Detach


# umount /mnt
# cryptsetup luksClose sdc1


dm-crypt without LUKS


# cryptsetup -y create sdc1 /dev/sdc1	//或任何其他分区像/dev/loop0
# dmsetup ls	//检查一下,将显示:sdc1(254, 0)
# mkfs.ext3 /dev/mapper/sdc1	//只有第一次要这么做!
# mount -t ext3 /dev/mapper/sdc1 /mnt
# umount /mnt/
# cryptsetup remove sdc1	//Detach已加密的分区


这样做等同于(非mkfs部分)re-attach分区.如果密码不正确,mount命令将会失败.对于这个例子,只要简单的移除sdc1(cryptsetup remove sdc1)并重建即可.

10.2 FreeBSD

两个流行的FreeBSD磁盘加密模块为gbde和geli.我现在使用geli原因是它够快并且它使用加解密硬件加速设备.详情可看FreeBSD使用手册18.633.geli模块必须已编译或加载进内核:
options GEOM_ELI
device crypto //内核配置文件中加入这两行


# echo 'geom_eli_load="YES"' >> /boot/loader.conf	//也可以在系统引导时加载或者做:kldload geom_eli


使用密码和密钥
我为一个典型的磁盘加密使用这些设置,其使用了一个口令和一个加密主密钥(master key)的密钥.这意味着你需要密码和生产的密钥/root/ad1.key来attach分区.主密钥存储在这个加密分区中并且不可见.看下面为USB或映像文件的加密设置.
创建加密分区


# dd if=/dev/random of=/root/ad1.key bs=64 count=1	//加密主密钥的密钥
# geli init -s 4096 -K /root/ad1.key /dev/ad1	//对于磁盘也可用-s 8192
# geli attach -k /root/ad1.key /dev/ad1	//将/dev/ad1与所生成的密钥/root/ad1.key关联
# dd if=/dev/random of=/dev/ad1.eli bs=1m	//可选,需要很长时间
# newfs /dev/ad1.eli	//创建文件系统
# mount /dev/ad1.eli /mnt


Attach


# geli attach -k /root/ad1.key /dev/ad1
# fsck -ny -t ffs /dev/ad1.eli	//检查文件系统
# mount /dev/ad1.eli /mnt


Detach
Detach步骤会在关机时自动完成.


# umount /mnt
# geli detach /dev/ad1.eli


/etc/fstab
加密分区在/etc/fstab中配置成自动加载.系统启动时会询问加密分区的密码.对于本例下列设置是必须的:


# grep geli /etc/rc.conf
geli_devices="ad1"
geli_ad1_flags="-k /root/ad1.key"
# grep geli /etc/fstab
/dev/ad1.eli /home/private ufs rw 0 0


仅用密码
加密一个USB stick或者映像文件使用密码而不是密钥来得更方便.这种情况下,没有必要随身携带额外的密钥文件.所做步骤同上面非常相似,只是不需要密钥文件.让我们来加密一个1GB的映像文件/cryptedfile.


# dd if=/dev/zero of=/cryptedfile bs=1M count=1000	//1GB文件
# mdconfig -at vnode -f /cryptedfile
# geli init /dev/md0	//仅用密码加密域名优惠
# geli attach /dev/md0
# newfs -U -m 0 /dev/md0.eli
# mount /dev/md0.eli /mnt
# umount /dev/md0.eli
# geli detach md0.eli


现在可以把这个映像文件加载成仅需密码的文件系统.


# mdconfig -at vnode -f /cryptedfile
# geli attach /dev/md0
# mount /dev/md0.eli /mnt
固定链接: http://www.cnyinxingshu.com/210.html Godaddy优惠码
Comments are closed.