最近ニュースにもなっていましたが、サーバのデータ消去はHDD廃棄時には必須です。
データ消去をする専門会社への依頼も、あのニュースがあってからではHDDを引き渡すことすら心配ですよね。
専用のデータ消去ソフトを使うにも、有償なので私は自分でデータを消去するようにしています。
今回はLinuxでのデータ消去方法を紹介します。
shredコマンド
rmコマンドではデータは完全に消去できませんし、簡単に復元可能です。
以下のshredコマンドにて、ディレクトリの中身のファイルを全て書き潰し消去します。
find <消去対象ディレクトリ> -type f | xargs shred -n 3 -u -v
findで探したファイルをxargsに引き渡し、shredコマンドで抹消します。
shredコマンドオプションの -n 3 は3回上書き(上書き回数は増やせば増やすほど、復元が困難になります)を意味し、-u オプションはデータ上書き後にファイルを削除するオプションです。
-v はshredの進捗状況を表示するオプションです。
各データに対するshredコマンドの使用例
私がいつもデータ消去している手順です。
以下の作業を行うと、次回OSは起動してこない可能性が高いので、OSが未使用であることを事前に確認してください。
データ領域のデータ消去
これが一番重要だと思います。データベース等、個人情報が入っているディレクトリは必ず抹消しておかないと、神奈川県で起こったHDD転売による情報流出事件に発展する可能性もあります。
データ領域は基本的に容量が多いので時間がかかりますが、夜間や土日で流しっぱなしにするなりしておくべきです。
find <データディレクトリ> -type f | xargs shred -n 3 -u -v
[root@linuxsv ~]# find /database -type f | xargs shred -n 3 -u -v
shred: /database/testdb/datafile2: pass 1/3 (random)...
shred: /database/testdb/datafile2: pass 2/3 (random)...
shred: /database/testdb/datafile2: pass 3/3 (random)...
shred: /database/testdb/datafile2: removing
shred: /database/testdb/datafile2: renamed to /database/testdb/000000000
shred: /database/testdb/000000000: renamed to /database/testdb/00000000
shred: /database/testdb/00000000: renamed to /database/testdb/0000000
shred: /database/testdb/0000000: renamed to /database/testdb/000000
shred: /database/testdb/000000: renamed to /database/testdb/00000
shred: /database/testdb/00000: renamed to /database/testdb/0000
shred: /database/testdb/0000: renamed to /database/testdb/000
shred: /database/testdb/000: renamed to /database/testdb/00
shred: /database/testdb/00: renamed to /database/testdb/0
shred: /database/testdb/datafile2: removed
shred: /database/testdb/datafile: pass 1/3 (random)...
shred: /database/testdb/datafile: pass 2/3 (random)...
shred: /database/testdb/datafile: pass 3/3 (random)...
shred: /database/testdb/datafile: removing
shred: /database/testdb/datafile: renamed to /database/testdb/00000000
shred: /database/testdb/00000000: renamed to /database/testdb/0000000
shred: /database/testdb/0000000: renamed to /database/testdb/000000
shred: /database/testdb/000000: renamed to /database/testdb/00000
shred: /database/testdb/00000: renamed to /database/testdb/0000
shred: /database/testdb/0000: renamed to /database/testdb/000
shred: /database/testdb/000: renamed to /database/testdb/00
shred: /database/testdb/00: renamed to /database/testdb/0
shred: /database/testdb/datafile: removed
OSユーザのデータ消去
各OSユーザが個人情報を持っていることもあるので、homeディレクトリの中身も消去します。
[root@linuxsv ~]# find /home/dekiru -type f | xargs shred -n 3 -u -v
shred: /home/dekiru/.cache/abrt/lastnotification: pass 1/3 (random)...
shred: /home/dekiru/.cache/abrt/lastnotification: pass 2/3 (random)...
shred: /home/dekiru/.cache/abrt/lastnotification: pass 3/3 (random)...
shred: /home/dekiru/.cache/abrt/lastnotification: removing
shred: /home/dekiru/.cache/abrt/lastnotification: renamed to /home/dekiru/.cache/abrt/0000000000000000
shred: /home/dekiru/.cache/abrt/0000000000000000: renamed to /home/dekiru/.cache/abrt/000000000000000
shred: /home/dekiru/.cache/abrt/000000000000000: renamed to /home/dekiru/.cache/abrt/00000000000000
shred: /home/dekiru/.cache/abrt/00000000000000: renamed to /home/dekiru/.cache/abrt/0000000000000
shred: /home/dekiru/.cache/abrt/0000000000000: renamed to /home/dekiru/.cache/abrt/000000000000
shred: /home/dekiru/.cache/abrt/000000000000: renamed to /home/dekiru/.cache/abrt/00000000000
shred: /home/dekiru/.cache/abrt/00000000000: renamed to /home/dekiru/.cache/abrt/0000000000
shred: /home/dekiru/.cache/abrt/0000000000: renamed to /home/dekiru/.cache/abrt/000000000
shred: /home/dekiru/.cache/abrt/000000000: renamed to /home/dekiru/.cache/abrt/00000000
shred: /home/dekiru/.cache/abrt/00000000: renamed to /home/dekiru/.cache/abrt/0000000
shred: /home/dekiru/.cache/abrt/0000000: renamed to /home/dekiru/.cache/abrt/000000
shred: /home/dekiru/.cache/abrt/000000: renamed to /home/dekiru/.cache/abrt/00000
shred: /home/dekiru/.cache/abrt/00000: renamed to /home/dekiru/.cache/abrt/0000
shred: /home/dekiru/.cache/abrt/0000: renamed to /home/dekiru/.cache/abrt/000
shred: /home/dekiru/.cache/abrt/000: renamed to /home/dekiru/.cache/abrt/00
shred: /home/dekiru/.cache/abrt/00: renamed to /home/dekiru/.cache/abrt/0
shred: /home/dekiru/.cache/abrt/lastnotification: removed
shred: /home/dekiru/data/files/1G_file: pass 1/3 (random)...
shred: /home/dekiru/data/files/1G_file: pass 1/3 (random)...139MiB/1000MiB 13%
shred: /home/dekiru/data/files/1G_file: pass 1/3 (random)...164MiB/1000MiB 16%
shred: /home/dekiru/data/files/1G_file: pass 1/3 (random)...185MiB/1000MiB 18%
shred: /home/dekiru/data/files/1G_file: pass 1/3 (random)...205MiB/1000MiB 20%
shred: /home/dekiru/data/files/1G_file: pass 1/3 (random)...228MiB/1000MiB 22%
shred: /home/dekiru/data/files/1G_file: pass 1/3 (random)...250MiB/1000MiB 25%
shred: /home/dekiru/data/files/1G_file: pass 1/3 (random)...271MiB/1000MiB 27%
~省略~
OS領域のデータ消去
ログに個人情報が含まれていたり、サーバのIP情報が漏れることを防ぐために、OS領域のファイルもデータ消去します。
以下はLinuxサーバーの代表的な設定ファイルを消去する手順となります。
[root@linuxsv ~]# find /var/log -type f | xargs shred -v -n 3 -u -v
[root@linuxsv ~]# find /var/spool -type f | xargs shred -v -n 3 -u -v
[root@linuxsv ~]# shred -v -n 3 -u -v /etc/hosts
[root@linuxsv ~]# shred -v -n 3 -u -v /etc/hostname
[root@linuxsv ~]# shred -v -n 3 -u -v /etc/sysconfig/network
[root@linuxsv ~]# shred -v -n 3 -u -v /etc/sysconfig/network-scripts/*
[root@linuxsv ~]# systemctl poweroff
HDD破砕機の使用
これまでサーバ上でのデータ消去方法を紹介してきましたが、結局はHDDを物理的に破壊することが一番手っ取り早いです。
ハードディスクを物理的に破壊する機械も販売していますので、こちらを利用しても良いと思います。
私の会社では、以下の製品を使用しています。
ハードディスクに物理的に穴を4つ開け、データ復元を不可能にします。
電動式HDD/SSD物理破壊装置 ストレージパンチャー STPN-10 (HDD)
個人情報漏洩の影響に比べたら、会社にとっては安い買い物だと思います。
最後に
個人情報漏洩の影響は、社会的にも会社的にも大ダメージとなり、最悪の場合は会社が潰れます。
データ消去の専門会社が信用できない時代でもありますので、自分のデータは自分で管理する必要があります。
少々お高い買い物としても、ハードディスク破砕機は有用だと思いますね。