Linux

從 VPS 本身安全擦除(擦洗)VPS 文件系統

  • June 11, 2014

我有一個打算刪除的 VPS。這個特定的雲提供商不保證在將磁碟交給下一個人之前會擦除驅動器上的數據。我可以盡最大努力保護驅動器上的敏感數據(無論是作為文件還是作為已刪除的數據存在)?

  • 假設提供商不提供單獨的、可引導的作業系統來執行維護

  • 如果不能保證每一個敏感數據都被擦除,那沒關係

    • (如果數據非常敏感,我會加密數據!)

在 VPS 文件系統的使用者數據部分2上使用清理命令1 。

注意:以下命令會故意破壞數據

以下是清理目標的想法列表,按合理的順序排列,但您可能需要根據您的特定 VPS 配置對其進行更改:

  • 數據庫,通常儲存在/var. 例如,如果你使用 MySQL,你會想說這樣的話:
# service stop mysql       # command varies by OS, substitute as necessary
# find /var/lib/mysql -type f -exec scrub {} \;
  • **/usr/local**應該只包含您添加到正常作業系統軟體包系統之外的系統的軟體。核對一切:
# find /usr/local -type f -exec scrub {} \;
  • **網路根。**對於執行 Apache 的裸 VPS 上的大多數 Linux Web 伺服器,這是一個很好的猜測:
# service stop apache      # ditto caveat above
# find /var/www -type f -exec scrub {} \;

如果您使用的是託管 VPS,其前端控制面板很好,可以讓您設置虛擬主機,或者您使用的是共享主機,那麼您的 Web 根目錄可能存在於其他地方。您需要找到它並使用它而不是/var/www.

  • **電子郵件。**確保同時擷取MTA的假離線目錄以及單個使用者的郵箱文件和目錄。
  • 任何包含潛在敏感數據的配置文件。我無法正確地想到這個類別中的任何內容,因為配置數據通常相當無聊。攻擊它的一種方法是說
# ls -ltr /etc | tail -30

這將為您提供您最近接觸的 30 個文件/etc,這將為您提供您最有可能接觸的文件列表,而不是包含庫存配置資訊。

當心!您可以清理一些文件,這些文件/etc會阻止您重新登錄。您可能希望推遲清理這些文件,直到該過程的後期。

  • **密碼文件、密鑰等。**此列表因係統而異,但這裡有一些地方可以開始查找:
/etc/shadow
/etc/pki/*
/etc/ssh/*key*
/etc/ssl/{certs,private}/*
~/.ssh                        # for each user

此時,您可能無法再次登錄,因此請確保不要斷開與 VPS 的 SSH 連接。

  • 擦除每個可能包含使用者數據的已掛載文件系統上的可用空間:

對於每個使用者數據文件系統2掛載點MOUNTPT

# mkdir MOUNTPT/scrub
# scrub -X MOUNTPT/scrub

例如,如果/home在其自己的文件系統上,您將創建一個/home/scrub目錄和scrub -X那個。您必須分別為每個文件系統執行此操作。這會使該文件系統充滿偽隨機雜訊。

如果根文件系統上有使用者數據,請不要這樣做,因為填充根文件系統可能會使系統崩潰。

  • 燃燒世界。如果此時作業系統還沒有崩潰,你的 shell 沒有丟棄你的會話等,你可以盡最大努力嘗試燒毀世界:
# find /var /home /etc -type f -exec scrub {} \;

Unix 是關於文件鎖定的方式,即使它正在覆蓋您需要登錄的文件,在執行此命令時您仍然可能不會失去與 VPS 的連接。但是一旦它執行,您可能無法再執行任何命令結束。這絕對是一種“鋸掉你坐在上面的樹枝”的命令。

如果在完成此操作後您仍然登錄,那麼您現在可以擦除根文件系統上的可用空間:

# mkdir /scrub
# scrub -X /scrub
  • **核對 VPS。**最後,登錄您的 VPS 控制面板並告訴它使用不同的作業系統重新安裝您的 VPS。選擇您的 VPS 提供商提供的最大和最有特色的一個。這將用新的、無趣的數據覆蓋 VPS 磁碟的一部分。它有可能會覆蓋您之前的步驟錯過的敏感內容。

在上面的所有scrub(1)命令中,我沒有給出任何特殊選項,因為預設值是合理的。如果您感覺特別偏執,scrub可以使用更多通道、不同的數據覆蓋模式等方法。

Scrub 使用需要真正英勇的措施才能克服的數據覆蓋技術。這是一個激勵問題:有人願意投入多少工作來恢復您的數據?這告訴您在執行上述步驟並添加其他步驟時您應該多麼偏執。

由於虛擬機的性質,由於 VPS 遷移等原因,您的使用者數據在主機系統中可能存在“迴聲”,但這些迴聲對於外人來說是無法訪問的。如果您關心這些事情,那麼您一開始就不應該選擇使用 VPS 提供商。

如果您將其他目錄添加到使用者數據樹的標準列表2,您可能應該儘早清理這些目錄,因為清理的順序是從最以使用者為中心到最少。

最後做最少的以使用者為中心的部分,因為它們往往是影響系統自身功能的文件系統的一部分。在完成清理之前,您不想將自己鎖定在 VPS 之外。


  1. Scrub 是高度可移植的,並且可能已經在你的作業系統的包 repo 中,但是如果你必須從原始碼建構它並不難
  2. 通常,包含使用者數據的樹是/home/usr/local/var/etc,使用者數據相對於系統預設數據的“密度”遞減。由於您的系統管理風格或 VPS 管理軟體偏好,您可能需要將其他目錄添加到此列表中。

我們不會費心清理和 之類的地方/usr/bin/lib因為這些地方應該只包含廣泛可用的文件副本,因此很無聊。(作業系統、您從公共來源安裝的軟體等)

引用自:https://unix.stackexchange.com/questions/136454