zoukankan      html  css  js  c++  java
  • Linux下磁盘加密luks使用

    使用luks加密磁盘,磁盘需要映射才可以挂载,映射的时候需要输入密码验证。luks相对于是对硬盘上了一把锁,要想打开就得有相应的钥匙,如果打开了就可以随意操作了,和普通硬盘一样。

    使用方法如下:

    0、分区   创建一个磁盘分区/dev/sdb1,不进行格式化  

    [root@localhost]#fdisk /dev/sdb1  
    
    显示当前分区信息   Command (m for help):p  
    
    删除分区   Command (m for help):d  
    
    开始分区   Command (m for help):n  
    
      Command action     e   extended     p   primary partition (1-4)   p  
    
      Partition number (1-4): 1  
    
      First sector (1-104865, default 1): 回车  
    
      Last sector, +sectors +size{M,K,G} (1-104865, default 104865): 回车  
    
      保存退出   wq  
    

     1、加密分区  

    [root@localhost]# cryptsetup -v -y -c aes-cbc-plain luksFormat /dev/sdb1    
    
      WARNING!    
    
      ========    
    
      This will overwrite data on /dev/sdb1 irrevocably.    
    
      Are you sure? (Type uppercase yes): YES  --> 注意:这里必须是大写的YES  
    
      Enter LUKS passphrase:  
    
      Verify passphrase:   Command successful.
    

     2、映射分区  

    [root@localhost]# cryptsetup luksOpen /dev/sdb1 sx_disk  //把sdb1映射为sx_disk   
    
      Enter passphrase for /dev/sdb1:  
    
    [root@localhost]# ll -d /dev/mapper/sx_disk   
    
      lrwxrwxrwx. 1 root root 7  6月 25 03:24 /dev/mapper/sx_disk -> ../dm-0   //查看
    
    [root@localhost]# cryptsetup status /dev/mapper/sx_disk //查看映射分区状态  
    
      /dev/mapper/
    
      /dev/mapper/sx_disk is active.   
    
      type:  LUKS1   cipher:  aes-cbc-plain  
    
      keysize: 256 bits   device:  /dev/sdb1   
    
      offset:  4096 sectors   
    
      size:    16767701 sectors   
    
      mode:    read/write
    

     3、挂载使用  

    [root@localhost]# mkdir /mnt/sx_disk  
    
    [root@localhost]# mkfs.ext3 /dev/mapper/sx_disk  
    
    [root@localhost]# mount /dev/sdb1 /mnt/sx_disk/   //直接挂载是不可以的   
    
      mount: unknown filesystem type 'crypto_LUKS'  
    
    [root@localhost]# mount /dev/mapper/sx_disk /mnt/sx_disk/ //挂载映射设备,挂载成功
    

     4、设置开机自动挂载   生成密钥文件,www.linuxidc.com 如果想开机时手动输入密码可以不生成  

    [root@localhost]# touch /root/cryptpasswd  
    
    [root@localhost]# cryptsetup luksAddKey /dev/sdb1 /root/cryptpasswd    
    
      Enter any passphrase:  
    
    [root@localhost]# cat /root/cryptpasswd  //直接查看密钥为空
    

     5、设置开机自动解密  

    [root@localhost]# vim /etc/crypttab  
    
    [root@localhost]# cat /etc/crypttab  
    
      sx_disk /dev/sdb1 /root/cryptpasswd   //sx_disk为映射名称,/dev/sdb1是加密设备设备,/root/cryptpasswd为密码文件,如果想开机手动输入密码,密码文件处空着即可  
    
    [root@localhost]# vim /etc/fstab  
    
    [root@localhost]# tail -1 /etc/fstab  
    
       /dev/mapper/sx_disk       /mnt/sx_disk             ext4 defaults   0 0
    

     6、程序设置开机启动,在/etc/rc.local里面添加下面内容  

    [root@localhost]vim /etc/rc.local   /bin/bash "程序路径"  
    

     7、关闭映射,先卸载后关闭,注意:卸载后开机不会自己加载密码解锁的,这项在项目中不使用。   需要先退出目录  

    [root@localhost]# cd /root  
    
    [root@localhost]# umount /mnt/sx_disk/  
    
    [root@localhost]# cryptsetup luksClose sx_disk  //关闭映射  
    
    [root@localhost]# ll /dev/mapper/  //映射设备已经不见了
    
      总用量 0   crw-rw----. 1 root root 10, 58  6月 25 03:01 control
    

     8、禁止进入单用户模式   给grub加个密码,增禁止他人以单用户模式进入系统. 有2个方式:   vim /boot/grub/grub.conf  或者  vim /etc/grub.conf(/etc/grub.conf是/boot/grub/grub.conf的符号链接),

    1、明文方式:在splashimage这个参数下一行添加: password=密码。
    
       保存后重新启动计算机,再次登录到GRUB菜单页面的时候就会发现,这时已经不能直接使用e命令编辑启动标签了,须先使用p命令,输入正确的密码后才能够对启动标签进行编辑.    
    
       我们设置了明文密码也不是很安全的,如果他人得到了明文密码后仍然可以修改GRUB启动标签从而修改root密码。
    
    2、MD5加密方式:在终端中输入grub-md5-crypt回车,这时系统会要求输入两次相同的密码,之后系统便会输出MD5码。  
    
       大家只需要将生成的MD5密文复制下来,在splashimage这个参数下一行添加: password --md5 MD5密文比如:              
    
       #grub-md5-crypt     
    
             splashimage=(hd0,0)/grub/splash.xpm.gz                 
    
       password --md5 $1$xI6vS$Wi5pi8JyORUNnj3/0Yq2/0                 
    
             hiddenmenu   
    
            保存后重新启动计算机,再次登录到GRUB菜单页面的时候就会发现,这时已经不能直接使用e命令编辑启动标签了,须先使用p命令,输入正确的密码后才能够对启动标签进行编辑。
    
  • 相关阅读:
    第六周学习总结
    2,8,16进制转换的实现
    求最大公约数伪代码
    fibnacci数列递归实现
    2018-2019-1 20165337 实验五 通讯协议设计
    2018-2019-1 20165337 《信息安全系统设计基础》第九周学习总结
    2018-2019-1 20165325 20165320 20165337 实验四 外设驱动程序设计
    2018-2019-1 20165337 《信息安全系统设计基础》第八周学习总结
    2018-2019-1 20165337 实验三 实时系统
    2018-2019-1 20165337 《信息安全系统设计基础》第七周学习总结
  • 原文地址:https://www.cnblogs.com/etangyushan/p/4433972.html
Copyright © 2011-2022 走看看