В корпоративной среде вы хотели бы иметь какое-то внешнее управление, такое как IPMI, iDRAC или другое удаленное решение KVM. Вы бы использовали эту систему для загрузки с liveCD, где можно было бы выполнить и подтвердить удаление. Если вашей целью является безопасное удаление, то вам нужно проверить операцию. Вы не можете просто сказать «Ну, это должно было сработать». Потому что даже если он должен работать, это не значит, что он работал. Некоторые системы IPMI позволяют удаленно загружаться с ISO, который у вас есть удаленно. Вы можете использовать что-то простое, например, изображение DBAN.
Могу ли я надежно использовать `dd`, чтобы стереть корневую файловую систему на работающем сервере Linux?
У меня есть (физически) удаленный сервер, который я хотел бы безопасно уничтожить. К сожалению, диск разделен на один большой корневой раздел и больше ничего. Могу ли я надежно использоватьdd
для очистки устройства, содержащего корневую файловую систему?
Что-то простое, как:
$ sudo nohup dd if=/dev/urandom of=/dev/sda bs=1024
Очевидно, что я никогда не увижу результат работы, поэтому я не смогу проверить, успешно ли она выполнена. Программы dd
и nohup
должны быть достаточно маленькими, и на этом этапе на сервере больше ничего не работает, поэтому нет причин для того, чтобы эти программы извлекались из памяти во время работы. Будут ли они работать до конца или ядро, вероятно, паникует в какой-то момент до dd
завершения?
Я обдумываю другие возможности, но я спрошу об этом в отдельных вопросах.
2 ответа на вопрос
Да, это абсолютно возможно, но требует некоторой работы.
Большая часть ответов доступна на StackExchange, но я приведу здесь резюме со ссылками на источники, которые имеют гораздо больше деталей и заслуживают похвалы за отличную информацию.
- Создайте базовую среду Linux в памяти и переключитесь на нее, используя
pivot_root
. - Убедитесь, что вы можете получить доступ к серверу извне, используя
ssh
. Протрите корневое устройство.
# nohup dd if=/dev/urandom of=/dev/sda bs=512 > wipe.log &
Периодически не стесняйтесь проверять прогресс
dd
, поскольку он обычно не дает никаких признаков прогресса.# kill -USR1 [ddpid]
Вернитесь позже и убедитесь, что процесс завершен (проверьте файл журнала). Взгляните на диск, чтобы убедиться, что он содержит случайный мусор вместо реальной файловой системы. Протрите его второй (или третий) раз, если хотите.
Решите, что делать дальше.
Если вы хотите, вы можете просто остановиться здесь и уйти. Когда машина выключится, у вас будет не загружаемое устройство, которое будет настолько безопасным, насколько вы решите
dd
это сделать.Далее я решил попробовать то, чего раньше не делал: создать базовую систему Linux удаленно. Итак, я продолжил:
Используйте
fdisk
для повторного разбиения корневого устройства по желанию и используйтеmkfs
для создания файловых систем на этих разделах.- Используется
debootstrap
для установки базовой среды Debian в (будущей) корневой файловой системе. chroot
в новой базовой среде установите дополнительные пакеты (например,sshd
ядро и загрузчик) (например,grub
убедитесь, что загрузчик действительно установлен на устройстве, а не просто устанавливайте пакет).- Используйте
root_pivot
для переключения на новую среду так же, как вы делали это на шаге 1 выше. Воспользуйтесь всеми услугами (напримерsshd
), чтобы убедиться, что вы сможете получить доступ к серверу, например, черезssh
. - Перезагружать. Ваша новая ОС должна быть готова к работе.
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Какое программное обеспечение я должен использовать для шифрования моего жесткого диска?
-
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
2
Windows 7 Home Premium запоминает пароли общего доступа к сети?
-
3
Может ли существующее шифрование беспроводной сети реально защитить сеть?
-
3
Каковы различия между оконными менеджерами Linux?