永发信息网

cryptsetyup先烧文件系统再加密吗。。。。。。急!!!!!!!!!!!!!

答案:1  悬赏:50  手机版
解决时间 2021-11-30 19:28
cryptsetyup先烧文件系统再加密吗。。。。。。急!!!!!!!!!!!!!
最佳答案
一、设置内核
dm -crypt利用内核的密码应用编程接口来完成密码操作。一般说来,内核通常将各种加密程式以模块的形式加载。对于256-bit AES来说,其安全强度已非常之高,即便用来保护绝密级的数据也足够了。因此本文中我们使用256-bit AES密码,为了确保你的内核已加载AES密码模块,请利用下列命令进行检查:
$ cat /proc/crypto如果看到类似下面的输出的话,说明AES模块已加载:
name : aes
module : aes
type : cipher
blocksize : 16
min keysize : 16
max keysize : 32
否则,我们能利用modprobe来手工加载AES模块,命令如下所示:
$ sudo modprobe aes
接下来安装dmsetup软件包,该软件包含有设置device-mapper所需的工具:
$ sudo apt-get install dmsetup cryptsetup为检查dmsetup软件包是否已建立了设备映象程式,键入下列命令:
$ ls -l /dev/mapper/control接下来加载dm-crypt内核模块:
$ sudo modprobe dm-cryptdm-crypt加载后,他会用evice-mapper自动注册。如果再次检验的话,device-mapper已能识别dm- crypt,并且把crypt 添加为可用的对象:
$ sudo dmsetup targets如果一切顺利,目前你应该看到crypt的下列输出:
crypt v1.1.0
striped v1.0.2
linear v1.0.1
error v1.0.1
这说明我们的系统已为装载加密设备做好了准备。下面,我们先来建立一个加密设备。
二、建立加密设备
要创建作为加密设备装载的文件系统,有两种选择:一是建立一个磁盘映像,然后作为回送设备加载;二是使用物理设备。无论那种情况,除了在建立和捆绑回送设 备外,其他操作过程都是相似的。
1.建立回送磁盘映象
如果你没有用来加密的物理设备(比如存储棒或另外的磁盘分区),作为替换,你能利用命令dd来建立一个空磁盘映象,然后将该映象作为回送设备来装载,照样 能用。下面我们以实例来加以介绍:
$ dd if=/dev/zero of=~/secret.img bs=1M count=100这里我们新建了一个大小为100 MB的磁盘映象,该映象名字为secret.img。要想改动其大小,能改动count的值。
接下来,我们利用losetup命令将该映象和一个回送设备联系起来:
$ sudo losetup /dev/loop/0 ~/secret.img目前,我们已得到了一个虚拟的块设备,其位于/dev/loop/0,并且我们能够如同使用其他设备那样来使用他。
2.设置块设备
准备好了物理块设备(例如/dev/sda1),或是虚拟块设备(像前面那样建立了回送映象,并利用device-mapper将其作为加密的逻辑卷加 载),我们就能进行块设备设置了。
下面我们使用cryptsetup来建立逻辑卷,并将其和块设备捆绑:
$ sudo cryptsetup -y create myEncryptedFilesystem
/dev/DEVICENAME其中,myEncryptedFilesystem 是新建的逻辑卷的名称。并且最后一个参数必须是将用作加密卷的块设备。所以,如果你要使用前面建立的回送映象作为虚拟块设备的话,应当运行以下命令:
$ sudo cryptsetup -y create myEncryptedFilesystem /dev/loop/0无论是使用物理块设备还是虚拟块设备,程式都会要你输入逻辑卷的口令,-y的作用 在于要你输入两次口令以确保无误。这一点非常重要,因为一旦口令弄错,你就会把自己的数据锁住,这时谁也帮不了你了!
为了确认逻辑卷是否已建立,能使用下列命令进行检查一下:
$ sudo dmsetup ls只要该命令列出了逻辑卷,就说明已成功建立了逻辑卷。不过根据机器的不同,设备号可能有所不同:
myEncryptedFilesystem (221, 0)device-mapper会把他的虚拟设备装载到/dev/mapper下面,所以,你的虚拟块设备应该是/dev/mapper /myEncryptedFilesystem ,尽管用起来他和其他块设备没什么不同,实际上他却是经过透明加密的。
如同物理设备相同,我们也能在虚拟设备上创建文件系统:
$ sudo mkfs.ext3 /dev/mapper/myEncryptedFilesystem目前为新的虚拟块设备建立一个装载点,然后将其装载。命令如下所示:
$ sudo mkdir /mnt/myEncryptedFilesystem
$ sudo mount /dev/mapper/myEncryptedFilesystem /mnt/myEncryptedFilesystem我们能够利用下面的命令 查看其装载后的情况:
$ df -h /mnt/myEncryptedFilesystem
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/myEncryptedFilesystem 97M 2.1M 90M 2% /mnt/myEncryptedFilesystem
非常好,我们看到装载的文件系统,尽管看起来和其他文件系统无异,但实际上写到/mnt/myEncryptedFilesystem /下的所有数据,在数据写入之前都是经过透明的加密处理后才写入磁盘的,因此,从该处读取的数据都是些密文。
三、卸载方法
要卸载加密文件系统,和平常的方法没什么两样:
$ sudo umount /mnt/myEncryptedFilesystem即便已卸载了块设备,在dm-crypt中仍然视为一个虚拟设备。如若不信,你能再次运行命令 sudo dmsetup ls来验证一下,你会看到该设备依然会被列出。因为dm-crypt缓存了口令,所以机器上的其他用户不必知道口令就能重新装载该设备。为了避免这种情况 发生,你必须在卸载设备后从dm-crypt中显式的删除该设备。命令具体如下所示:
$ sudo cryptsetup remove myEncryptedFilesystem此后,他将完全清除,要想再次装载的话,你必须再次输入口令。为了简化该过程,我们能利用一个简单的脚本来完 成卸载和清除工作:
#!/bin/sh
umount /mnt/myEncryptedFilesystem
cryptsetup remove myEncryptedFilesystem
四、重新装载
在卸载加密设备后,我们非常可能还需作为普通用户来装载他们。为了简化该工作,我们需要在/etc/fstab文件中添加下列内容:
/dev/mapper/myEncryptedFilesystem /mnt/myEncryptedFilesystem ext3 noauto,noatime 0 0此外,我们也能通过建立脚本来替我们完成dm-crypt设备的创建和卷的装载工作,方法是用实际设备的名称或文件路径来替换/dev /DEVICENAME:
#!/bin/sh
cryptsetup create myEncryptedFilesystem /dev/DEVICENAME
mount /dev/mapper/myEncryptedFilesystem /mnt/myEncryptedFilesystem如果你使用的是回送设备 的话,你还能利用脚本来捆绑设备:
#!/bin/sh
losetup /dev/loop/0 ~/secret.img
cryptsetup create myEncryptedFilesystem /dev/loop/0
mount /dev/mapper/myEncryptedFilesystem /mnt/myEncryptedFilesystem如果你收到消息 “ioctl: LOOP_SET_FD: Device or resource busy”,这说明回送设备非常可能仍然装载在系统上。我们能利用sudo losetup -d /dev/loop/0命令将其删除。
五、加密主目录
如果设置了PAM(Pluggable Authentication Modules,即可插入式鉴别模块)子系统在你登录时装载主目录的话,你甚至还能加密整个主目录。因为libpam-mount模块允许PAM在用户登 录时自动装载任意设备,所以我们要连同openssl一起来安装该模块。命令如下所示:
$ sudo apt-get install libpam-mount openssl接下来,编辑文件/etc/pam.d/common-auth,在其末尾添加下列一行:
auth optional pam_mount.so use_first_pass然后在文件/etc/pam.d/common-session末尾添加下列一行内容:
session optional pam_mount.so
目前,我们来设置PAM,告诉他需要装载哪些卷、及装载位置。对本例而言,假设用户名是Ian,要用到的设备是/dev/sda1,要添加到/etc /security/pam_mount.conf文件中的内容如下所示:
volume Ian crypt - /dev/sda1 /home/Ian cipher=aes aes-256-ecb /home/Ian.key如果想使用磁盘映象,你需要在此规定回送设备(比如/dev/loop/0),并确保在Ian登录之前系统已运行 losetup。为此,你能将 losetup /dev/loop/0 /home/secret.img放入/etc/rc.local文件中。因为该卷被加密,所以PAM需要密钥来装载卷。最后的参数用来告诉PAM密钥在 /home/Ian.key文件中,为此,通过使用OpenSSL来加密你的口令来建立密钥文件:
$ sudo sh -c "echo

