RHCE系列之磁盤加密—-LUKS加密

原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://nolinux.blog.51cto.com/4824967/1436460

       LUKS (Linux Unified Key Setup)為 Linux 硬盤加密提供了一種標準,它不僅能通用于不同的 Linux 發行版本,還支持多用戶/口令,并且由于它的加密密鑰獨立于口令,所以即使口令失密,我們也無需重新加密整個硬盤,只需要及時的改變口令即可重獲安全!

       由于 LUKS 提供了一個標準的磁盤加密格式,使得它不僅兼容性高,而且還提供了多用戶密碼管理的安全機制。


      在我們的操作系統中,負責對磁盤做加密的工具為 Cryptsetup ,默認我們的系統已經安裝了該工具。

      由于 Cryptsetup 是分區級別的加密,比文件系統級別工作在更底層的位置,是在經過加密的塊設備上,創建文件系統,最后掛載使用。因此凡是使用 Cryptsetup 對分區進行加密之后,這個分區就不能再被直接掛載了。

      LUKS 也是一種基于 device mapper(dm) 機制的加密方案。如果要使用加密后的分區,就必須對加密后的分區做一個映射,映射到 /dev/mapper 這個目錄下。映射完成之后,我們也只能掛載這個映射來進行使用,并且在做映射的時候還需要輸入加密分區的加密密碼。

       因此,我們通常把較為敏感的文件放在加密分區當中,從而增強文件的安全性。



這里簡單介紹下  Crypsetup 工具的加密特點

1、加密后不能直接掛載

2、加密后硬盤丟失也不用擔心數據被盜

3、加密后必須做映射才能掛載



下面就開始加密分區創建和使用的相關操作:


1、使用fdisk工具創建一個新的分區

使用 fdisk 分區的步驟(略)!

[root@nolinux ~]# 
dd if=/dev/urandom of=/dev/sda6   # 可選步驟

3、使用工具 Cryptsetup 對分區進行加密。在該步驟會出現警告信息,提示操作人員此步驟可能會損害/dev/sda6里面的數據。如果我們確定該分區或者磁盤是干凈的,就大膽的敲入YES。注意一定是大寫的YES!接著,輸入兩遍密碼即可,此密碼一定不能忘記!

[root@nolinux ~]# cryptsetup luksFormat /dev/sda6
WARNING!
========
This will overwrite data on /dev/sda6 irrevocably.
Are you sure? (Type uppercase yes): YES   # 請輸入YES,表示確定
Enter LUKS passphrase:                    # 輸入你加密的密碼
Verify passphrase:                        # 再次輸入你加密的密碼

4、繼續使用 Cryptsetup 對我們剛才的加密分區 /dev/sda6 做映射,映射文件將放到 /dev/mapper 目錄中。此步映射必須做,不做將無法使用加密分區。另外,映射的時候,它還會提示你需要輸入上一步加密的密鑰。

[root@nolinux ~]# cryptsetup luksOpen /dev/sda6 nolinux  #回車后會提示你輸入密碼
Enter passphrase for /dev/sda6: 
[root@nolinux ~]# ll /dev/mapper/nolinux    #查看我們生成的映射設備文件
lrwxrwxrwx 1 root root 7 7月   9 21:06 /dev/mapper/nolinux -> ../dm-0

       做映射的過程就相當于打開加密分區的過程。因此,當我們做完映射之后,就表示已經將加密分區打開。此時,我們通過訪問映射,對映射的設備文件做操作就等于對我們的加密分區做操作。


5、在解密的映射文件上創建文件系統(此處使用ext4文件系統)

[root@nolinux ~]# mkfs -t ext4 /dev/mapper/nolinux
mke2fs 1.41.12 (17-May-2010)
。。。  # 過程省略
This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

6、掛載解密后的映射設備上的文件系統

[root@nolinux ~]# mkdir /nolinux   #創建掛載點
[root@nolinux ~]# mount /dev/mapper/nolinux /nolinux  #掛載加密分區

7、對掛載后的分區進行文件讀寫測試

[root@nolinux ~]# echo redhat > /nolinux/test
[root@nolinux ~]# cat /nolinux/test
redhat

以上就為一個 LUKS 加密分區的完整創建過程,加入你已經使用完畢,要將加密分區關閉時,要做什么操作呢?請看下面


1、卸載掛載點

[root@nolinux ~]# cryptsetup luksClose nolinux
[root@nolinux ~]# cryptsetup luksClose nolinux

注意:如果我們想要再次訪問該加密分區,重復上面創建中的第4和第6步操作即可。


OK!上面就是介紹了一個加密分區的打開使用和關閉保護的過程。假如你經常使用,你需要在系統開機啟動的時候就能自動掛載你的加密分區,此時該怎么辦呢?

我們知道,經過 LUKS 加密的分區必須要做映射,并且做映射的時候需要輸入密碼。

LUKS 默認為我們提供了這樣的解決方案,請看下面的操作:


永久掛載加密分區

1、使用 Cryptsetup 做加密分區映射

[root@nolinux ~]# cryptsetup luksOpen /dev/sda6 nolinux  #回車后會提示你輸入密碼
Enter passphrase for /dev/sda6: 
[root@nolinux ~]# ll /dev/mapper/nolinux    #查看我們生成的映射設備文件
lrwxrwxrwx 1 root root 7 7月   9 37:06 /dev/mapper/nolinux -> ../dm-0

