Краткое руководство по безопасному удалению файлов в Linux
Знаете ли вы, что удаленные файлы можно довольно легко восстановить, по крайней мере, вскоре после удаления? Это связано с тем, что удаление файлов на самом деле не стирает данные, а просто сообщает диску, что ранее использованное пространство теперь свободно. Пока в эти блоки не будут записаны новые данные, старые файлы все еще находятся там и могут быть восстановлены с помощью определенного программного обеспечения.
Если у вас есть конфиденциальные файлы, которые вы удаляете, или даже целые диски, которые вам нужно стереть, рекомендуется использовать безопасный метод удаления, чтобы гарантировать, что файлы невозможно будет восстановить в дальнейшем. Это особенно важно, если вы продаете или одалживаете жесткий диск, твердотельный накопитель, USB-накопитель или любое другое устройство хранения данных, которое когда-то содержало конфиденциальные данные, другому лицу.
В этом уроке вы увидите, как безопасно удалить файлы из системы Linux. Есть несколько различных утилит, которые мы можем использовать для этой работы, поэтому мы рассмотрим несколько вариантов. Вы также узнаете, как безопасно удалить целые разделы, чтобы гарантировать, что файлы не смогут быть восстановлены кем-либо позже. Давайте начнем!
В этом уроке вы узнаете:
- Как безопасно стереть файлы с помощью инструментов уничтожения, очистки и srm
Как безопасно стереть файлы в Linux
Поскольку существует множество команд Linux, которые мы можем использовать для безопасного удаления файлов, ниже мы рассмотрим несколько различных вариантов. Большинство из них работают аналогично друг другу, поэтому выбор того, который вы выберете, может просто зависеть от личных предпочтений или от того, какой инструмент установлен в вашей системе по умолчанию.
Знаете ли вы?
Когда мы удаляем файл из файловой системы, данные не удаляются физически: операционная система просто помечает область, ранее занятую файлом, как свободную и делает ее доступной. для хранения новой информации. Единственный способ убедиться, что данные действительно удалены с устройства, — это заменить их другими данными.
команда уничтожения
Команда shred
часто устанавливается по умолчанию в различных дистрибутивах Linux, таких как Ubuntu Linux.
shred
по умолчанию перезапишет файл случайными данными, чтобы скрыть его содержимое.
$ shred example.txt
Как вы можете видеть на скриншоте выше, наш некогда читаемый текстовый файл теперь заменен кучей бессмысленных данных. Давайте посмотрим другой синтаксис команды, которая фактически удалит файл. Следующая команда несколько раз перезапишет файл случайными данными, а затем несколько раз изменит имя файла, прежде чем окончательно удалить его:
$ shred -uv example.txt
Команда -u
сообщает shred
удалить файл из нашей системы. Опция -v
означает просто подробное описание и дает нам информацию о том, что именно делает команда.
Идея здесь состоит в том, что если трижды перезаписать данные и несколько раз переименовать файл, блок данных, который когда-то содержал наши простые текстовые данные, теперь будет перезаписан новыми данными. В случае восстановления хранилища пользователь увидит только бессмысленные случайные данные, если они вообще есть, в отличие от исходных данных, которые мы эффективно уничтожили.
Если вы слишком параноик, вы можете указать опцию -n
и указать shred
, сколько проходов он должен выполнить для перезаписи файла случайными данными. Например, чтобы перезаписать случайные данные 10 раз:
$ shred -uvn 10 example.txt
shred: example.txt: pass 1/10 (random)...
shred: example.txt: pass 2/10 (b6db6d)...
shred: example.txt: pass 3/10 (ffffff)...
shred: example.txt: pass 4/10 (924924)...
shred: example.txt: pass 5/10 (249249)...
shred: example.txt: pass 6/10 (random)...
shred: example.txt: pass 7/10 (aaaaaa)...
shred: example.txt: pass 8/10 (555555)...
shred: example.txt: pass 9/10 (000000)...
shred: example.txt: pass 10/10 (random)...
shred: example.txt: removing
shred: example.txt: renamed to 00000000000
shred: 00000000000: renamed to 0000000000
shred: 0000000000: renamed to 000000000
shred: 000000000: renamed to 00000000
shred: 00000000: renamed to 0000000
shred: 0000000: renamed to 000000
shred: 000000: renamed to 00000
shred: 00000: renamed to 0000
shred: 0000: renamed to 000
shred: 000: renamed to 00
shred: 00: renamed to 0
shred: example.txt: removed
команда очистки
Команда wipe
— это еще один вариант безопасного удаления данных. Он не установлен по умолчанию в большинстве дистрибутивов Linux, но его можно легко установить через менеджер пакетов.
Основной синтаксис команды wipe
, а также некоторые из ее наиболее популярных опций следующий:
$ wipe -rfi /home/linuxconfig/myfiles
Опция -r
означает рекурсивный режим, поэтому каталог и все его содержимое будут удалены. Опции -f
означают, что пользователю не будет предложено подтверждение, и удаление будет принудительное. Опция -i
просто выводит нам информацию о том, что делает команда, что упрощает работу.
С помощью предыдущей команды каждый файл, найденный внутри каталога, будет перезаписан целых 34 раза. Затем файл переименовывается (перемещается) несколько раз. При каждом перемещении данные будут уменьшаться вдвое, чтобы еще больше скрыть исходное содержимое. Достаточно сказать, что этот процесс делает невозможным (за исключением нестандартных систем в нишевых ситуациях) успех даже самых дорогих методов восстановления хранилища.
команда срм
Еще один вариант — это команда srm
из пакета secure-delete. Это программное обеспечение иногда устанавливается по умолчанию, но может быть не в каждой системе, в зависимости от дистрибутива. Алгоритм, используемый для удаления, основан на статье «Безопасное удаление данных из магнитной и твердотельной памяти». Это исследование было представлено Питером Гутманном, известным криптографом.
Выполнение команды srm
запускает процесс, который включает следующие шаги:
1) Перезапись данных шаблоном 0xFF
2) Перезаписать содержимое файла 5 раз случайными данными
3) Перезаписать файл еще 27 раз данными, предложенными Гутманном
4) Перезаписать содержимое файла еще 5 раз случайными данными
5) Переименование файла
6) Усечение файла
Этот длительный процесс гарантирует, что исходные данные будут полностью невозвратны для воров, правоохранительных органов и других потенциальных угроз. Теперь давайте посмотрим, как использовать команду srm
. Большинство опций только снижают безопасность, поэтому мы будем использовать следующую команду:
$ srm -rv /home/linuxconfig/myfiles
Опция -r
означает рекурсивный режим и удалит все файлы в каталоге. Опции -v
предназначены для подробного просмотра, поэтому мы можем увидеть шаги, которые srm
предпринимает для безопасного удаления указанных файлов:
Шифрование
Стоит помнить, что полное шифрование диска может заполнить пробелы, оставшиеся после безопасного удаления файлов. Например, шифрование раздела Linux с помощью LUKS гарантирует, что все данные не смогут быть восстановлены другой стороной, независимо от того, были ли файлы удалены или нет.
Для сверхпараноиков или тех, кто имеет дело с чрезвычайно конфиденциальными файлами, шифрование является важным звеном в цепочке безопасности ваших файлов. Безопасное удаление файлов по-прежнему является хорошей идеей, поскольку в любом случае это достаточно просто, но шифрование защитит ваши данные от посторонних глаз, даже если они не будут удалены или если физический носитель попадет в чужие руки.
Использование обоих этих методов – безопасного удаления и шифрования файлов – является наиболее крайними мерами, которые мы можем предпринять для защиты наших данных. И то, и другое не очень сложно реализовать, поэтому эти варианты доступны всем пользователям любого уровня опыта. Вам просто нужно желание учиться.
Заключительные мысли
В этом уроке мы увидели, как безопасно удалить файлы в системе Linux. Мы рассмотрели команды shred
, wipe
и srm
для удаления файлов и каталогов и обеспечения невозможности их последующего восстановления. Все эти три команды работают немного по-разному, поэтому не стесняйтесь использовать ту, которая, по вашему мнению, работает лучше всего, или любой инструмент, который установлен в вашей системе по умолчанию. Кроме того, рассмотрите возможность полного шифрования диска в качестве дополнительной меры безопасности, если оно у вас еще не настроено.