YOUR PASSPHRASE

| openssl aes-256-ecb >
/home/Ian.key"这时,提示你输入密码。注意,这里的口令必需和想要的用户登录密码一致。原因是当你登录时,PAM需要你提供这个密码,用以 加密你的密钥文件,然后根据包含在密钥文件中的口令用dm-crypt装载你的主目录。
需要注意的是,这样做会把你的口令以明文的形式暴露在.history文件中,所以要及时利用命令history -c清晰你的历史记录。此外,要想避免把口令存放在加密的密钥文件中的话,能让创建加密文件系统的口令和登录口令完全一致。这样,在身份认证时,PAM 只要把你的密码传给dm-crypt就能了,而不必从密钥文件中抽取密码。为此,你能在/etc/security/pam_mount.conf文件中 使用下面的命令行:
volume Ian crypt - /dev/sda1 /home/Ian cipher=aes - -最后,为了确保在退出系统时自动卸载加密主目录,请编辑/etc/login.defs文件使得CLOSE_SESSIONS项设置如下:
CLOSE_SESSIONS yes
六、小结
数据加密是一种强而有力的安全手段,他能在各种环境下非常好的保护数据的机密性。而本文介绍的Ubuntu Linux 下的加密文件系统就是一种非常有用的数据加密保护方式,相信他能够在保护数据机密性相方面对你有所帮助。