2、在etc目錄下有一個crypttab文件,該文件負責處理經過cryptsetup加密分區的映射以及對應的密碼文件。因此我們需要向 /etc/crypttab 文件里添加一條條目。

[root@nolinux ~]# echo 'nolinux /dev/sda6 /root/passwd' >> /etc/crypttab # 映射關系以及密碼文件的路徑
[root@nolinux ~]# cat /etc/crypttab
nolinux /dev/sda6 /root/passwd

3、創建密碼文件

   創建密碼文件有2種方式,一種是直接把密碼放到我們上面在/etc/crypttab文件中指定的密碼文件中,另外一種是使用系統自帶的隨機數生成設備/dev/random 去生成一個4K的隨機數文件。

[root@nolinux ~]# echo redhat > /root/passwd
或
[root@nolinux ~]# dd if=/dev/random of=/root/passwd bs=4096 count=1
記錄了0+1 的讀入
記錄了0+1 的寫出
128字節(128 B)已復制,0.000712986 秒,180 kB/秒

4、使用工具 Cryptsetup 為加密分區手動添加一次 LUKS 秘鑰文件。注意,此步驟會提示你輸入加密分區時的密碼!

[root@nolinux ~]# cryptsetup luksAddKey /dev/sda6 /root/passwd   # 回車后會提示你輸入密碼
Enter any passphrase:

5、在/etc/fstab里面添加永久掛載條目

[root@nolinux ~]# echo '/dev/mapper/nolinux /nolinux  ext4 defaults,_netdev 0 0' >> /etc/fstab
[root@nolinux ~]# tail -1 /etc/fstab
/dev/mapper/nolinux /nolinux  ext4 defaults,_netdev 0 0

注意:此處使用掛載參數_netdev目的是為了防止該設備出現問題掛不上而導致整個系統起不來,使用了_netdev之后,即可該加密分區掛不上,也不會影響我們整個系統的啟動。


6、執行掛載

[root@nolinux ~]# mount -a  # 由于掛載條目已經寫入/etc/fstab,因此我們可以直接執行mount -a來進行掛載操作
[root@nolinux ~]# df -h|tail -1
/dev/mapper/nolinux   95M  5.6M   85M   7% /nolinux

當然,這里你也可以直接重啟電腦來進行自動掛載的功能測試!


補充,對于 LUKS 加密的磁盤狀態,我們在加密分區打開的狀態下(即建立映射的情況下),我們可以使用如下命令來進行查看

[root@nolinux ~]# cryptsetup status /dev/mapper/nolinux 
/dev/mapper/nolinux is active and is in use.
  type:  LUKS1
  cipher:  aes-cbc-essiv:sha256
  keysize: 256 bits
  device:  /dev/sda6
  offset:  4096 sectors
  size:    200704 sectors
  mode:    read/write

  以上就是LUKS加密的相關內容,希望對大家有所幫助

轉自:http://nolinux.blog.51cto.com/4824967/1436460

原創文章,作者:s19930811,如若轉載,請注明出處:http://www.www58058.com/1962

(0)
s19930811s19930811
上一篇 2016-08-15 12:12
下一篇 2016-08-15 12:12

相關推薦

  • LB Cluster 負載均衡集群 —-lvs 配置詳解

    lvs : ipvs scheduler: 根據其調度時是否考慮各RS當前的負載狀態,可分為靜態方法和動態方法兩種: 1、靜態方法:僅根據算法本身進行調度; RR:roundrobin,輪詢; WRR:Weighted RR,加權輪詢; SH:Source Hashing,實現session sticy,源IP地址hash;將來自于同一個IP地址的請求始終發…

    Linux干貨 2016-10-30
  • 第一周作業

    1、描述計算機的組成及其功能。
    2、按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別。
    3、描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述。
    4、說明Linux系統上命令的使用格式;詳細介紹ifconfig、echou、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相應的示例來闡述。
    5、如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的。
    6、請羅列Linux發行版的基礎目錄名稱命名法則及共用規定。

    Linux干貨 2017-12-03
  • 自制linux與內核編譯

    自制Linux系統 1分區并創建文件系統 fdisk/dev/sdb 分兩個必要的分區 /dev/sdb1對應/boot /dev/sdb2對應根/ mkfs.ext4 /dev/sdb1 mkfs.ext4 /dev/sdb2 2掛載boot mkdir/mnt/boot mount /dev/sdb1 /mnt/boot ? 3安裝grub grub-i…

    Linux干貨 2016-09-13
  • N22第二周作業

    1.Linux上文件管理類命令有哪些,其常用的使用方法及其相關示列演示。  常用文件管理類命令有:cp, mv ,rm. (1)cp:copy (2)mv:move (3) rm:remove   2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示 3、請使用命令行展開功能來完成以下練習:   &nb…

    Linux干貨 2016-08-22
  • iptables 初識

    iptables 包過濾性防火墻     iptables是位于用戶空間,是防火墻管理配置規則的工具。     iptables的作用:用來添加,刪除,管理netfilter規則。     Netfilter是位于內核中真正的防火墻,由5個鉤子組成,…

    Linux干貨 2016-06-01
  • https搭建

    https             http over ssl = https 443/tcp                 ssl: v3           &nb…

    Linux干貨 2016-06-28
欧美性久久久久