24
Linux 磁碟加密 SOP 版本:v1.1 文件更新日期:2021/03/19

CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

Linux磁碟加密 SOP

版本:v1.1

文件更新日期:2021/03/19

Page 2: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

目錄 一、 以 dm-crypt建立 Linux加密檔案系統 ........................................................ 1 二、 硬碟加密情境說明........................................................................................ 1 三、 硬碟加密 SOP ................................................................................................ 2

3.1 CentOS 7 ..................................................................................................... 2 3.2 CentOS 8 ..................................................................................................... 6 3.3 Ubuntu 16.04 ........................................................................................... 10 3.4 Ubuntu 18.04 ........................................................................................... 14 3.5 Ubuntu 20.04 ........................................................................................... 18

四、 參考資料...................................................................................................... 22

Page 3: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 1頁

一、 以 dm-crypt建立 Linux加密檔案系統

1. 加密的檔案系統可以保障 Hard Disk不會受到硬體層面的攻擊,於雲端環境中,當用戶自行將個資、資料庫…等機敏資料放置於虛擬機器上加密過的檔

案系統上,能保證雲服務提供商之平台維運人員無法碰觸到客戶的 SaaS資料,任何人將虛擬硬碟弄到手後,依然要用暴力法(Brute-force)猜測加密金鑰,構成取得機敏資料的重大阻礙。而 dm-crypt透過 cryptsetup這個工具程式,為 Linux提供一個簡潔易用的加密檔案系統工具。

2. 硬碟加密的不足之處為,對硬碟加密將造成寫入操作性能略差於原始虛擬硬碟。

二、 硬碟加密情境說明

1. 以下將於 CentOS與 Ubuntu虛擬機器環境,於 hicloud上額外申租掛載一個EBS硬碟,分別以密碼或密鑰檔案加密硬碟的分割區,若須設定開機自動掛載加密硬碟的分割區,則建議採用密鑰檔案加密硬碟,並須設定嚴格的檔案

權限與妥善保存。 2. 用戶若須將現有未加密的檔案目錄改換成有加密的檔案目錄,則建議參考此文件,先建立另外一個 EBS加密硬碟的分割區,再自行搬移檔案目錄至加密硬碟的分割區,最後掛載至原本檔案目錄的路徑。

Page 4: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 2頁

三、 硬碟加密 SOP

3.1 CentOS 7 Step1: 確認 OS版本

# cat /etc/centos-release

Step2: 安裝 cryptsetup套件

# yum install cryptsetup

Step3: 於 hicloud上額外申租一個儲存空間並掛載至此 VM,並自行於 OS建立分割區 (如 sdb1)

Page 5: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 3頁

Step4: 查看剛申租掛載至 VM的硬碟 /dev/sdb

# fdisk -l

Step5: 透過 cryptsetup創建加密分割區 (此步驟會清空所有資料)

# cryptsetup luksFormat /dev/sdb1 輸入大寫 YES,並輸入兩次密碼

Step6: 以 root使用者產生隨機密鑰檔案,並調整為只有 root使用者可讀取

# dd if=/urandom of=/root/enc.key bs=1 count=4096 # chmod 400 /root/enc.key

Step7: 添加密鑰檔案作為加密分割區的密碼之一,需輸入創建加密分割區的密碼

# cryptsetup luksAddKey /dev/sdb1 /root/enc.key

Page 6: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 4頁

Step8: 以密碼或密鑰解密,並掛載為 enc_ecrypted_storage虛擬設備 - 以密碼解密,需輸入創建加密分割區的密碼

# cryptsetup luksOpen /dev/sdb1 enc_ecrypted_storage

- 以密鑰解密

# cryptsetup luksOpen -d /root/enc.key /dev/sdb1 enc_ecrypted_storage

Step9: 當解密成功時,會於/dev/mapper路徑底下產生 enc_ecrypted_storage虛擬設備

# ll /dev/mapper/enc_ecrypted_storage

Step10: 將 enc_ecrypted_storage格式化成 ext4格式

# mkfs.ext4 /dev/mapper/enc_ecrypted_storage

Page 7: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 5頁

Step11: 將加密分割區 enc_ecrypted_storage掛載至/mnt後,即可使用

# mount /dev/mapper/enc_ecrypted_storage /mnt/

Step12: 手動卸載後,/dev/mapper路徑底下的 enc_ecrypted_storage虛擬設備則會消失

# umount /mnt # cryptsetup luksClose enc_ecrypted_storage

Step13: 若須設定開機自動掛載加密分割區,則參考下圖增加/etc/crypttab與/etc/fstab之設定

# vi /etc/crypttab enc_ecrypted_storage /dev/sdb1 /root/enc.key # vi /etc/fstab /dev/mapper/enc_ecrypted_storage /mnt ext4 defaults 0 0

Page 8: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 6頁

3.2 CentOS 8 Step1: 確認 OS版本

# cat /etc/centos-release

Step2: 安裝 cryptsetup套件

# yum install cryptsetup

Step3: 於 hicloud上額外申租一個儲存空間並掛載至此 VM,並自行於 OS建立分割區 (如 sdb1)

