web-dev-qa-db-ja.com

ヘッドレスリモートLinuxサーバーを安全にワイプ

長年ホスティングプロバイダーとの関係を終了しようとしていますが、実行する前にボックスを安全に消去したいと思います。これは、単一のEXT3ドライブでDebianを実行している専用サーバーであり、ルートアクセスはできますが、どこかのラックにヘッドレスであるため、代替メディアを起動できません。

複数のパスは必要ありませんが、可能であれば空き領域を消去したいと思います。基本的には立ち去り、個人データを残さないようにしたいと思います。 srm -R -s /

18
notpeter

rm -rf --no-preserve-root /最初にシステムがクラッシュすることなく、ドライブに何も残っていない。

4
Fahad Sadah

PXEイメージに付属するCentOSインストーラー(anaconda)にはVNCサーバーが含まれているため、grub構成を変更してCentOSインストーラーを起動し、grub行でステージ2のインストーラー前の質問に回答を渡し、再起動してからVNCを実行できます。インストーラーに。

さて、私の記憶が適切に機能していれば、そのインストーラー内からシェルにドロップして、そこからディスクにアクセスして破壊することができます。

CentOSディストリビューション( http://mirror.centos.org/centos/5/os/i386/images/pxeboot/ )のPXEディレクトリからvmlinuzファイルとinitrdファイルを/ bootにコピーして変更しますあなたのGRUB設定:

デフォルト0 
タイムアウト5 
タイトルCentOS 
ルート(hd0,0)
カーネル/boot/vmlinuz.cent.pxe vnc vncpassword = PASSWORDヘッドレスip = IPネットマスク= 255.255.255.0 gateway = GATEWAYIP dns = 8.8.8.8 ksdevice = eth0 method = http://mirror.centos.org/centos/5/os/i386/ lang = en_US keymap = us 
 initrd/boot/initrd.img.cent.pxe

ちなみに、きちんとしたホスティング会社は、ディスクを破壊する準備をしておく必要があります。

10

OSを破棄する前に、機密情報やゼロフィルを削除できます(dd if =/dev/zero of = justabigfileを使用)。

また、ほとんどのシステムは、ディスク全体を上書きするのに十分な時間、実行中のシステムにddまで耐えます。もちろん、そうでない場合、戻る方法はありません。

7
Joris

私の解決策は、上記のいくつかを実行する多段階のアプローチを含みますが、ddがディスクを完全にクリアできるようにするram内のchrootも含みます。

まず、オペレーティングシステムの実行に必要なファイルを残して、機密データをすべて削除します。次に、これを実行します(スクリプトではなく、一度に1つのコマンドを実行します)。

mkdir /root/tmpfs/
mount -t tmpfs tmpfs /root/tmpfs/
debootstrap --variant=buildd --Arch AMD64 precise /root/tmpfs/
mkdir /root/tmpfs/mainroot
mount --bind / /root/tmpfs/mainroot
mount --bind /dev /root/tmpfs/dev
chroot /root/tmpfs/

# fill mainroot partition to wipe previously deleted data files
dd if=/dev/zero of=/mainroot/root/bigfile; rm /mainroot/root/bigfile
# now clobber the entire partition, probably won't be able to stay connected to ssh after starting this
# obviously change '/dev/md1' to the device that needs cleared
Nohup dd if=/dev/zero of=/dev/md1 >/dev/null 2>&1

それで大丈夫です!

6
moparisthebest

ATAプロトコルには「セキュア消去」コマンドがあり、その名前が示すように、HDD全体を安全にワイプする必要があります。

詳細はカーネルウィキの記事を参照してください。ただし、上部の警告に注意してください。

https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase

1

ddを使用するだけで、実行中のサーバーのパーティション/ディスク全体を心配することなく上書きできます。私たちはそれを仕事でよく使用します(お客様が安全な物理ディスクの破壊にお金をかけたくない場合)。

マウントされたファイルシステムがそれを認識せずに実際にデータを消去すると、メタデータが失われているときにファイルシステムが異常動作し始め、OS自体が「崩壊」し始めます。ただし、すでにキャッシュにあるものは引き続き機能します。したがって、リモートコンソールまたはKVM(sshを使用して試さなかった)で進行状況を監視できます。システムはddの終了後も実行され続けますが、コマンドは機能しませんそして、すべてのデーモンはおそらくすでに死んでいます。

私はこれらのコマンドを使用します:dd if=/dev/zero of=/dev/sda bs=1M & その後 kill -HUP %1進行状況を監視します(ddは現在の速度と書き込まれたデータの量を出力します)。ブロックサイズ(bs)の設定は、ddでHDDシーケンス書き込み速度を実現するために非常に重要です。

ddがディスクを最後までワイプできるたびに、最後までkillコマンド(シェル組み込み)を発行できました。ソフトウェアraidを使用している場合は、mdデバイス自体、または各コンポーネントデバイスを個別にワイプできます。

1
Marki555

次のようにディスクにランダムなデータを書き込むことができます:

dd if=/dev/urandom of=/dev/sda

ランダムなデータを書き込むため、/ dev/zeroを使用するよりも安全ですが、LOTもかなり遅くなります。

0
Kedare

何をするにしても、別のプロバイダーにアクセスしてテストします。

AWS(またはgcloudまたは...)で同様のインスタンスを取得して、ディスクを保持し、追加のストレージとして別のインスタンスに接続してスキャンしてみてください。 dd if = sdb | hd

機密情報のほぼすべてが

/home
/opt
/var
/etc
/usr

ほとんどの人が気になるのは、パスワードが埋め込まれた設定ファイルです。それらが何であるかがわかっている場合は、ファイルシステム全体を検索して、それらをルート化します。

rmはファイルを削除しますが、16進エディターは引き続きディスクを読み取ります。したがって、その後ゼロになります。細断を見てください。あなたはあなたの設定ファイルのログを持っているべきであり、それらはDR目的のために正しいですか?たとえば、パスワードを持っている場合は、crontabファイルを忘れないでください。

CentOSのインストール、またはramdiskソリューションは適切です。カーネルはメモリ内にあり、ddといくつかのbinコンテンツが必要です。ただし、リカバリモードで再起動すると、ネットワークまたはSSHがなく、遮断されてしまう場合があります。

N.B. Kedareには良いアイデアがあり、次の再起動(ramdisk)でramから実行している場合、これは可能です。/dev/zero書き込みから回復することは非常に難しいので、人生に依存しない限り、実際には価値がありません。その上に?

0
mckenzm