====================================================
另附上一部分losetup的参数
-a list all
-d delete dev追问谢谢!!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
"快”字小篆字体是怎么写的?
玩家与玩家之间可以solo的手机游戏
小班建构小猫教案
二手房交易必须在第一家看房中介买吗?
怎样区分单闸板阀和双闸板阀
壮游奇迹怎么组队挂机给队友加buff
2019年人行都报名了吗?
主动链轮和被动链轮可以选一样的么?会有什么
方正家居安全一键通保险箱密码丢失,求教!
商标到底注册几个类别才够用
下面4个字母分别用了多少平方厘米的彩板
心口嘴下扎扎痛
优美特精品木艺武汉有限公司怎么样?
散装水泥车,粉粒物料运输车有什么区别?
8块钱一斤单价多少数字
推荐资讯
下列种群密度调查方法中,哪些属于相对密度调
炉石传说犯罪高手效果怎么样 犯罪高手好用吗
北宋末年开封府是谁当官
你我在凝望那一刹,彼此慰问境况 这是什么意思
道家阴阳思想如何产生
支付宝扫码退款多久到
唐山乐亭的环境怎么样呢?哪里比较好玩
谁知道 BROOKS WAS HERE ,SO WAS RED 的意思
在平行四边形abcd中,向量AC·AD=向量AC·BD=3
单选题对于劳动者按时足额获取报酬的权利受到
汽车车身贴纸粘贴方法湿贴法可以吗
电源的变压器上写着16V 1A是什么意思啊,VA有
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?