Когда приходится удалять файлы без возможности восстановления? Ситуаций можно придумать много, кроме шпионских сценариев из разряда «когда вам действительное есть, что скрывать от спецслужб» могу предложить пару более заурядных ситуаций: вы продаёте ноутбук или компьютер и не хотите, чтобы новый владелец старого девайса любовался вашими семейными фотками, восстановленными с незатёртого пространства жесткого диска, либо вы отказываетесь от аренды сервера, после чего он попадёт в руки к новым владельцам (а вы, опять же, не хотите, чтобы новый админ докопался до ваших данных).
Когда приходится удалять файлы без возможности восстановления? Ситуаций можно придумать много, кроме шпионских сценариев из разряда «когда вам действительное есть, что скрывать от спецслужб» могу предложить пару более заурядных ситуаций: вы продаёте ноутбук или компьютер и не хотите, чтобы новый владелец старого девайса любовался вашими семейными фотками, восстановленными с не затёртого пространства жесткого диска, либо вы отказываетесь от аренды сервера, после чего он попадёт в руки к новым владельцам (а вы, опять же, не хотите, чтобы новый админ докопался до ваших данных).
Linux предлагает много инструментов для надёжного удаления файлов и прочих данных без возможности восстановления, но мы рассмотрим один весьма универсальный — Secure Delete Tools.
Устанавливается, как обычно, просто:
sudo apt-get install secure-delete
После установки пакета в вашем арсенале появится 4 утилиты:
sfill
— для очистки от следов удаленных данных свободного местаsrm
— для надёжного удаления файлов и директорийsmem
— для очистки оперативной памятиsswap
— для очистки раздела подкачки (свопа)
Утилита srm
работает как rm
только безопаснее.
В зависимости от настроек поверх удаляемых данных записываются случайные данные или стандартные паттерны типа 0x00,0xFF в один или несколько проходов. Я вот, кстати, до того, как с задачей столкнулся, думал, что одного прохода с перезаписью случайных данных поверх исходных — вполне достаточно для счастья, но, оказывается, что нет: проходов нужно аж 35. На эту тему есть известный (и уже классический, из 1996 года) доклад — Secure Deletion of Data from Magnetic and Solid-State Memory от криптографа Питера Гутмана (Peter Gutmann). По умолчанию утилиты пакета secure-delete используют алгоритм стирания, предложенный в докладе Гутманна.
Соответственно, чтобы надёжно стереть директорию просто используйте srm
вместо rm
, примерно так:
srm -r /home/user/private-photos
Однако, по моему скромному мнению, для гражданского применения хватит и одного прохода (ведь выполняется он в разы быстрее), утилита такое умеет, надо лишь добавить ключ s
(--simple
):
srm -sr /home/user/private-photos
Кроме режима -s
есть ещё один упрощенный режим -m
, делающий «всего лишь» 7 проходов.
Утилита smem
(для очистки данных из ОЗУ, в упомянутом выше докладе рассказывается, что не такая уж она и энергонезависимая) имеет несколько ключей, чтоб запустить её в однопроходном режиме используйте:
sudo smem -l -l
Утилита sswap вычищает раздел подкачки, но чтобы его почистить нужно его сначала отмонтировать.
Следующей командой можно посмотреть раздел со свопом:
cat /proc/swaps
Затем отключить своп (при условии, что он у вас на /dev/sda2
):
sudo swapoff /dev/sda2
Затем своп можно надёжно вычистить:
sudo sswap -l -l /dev/sda2
Как вы поняли, тут ключи -l -l
тоже отвечают за единственный (и поэтому быстрый) проход.
После чего, своп включить обратно:
sudo swapon /dev/sda2
И, наконец, утилитой sfill
вы можете почистить всё свободное место после обычного удаления в директории или даже на разделе, например так:
sudo sfill -l -l /
Вместо заключения хочу сказать, что удаление данных по методу Гутмана — это очень и очень долго, а упрощенное удаление в пару проходов — просто долго (несколько часов потребуется для полного затирания диска). Так что если, например, вы освобождаете сервер, то начинайте очистку как минимум за сутки перед тем моментом, когда потеряете к нему доступ. А если вы «плохой парень», то быстро уничтожить данные сможете только разбив носитель физически, поломав при этом чипы в SSD или пластины в HDD.
Также не забывайте, что надёжное и безопасное удаление данных лишит доступа к ним не только злоумышленников, но и вас (если вдруг вы сотрёте нечто ценное и представленное в единственном экземпляре, то не сможете это восстановить). Так что делайте и надёжно храните резервные копии.
»