哦出於安全和隱私的原因,Linux 使用 Linux 磁盤統一密鑰格式 (LUKS) 來加密分區和整個磁盤。在啟動時輸入密碼以解鎖受 LUKS 保護的磁盤。您需要在引導時在計算機前或使用 Linux 上的遠程控制台打開加密磁盤。但是,如果您的系統位於地下室、遠程數據中心/辦公室或樓上辦公室,您將無法解鎖和啟動您的 Linux 機器。為避免這種情況,請為 Debian 或 Ubuntu 使用 LUKS 加密的 Dropbear SSH 服務器,或通過 SSH 使用其他 Linux 發行版。讓我們來看看 如何在 Linux 上使用 Dropbear SSH 密鑰解鎖 LUKS 在啟動時。
為什麼要使用 Dropbear ssh 來使用和解鎖 LUKS 加密的根目錄和啟動磁盤?
- 適用於遠程Linux服務器或云服務器
- 如果您沒有遠程 KVM 控制台,請啟動以訪問設備。
- 這意味著您可以在鍵盤和屏幕未連接到盒子時啟動 Linux 服務器。
什麼是 Dropbear SSH 服務器?
Dropbear 是一個免費的開源 SSH 服務器已創建 特別是,它適用於資源要求低的嵌入式 Linux 和 Unix 系統。實現安全外殼 (SSH) 協議的第 2 版。支持用於密鑰交換的 RSA 和橢圓曲線加密。 Dropbear 兼容 OpenSSH ~/.ssh/authorized_keys 公鑰認證。我假設您安裝了 Debian 或 Ubuntu Linux,並安裝了 LVM 和 LUKS。這是我的設置。還有軟件RAID-1。
- /boot/efi – 系統啟動分區是在主板運行 UEFI 而不是 BIOS 時創建的。
- /dev/md0——Linux/boot/(RAID-1/dev/md0掛載在/boot/)目錄只保存啟動過程中需要的文件。引導加載程序初始化一個名為 initrd 的 RAM 磁盤。 使用 update-initramfs 將 Dropbearssh 服務器連接到引導進程。 運行ls命令顯示/boot/目錄。您應該會看到類似於以下內容的文件:
ls -1 /boot/*$(uname -r)*
/boot/config-4.19.0-13-amd64
/boot/initrd.img-4.19.0-13-amd64
/boot/System.map-4.19.0-13-amd64
/boot/vmlinuz-4.19.0-13-amd64
vmlinuz 是我的 Linux 內核,initrd 包含一個 Linux 驅動程序、RAID 支持、一個 Dropbear ssh 服務器等,用於引導 Linux 系統。 - /dev/md1-My LUKS 加密系統 RAID-1 設備。 有兩個 LVM 成員。 一個用於交換,另一個用於根分區。即除了/boot/efi分區和/boot/分區之外的所有數據都是加密的。 也可以加密/啟動/。由於不同的安全和威脅模型,我們建議您在啟動時使用額外的保護,例如 BIOS/UEFI 密碼、家庭/辦公室/數據中心訪問保護以及 FDE 啟用以滿足您的需求。
在 Ubuntu / Debian 上遠程解鎖 LUKS 加密根的設置示例
運行 lsblk 命令以顯示當前磁盤、RAID、加密和 LVM 信息。# lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT
您還可以使用 cat 命令來識別加密分區。sudo cat /etc/crypttab
這就是我所看到的:
md1_crypt UUID=45b8c33e-a710-4062-b98f-a32a45c9d947 none luks,discard
我的 Linux OS 版本和生產 Linux 內核版本是:lsb_release -a && uname -mrs
樣本輸出:
No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 10 (buster) Release: 10 Codename: buster Linux 4.19.0-13-amd64 x86_64
充足的。讓我們親自動手,看看如何通過 Dropbear SSH 遠程解密 LUKS 設備。
在 Linux 上使用 Dropbear SSH 密鑰解鎖 LUKS 的步驟
安裝 Dropbear ssh 並為 LUKS 加密的 Debian 10.x 和 Ubuntu 20.04LTS 服務器啟用遠程解鎖。
步驟 1-在 Debian 或 Ubuntu 上安裝 Dropbear
執行apt命令/apt-get命令如下。## First, apply Debian security patches ##
sudo apt update
sudo apt upgrade
sudo apt install dropbear-initramfs
筆記:您可能會看到諸如“dropbear:警告:authorized_keys 文件無效。無法通過 SSH 遠程解鎖 cryptroot!”之類的警告。請忽略。
步驟 2-配置 Dropbear 以解鎖 LUKS 加密系統
使用 su 或 sudo 命令成為 root 用戶。sudo -i
使用 CD 鍵入 /etc/dropbear-initramfs cd 命令:cd /etc/dropbear-initramfs
編輯配置文件:# vim config
編輯/更新 DROPBEAR_OPTIONS 如下:DROPBEAR_OPTIONS="-I 180 -j -k -p 2222 -s"
選項包括:
- -我是 180 :如果 180 秒內沒有發送或接收流量,則斷開會話。
- -j : SSH 禁用本地端口轉發。
- -k :還禁用遠程端口轉發。
- -p 2222 : 在指定的地址和 TCP 端口監聽 Dropbearssh 服務器。 如果只指定一個端口,例如 2222,則監聽所有地址。您最多可以指定 10 個(如果未指定,則默認為 22 個)。
- -s :禁用密碼登錄。 在 Linux / Unix 系統上設置 SSH 密鑰進行身份驗證以減少攻擊面。
第 3 步 – 配置靜態 IP
對於地下室的本地 Linux 服務器,您可能能夠通過 DHCP 服務器確定將哪個 IP 提供給 Dropbox。這是默認行為。但是,數據中心或云中的遠程服務器需要公共 IP 地址,就像常規的 OpenSSH 會話一樣。設置公網 IP 地址: 編輯 /etc/initramfs-tools/initramfs.conf# vim /etc/initramfs-tools/initramfs.conf
在 Dropbearssh 啟動時添加靜態 IP 信息。IP=192.168.2.19::192.168.2.254:255.255.255.0:debian
在哪裡:
- 知識產權= – 啟用靜態 IP 配置
- ::: – 字段分隔符
- 192.168.2.19 – IPv4
- 192.168.2.254 -網關
- 255.255.255.0 – 網絡掩碼
- Debian -CPU 名稱
完成 句法 IPv4 和 IPv6 的靜態 IP 設置如下:
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>: <dns-server-0-ip>:<dns-server-1-ip>:<ntp0-ip>
第 4 步 – 更新或構建 initramfs 映像
每次更改 /etc/initramfs-tools/initramfs.conf 或 /etc/dropbear-initramfs / config 時,使用 update-initramfs 腳本管理本地計算機上的 initramfs 映像。sudo update-initramfs -u
sudo update-initramfs -u -v
-u 選項會更新現有的 initramfs,而 -v 選項會增加所選操作期間提供的信息量。
第 5 步 – 創建用於登錄的 SSH 密鑰
讓我們回到桌面客戶端,例如 macOS、* BSD 和基於 Linux 的發行版。打開終端並輸入以下命令來配置基於 SSH 公鑰的身份驗證。{client}$ ssh-keygen -t rsa -f ~/.ssh/intel_nuc_debian
將桌面客戶端公鑰~/.ssh/intel_nuc_debian.pub複製到/etc/dropbear-initramfs/authorized_keys,每行一個密鑰。{client}$ cat ~/.ssh/intel_nuc_debian.pub
如果啟用了 root ssh 訪問,請嘗試以下操作:{client}$ cat ~/.ssh/intel_nuc_debian.pub | ssh [email protected] "cat >> /etc/dropbear-initramfs/authorized_keys"
對於普通用戶,請嘗試以下操作:{client}$ scp ~/.ssh/intel_nuc_debian.pub [email protected]:~/key.pub
{client}$ ssh [email protected]
{server}$ sudo -i
{server}# cat /home/vivek/key.pub >> /etc/dropbear-initramfs/authorized_keys
{server}# rm /home/vivek/key.pub
{server}# exit
{server}$ exit
請更新initrd:{server}$ sudo update-initramfs -u
第 6 步 – 啟用 LUKS 遠程解鎖時測試您的 Linux 服務器
到目前為止,一切都很好。 我已經為 initramfs 安裝了 Dropbearssh。使用靜態 IP 配置 Dropbear initramfs。 安裝 ssh 密鑰後,重新啟動 Linux 服務器。{server}$ sudo reboot
使用 ssh 解鎖 LUKS 卷
使用 ping 命令檢查連接。{client}$ ping 192.168.2.19
讓我們使用 ssh 命令登錄。{client}$ ssh -i ~/.ssh/intel_nuc_debian -p 2222 -o "HostKeyAlgorithms ssh-rsa" [email protected]
要解鎖它,請運行以下命令:# cryptroot-unlock
全部的
使用它在 Dropbearssh 服務器的幫助下使用 ssh 遠程解鎖 LUKS 磁盤。我們建議您配置 OpenSSH 配置文件,以免輸入長 ssh 命令。
這個條目是 四 的 五 裡面 Linux Unified Key Setup (LUKS) 是關於磁盤加密的教程 系列。閱讀本系列的其餘部分:
- 使用 LUKS 進行 Linux 硬盤加密
- 在 Linux 上備份和恢復 LUKS 標頭
- 在 Linux 上更改 LUKS 磁盤加密密碼
- 在 Linux 上使用 Dropbear SSH 密鑰遠程解鎖 LUKS
- 在 Linux 上使用密鑰文件添加/啟用 LUKS 磁盤加密