在 Ubuntu Server 24.04 上加密 Pi-hole 上游 DNS
在 Ubuntu 24.04 上將 dnscrypt-proxy 設定為 Pi-hole 的本地 DoH 橋,設定僅限 localhost 的監聽器、解析器選擇以及切換 DNS 前的檢查。
在 Debian 12 中,每次系統啟動時都可以使用新的隨機金鑰加密專用交換分割區。在 `/etc/debian/swap` 檔案中新增隨機金鑰映射/etc/crypttab,然後指向/etc/fstab映射的裝置;以下設定使用現有分區,無需重新安裝 Debian。
此過程適用於普通交換分割區,而非休眠(掛起到磁碟)。由於密鑰會在關機時被丟棄,因此休眠映像在下次啟動時無法解密。如果需要休眠功能,請改用具有獨立復原配置的持久性金鑰設計。
請確保您使用一個單獨的分割區,且該分割區的檔案系統類型為swap. 請勿使用根分割區、資料分割區或包含您所需檔案的磁碟。以下範例設備名稱僅供參考:請將其替換為您系統中的實際值。
檢查活動交換區域並將其與區塊設備清單進行比對:
swapon --show --output=NAME,TYPE,SIZE,USED,PRIO
lsblk -o NAME,PATH,TYPE,FSTYPE,UUID,PARTUUID,SIZE
TYPE找到包含 ` <path>`part和FSTYPE`<path>` 的行swap。記錄其值PARTUUID,並確認它與 `<path>` 顯示的分區相同swapon --show。 `<path>`PARTUUID標識分區本身,並且在重新建立交換區域時保持不變。交換檔案系統 UUID 可能會改變,因為加密映射會在啟動時重新初始化。

編輯前請先備份/etc/fstab。如果分區正在使用中,請僅關閉該交換區域:
sudo cp -a /etc/fstab "/etc/fstab.before-cryptswap.$(date +%s)"
sudo swapoff /dev/nvme0n1p3
替換/dev/nvme0n1p3為已驗證的裝置。停用交換分區會將儲存在其中的所有頁面移回記憶體。如果命令失敗或機器記憶體壓力過大,請停止操作,關閉佔用大量記憶體的工作負載,並在有足夠的可用記憶體時重試。

使用 root 權限編輯器開啟 crypttab 檔案:
sudoedit /etc/crypttab
新增一行,將內容替換為實際的分區標識符。在下一步中YOUR-PARTUUID保持映射名稱一致。cryptswap
cryptswap PARTUUID=YOUR-PARTUUID /dev/urandom plain,cipher=aes-xts-plain64,size=256,hash=sha1,swap
/etc/crypttab告訴 Debian 啟動時要建立哪個加密區塊裝置。PARTUUID=來源指向原始分割區;/dev/urandom提供一個新金鑰;plain選擇不含持久 LUKS 標頭的 dm-crypt 加密演算法;並swap要求 crypttab 輔助程式將對應的裝置初始化為交換分割區。密碼、金鑰長度和雜湊值均需明確指定,參考Debian Bookworm crypttab 範例。映射關係顯示為 ` <your-map>`。/dev/mapper/cryptswap此swap選項mkswap在啟動時作用於已對應的設備,因此其內容會在每次啟動時重新初始化。來源僅指向您已驗證的專用交換分割區;如果指向包含檔案的分割區,則此選項會造成破壞。

現在打開/etc/fstab。註解掉或刪除啟用原始交換分割區的舊行,包括任何引用其目前交換分割區 UUID 的行。改為新增以下條目:
/dev/mapper/cryptswap none swap sw 0 0
請勿同時啟用這兩個條目:否則可能會同時啟用未加密分割區和加密對應。該fstab檔案描述了啟動時啟用的交換區域,而 Debian 的 systemd cryptsetup 生成器會讀取/etc/crypttab並建立相應的單元。請參閱Bookworm 的 systemd cryptsetup 產生器手冊和Debian 的 fstab 手冊。

儲存這兩個檔案並重啟,以便 Debian 在啟動時建立映射:
sudo reboot
重新登入後,檢查活動交換路徑和 dm-crypt 映射:
swapon --show
sudo cryptsetup status cryptswap
交換分區清單應包含明文分區名稱/dev/mapper/cryptswap,而非原始分區名稱。 cryptsetup 狀態輸出應顯示活動的明文映射以及預期的底層分區。第二個檢查至關重要:swapon --show單獨出現在清單中的交換分區條目並不能證明它已加密。
如果對應缺失,請檢查路徑拼字是否PARTUUID正確lsblk,並使用 `config` 指令檢查啟動日誌sudo journalctl -b -u systemd-cryptsetup@cryptswap.service。確認舊的原始設備條目在 `config` 中不再處於活動狀態。設定映射後,/etc/fstab請勿直接在原始分區上執行`config` 命令。mkswap
每次啟動時都會產生新的金鑰,因此在該會話期間寫入交換分割區的內容會在區塊裝置上進行加密,並且關機後不會保留上一個工作階段的金鑰。這在設備斷電後檢查其儲存時非常有用。但它不會加密磁碟的其餘部分,不會在 Debian 運行時保護數據,也不會自動擦除轉換前可能殘留在分割區上的明文。如果舊的交換分割區內容包含敏感訊息,請將其清理視為一項單獨的儲存特定任務;檔案系統層級的重新格式化並不能保證安全擦除,尤其是在固態硬碟 (SSD) 上。
Debian 的 Bookworm 安裝指南將隨機金鑰加密描述為適用於交換分割區,並指出它會導致重新啟動後無法復原休眠鏡像。請參閱Debian 12 安裝指南中的加密磁碟區部分。對於活動設備,請使用上述兩個驗證指令:映射器應處於作用中狀態,且其後備設備應與您選擇的分割區相符。
在 Ubuntu 24.04 上將 dnscrypt-proxy 設定為 Pi-hole 的本地 DoH 橋,設定僅限 localhost 的監聽器、解析器選擇以及切換 DNS 前的檢查。
在排查應用程式或硬體故障之前,請檢查 Ubuntu 的觸控板設定、確認 Wayland 以及測試 GNOME 的內建滑動功能。
建立並驗證一個雙磁碟 Debian 12 RAID 1 資料陣列,安全地格式化它,並配置它在重新啟動後組裝和掛載。
為現有的 Debian 12 交換分區設定隨機金鑰加密,驗證活動的 dm-crypt 映射,並了解休眠的權衡。
使用 chroot、適當的權限、匹配規則和安全測試,將 Ubuntu 24.04 SSH 帳戶限製到指定的 SFTP 資料夾,而不授予 shell 存取權限。
找到擁有 Ubuntu dpkg 前端鎖定的進程,讓軟體包工作完成,並在不刪除鎖定檔案的情況下修復中斷的安裝。
使用 Timeshift 在 Ubuntu Desktop 上設定定時 Btrfs 系統快照,驗證 Ubuntu 子磁碟區佈局,選擇保留策略,並了解快照無法保護的內容。
規劃更安全的 Debian 12 到 Testing 遷移:透過 Stable 版本升級,備份,清理 APT 來源,模擬依賴項更改,並驗證更改的內容。
安全地診斷 Ubuntu 伺服器緊急模式。讀取啟動日誌,檢查根目錄和 fstab 掛載點,修復故障單元,處理檔案系統錯誤,並驗證是否乾淨重新啟動。
為一個遠端客戶端設定 Debian 12 WireGuard VPN 伺服器。設定金鑰、IPv4 轉送、nftables NAT、防火牆存取和連線檢查。