Step4: 查看剛申租掛載至 VM的硬碟 /dev/sdb

# fdisk -l

Page 9: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 7頁

Step5: 透過 cryptsetup創建加密分割區 (此步驟會清空所有資料)

# cryptsetup luksFormat /dev/sdb1 輸入大寫 YES,並輸入兩次密碼

Step6: 以 root使用者產生隨機密鑰檔案,並調整為只有 root使用者可讀取

# dd if=/urandom of=/root/enc.key bs=1 count=4096 # chmod 400 /root/enc.key

Step7: 添加密鑰檔案作為加密分割區的密碼之一,需輸入創建加密分割區的密碼

# cryptsetup luksAddKey /dev/sdb1 /root/enc.key

Step8: 以密碼或密鑰解密,並掛載為 enc_ecrypted_storage虛擬設備

- 以密碼解密,需輸入創建加密分割區的密碼

# cryptsetup luksOpen /dev/sdb1 enc_ecrypted_storage

- 以密鑰解密

# cryptsetup luksOpen -d /root/enc.key /dev/sdb1 enc_ecrypted_storage

Page 10: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 8頁

Step9: 當解密成功時,會於/dev/mapper路徑底下產生 enc_ecrypted_storage虛擬設備

# ll /dev/mapper/enc_ecrypted_storage

Step10: 將 enc_ecrypted_storage格式化成 ext4格式

# mkfs.ext4 /dev/mapper/enc_ecrypted_storage

Step11: 將加密分割區 enc_ecrypted_storage掛載至/mnt後,即可使用

# mount /dev/mapper/enc_ecrypted_storage /mnt/

Page 11: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 9頁

Step12: 手動卸載後,/dev/mapper路徑底下的 enc_ecrypted_storage虛擬設備則會消失

# umount /mnt # cryptsetup luksClose enc_ecrypted_storage

Step13: 若須設定開機自動掛載加密分割區,則參考下圖增加/etc/crypttab與/etc/fstab之設定

# vi /etc/crypttab enc_ecrypted_storage /dev/sdb1 /root/enc.key # vi /etc/fstab /dev/mapper/enc_ecrypted_storage /mnt ext4 defaults 0 0

Page 12: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 10頁

3.3 Ubuntu 16.04 Step1: 確認 OS版本

# cat /etc/os-release

Step2: 安裝 cryptsetup套件

# apt install cryptsetup

Step3: 於 hicloud上額外申租一個儲存空間並掛載至此 VM,並自行於 OS建立分割區 (如 sdb1)

Step4: 查看剛申租掛載至 VM的硬碟 /dev/sdb

# fdisk -l

Page 13: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 11頁

Step5: 透過 cryptsetup創建加密分割區 (此步驟會清空所有資料)

# cryptsetup luksFormat /dev/sdb1 輸入大寫 YES,並輸入兩次密碼

Step6: 以 root使用者產生隨機密鑰檔案,並調整為只有 root使用者可讀取

# dd if=/urandom of=/root/enc.key bs=1 count=4096 # chmod 400 /root/enc.key

Step7: 添加密鑰檔案作為加密分割區的密碼之一,需輸入創建加密分割區的密碼

# cryptsetup luksAddKey /dev/sdb1 /root/enc.key

Step8: 以密碼或密鑰解密,並掛載為 enc_ecrypted_storage虛擬設備

- 以密碼解密,需輸入創建加密分割區的密碼

# cryptsetup luksOpen /dev/sdb1 enc_ecrypted_storage

- 以密鑰解密

# cryptsetup luksOpen -d /root/enc.key /dev/sdb1 enc_ecrypted_storage

Page 14: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 12頁

Step9: 當解密成功時,會於/dev/mapper路徑底下產生 enc_ecrypted_storage虛擬設備

# ll /dev/mapper/enc_ecrypted_storage

Step10: 將 enc_ecrypted_storage格式化成 ext4格式

# mkfs.ext4 /dev/mapper/enc_ecrypted_storage

Step11: 將加密分割區 enc_ecrypted_storage掛載至/mnt後,即可使用

# mount /dev/mapper/enc_ecrypted_storage /mnt/

Page 15: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 13頁

Step12: 手動卸載後,/dev/mapper路徑底下的 enc_ecrypted_storage虛擬設備則會消失

# umount /mnt # cryptsetup luksClose enc_ecrypted_storage

Step13: 若須設定開機自動掛載加密分割區,則參考下圖增加/etc/crypttab與/etc/fstab之設定

# vi /etc/crypttab enc_ecrypted_storage /dev/sdb1 /root/enc.key # vi /etc/fstab /dev/mapper/enc_ecrypted_storage /mnt ext4 defaults 0 0

Page 16: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 14頁

3.4 Ubuntu 18.04 Step1: 確認 OS版本

# cat /etc/os-release

Step2: 安裝 cryptsetup套件

# apt install cryptsetup

Step3: 於 hicloud上額外申租一個儲存空間並掛載至此 VM,並自行於 OS建立分割區 (如 sdb1)

Step4: 查看剛申租掛載至 VM的硬碟 /dev/sdb

# fdisk -l

Page 17: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 15頁

Step5: 透過 cryptsetup創建加密分割區 (此步驟會清空所有資料)

# cryptsetup luksFormat /dev/sdb1 輸入大寫 YES,並輸入兩次密碼

Step6: 以 root使用者產生隨機密鑰檔案,並調整為只有 root使用者可讀取

# dd if=/urandom of=/root/enc.key bs=1 count=4096 # chmod 400 /root/enc.key

Step7: 添加密鑰檔案作為加密分割區的密碼之一,需輸入創建加密分割區的密碼

# cryptsetup luksAddKey /dev/sdb1 /root/enc.key

Step8: 以密碼或密鑰解密,並掛載為 enc_ecrypted_storage虛擬設備

- 以密碼解密,需輸入創建加密分割區的密碼

# cryptsetup luksOpen /dev/sdb1 enc_ecrypted_storage

- 以密鑰解密

# cryptsetup luksOpen -d /root/enc.key /dev/sdb1 enc_ecrypted_storage

Page 18: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 16頁

Step9: 當解密成功時,會於/dev/mapper路徑底下產生 enc_ecrypted_storage虛擬設備

# ll /dev/mapper/enc_ecrypted_storage

Step10: 將 enc_ecrypted_storage格式化成 ext4格式

# mkfs.ext4 /dev/mapper/enc_ecrypted_storage

Step11: 將加密分割區 enc_ecrypted_storage掛載至/mnt後,即可使用

# mount /dev/mapper/enc_ecrypted_storage /mnt/

Page 19: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 17頁

Step12: 手動卸載後,/dev/mapper路徑底下的 enc_ecrypted_storage虛擬設備則會消失

# umount /mnt # cryptsetup luksClose enc_ecrypted_storage

Step13: 若須設定開機自動掛載加密分割區,則參考下圖增加/etc/crypttab與/etc/fstab之設定

# vi /etc/crypttab enc_ecrypted_storage /dev/sdb1 /root/enc.key # vi /etc/fstab /dev/mapper/enc_ecrypted_storage /mnt ext4 defaults 0 0

Page 20: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 18頁

3.5 Ubuntu 20.04 Step1: 確認 OS版本

# cat /etc/os-release

Step2: 安裝 cryptsetup套件

# apt install cryptsetup

Step3: 於 hicloud上額外申租一個儲存空間並掛載至此 VM,並自行於 OS建立分割區 (如 sdb1)

Step4: 查看剛申租掛載至 VM的硬碟 /dev/sdb

# fdisk -l

Page 21: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 19頁

Step5: 透過 cryptsetup創建加密分割區 (此步驟會清空所有資料)

# cryptsetup luksFormat /dev/sdb1 輸入大寫 YES,並輸入兩次密碼

Step6: 以 root使用者產生隨機密鑰檔案,並調整為只有 root使用者可讀取

# dd if=/urandom of=/root/enc.key bs=1 count=4096 # chmod 400 /root/enc.key

Step7: 添加密鑰檔案作為加密分割區的密碼之一,需輸入創建加密分割區的密碼

# cryptsetup luksAddKey /dev/sdb1 /root/enc.key

Step8: 以密碼或密鑰解密,並掛載為 enc_ecrypted_storage虛擬設備

- 以密碼解密,需輸入創建加密分割區的密碼

# cryptsetup luksOpen /dev/sdb1 enc_ecrypted_storage

- 以密鑰解密

# cryptsetup luksOpen -d /root/enc.key /dev/sdb1 enc_ecrypted_storage

Page 22: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 20頁

Step9: 當解密成功時,會於/dev/mapper路徑底下產生 enc_ecrypted_storage虛擬設備

# ll /dev/mapper/enc_ecrypted_storage

Step10: 將 enc_ecrypted_storage格式化成 ext4格式

# mkfs.ext4 /dev/mapper/enc_ecrypted_storage

Step11: 將加密分割區 enc_ecrypted_storage掛載至/mnt後,即可使用

# mount /dev/mapper/enc_ecrypted_storage /mnt/

Page 23: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 21頁

Step12: 手動卸載後,/dev/mapper路徑底下的 enc_ecrypted_storage虛擬設備則會消失

# umount /mnt # cryptsetup luksClose enc_ecrypted_storage

Step13: 若須設定開機自動掛載加密分割區,則參考下圖增加/etc/crypttab與/etc/fstab之設定

# vi /etc/crypttab enc_ecrypted_storage /dev/sdb1 /root/enc.key # vi /etc/fstab /dev/mapper/enc_ecrypted_storage /mnt ext4 defaults 0 0

Page 24: CentOS 磁碟加密 SOP - HiNethicloud.hinet.net/assets/encrypting_centos.pdf · 2020. 11. 5. · 中華電信 CentOS 磁碟加密SOP 本文件未經中華電信許可禁止引用或翻印。

第 22頁

四、 參考資料

https://en.wikipedia.org/wiki/Dm-crypt https://wiki.centos.org/zh-tw/HowTos/EncryptedFilesystem https://www.linux-geex.com/centos-7-how-to-setup-your-encrypted-filesystem-

in-less-than-15-minutes/