Inkognitoss
@Inkognitoss
Full-stack разработчик.

Как удалить все данные с сервера без возможности восстановления?

Есть задача, стереть все данные на удаленном сервере (dedicated).
iLO и чего-то подобного нет. Есть доступ по SSH и вероятность того, что сервер уже может не стартануть никогда, если его рестартануть.
Миграция с сервера прошла усешно, но стоит задача удалить все данные с него, чтобы шансов на восстановление было минимум. Я решил сделать это в два этапа:

1. Удаляю каталоги, где хранятся данные которые в первую очередь нужно удалить:
rm -rf /catalog/path
2. Смотрю какой диск в корне
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       150G   100G   50G  60% /

3. Запускаю
dd if=/dev/urandom > /dev/sda3 & после этого меня скорее всего выбросит из `ssh`

Насколько решение опрометчиво? Есть ли способы надежнее?
Спасибо
  • Вопрос задан
  • 12366 просмотров
Решения вопроса 2
@alex1478
Способ надёжнее простого dd по ssh:
mkdir /target
mount none -t tmpfs -o size=1G /target/
debootstrap stable /target/ https://deb.debian.org/debian/
echo "Killer_system" > /target/etc/debian_chroot
chroot /target
mount none -t proc /proc/
mount none -t sysfs /sys/
mount none -t devtmpfs /dev/
mount none -t devpts /dev/pts/
apt install openssh-server
echo "Port 11122" >> /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
/etc/init.d/ssh start
passwd root

Теперь подключаетесь к ssh, запущенному из озу:
ssh root@<IP> -p 11122
Передёргиваем диск:
echo 1 > /sys/block/sda/device/delete
for i in /sys/class/scsi_host/host?/scan ; do echo "- - -" > $i ; done

Теперь sda станет sdb
dd if=/dev/urandom of=/dev/sdb bs=4096
В конце работы:
echo b > /proc/sysrq-trigger
Это перезапустит сервак, но он конечно уже не загрузится.

В отличии от предыдущего способа, мы 100% сможем дождаться завершения работы dd
Ответ написан
Zoominger
@Zoominger
System Integrator
dd if=/dev/urandom > /dev/sda3

Давайте лучше:
dd if=/dev/zero of=/dev/sda bs=4096
Надёжнее некуда, прибьёт всё.
Ещё б ребутнуться после этого (есть вероятность, что из ssh не вышибет, кстати).
Ответ написан
Пригласить эксперта
Ответы на вопрос 7
Jump
@Jump
Системный администратор со стажем.
Я бы для начала удалил критично важные данные - все что не относится к системе.
После чего забил бы все диски под завязку левыми данными - фильмы, музыка, белый шум - это гарантированно сотрет их с диска, без возможности восстановления.
После чего уже удаляете левые данные -тогда можно и систему сносить.
Ответ написан
@pfg21
ex-турист
shred nwipe bleachbit
Ответ написан
Комментировать
@Karpion
Нормальные провайдеры хостинга - бэкапят данные юзеров. Так что там наверняка есть (должен быть) бэкап, который Вы не сотрёте в принципе.

Как правило, на хостинге есть возможность переустановить систему с нуля. Имеет смысл так и сделать, причём установить её в маленький раздел, чтобы только она и влезла. Тогда будут перезаписаны почти все секторы этого раздела.
Затем затираем свободное пространство диска. И на всякий случай - затираем раздел с системой.

PS: Вот ещё одна причина ставить систему в один раздел, а данные держать в другом разделе.
Ответ написан
@Germanjon
1. Можно пробежаться командами shred (для файлов) и wipe (для папок) по важным данным, которые хотите гарантированно грохнуть, а вот остальное действительно делать незачем.
2. Можно прописать dd в crontab, чтобы он выполнился в определённое время.
3. Можно прописать dd в .bash_logout, чтобы он выполнился, когда вы выйдете из консоли (например, завершится сеанс ssh).
4. Можно создать service, удаляющий все данные, сделать его активным в режиме перезагрузки/выключения и отправить сервер в ребут, из которого он не вернётся.
Ответ написан
Комментировать
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Что мешает удалить с сервера все критические данные и любым wiper очистить свободное место?
В чем смысл удалять полностью? Оставьте рабочую ОС - в вычищенной системе не останется ничего секретного-кроме хешей паролей root и т.п.
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Автор правильно написал в первом посту.
dd if=/dev/urandom > /dev/sda3
Запись рандомного шума лучше чем любые фильмы. И быстрее.
Можно добавить через точку с запятой последовательность диск-дубликаций для всех дисков в системе.
dd if=/dev/urandom > /dev/sda1 ; dd if=/dev/urandom > /dev/sda2 ; dd if=/dev/urandom > /dev/sda3

Выбросит или нет из ssh уже не имеет значения. 3 команды пошли в исполнение.
Ответ написан
Комментировать
Если диск вашего сервера поддерживаем OPAL - просто смените пароль. Если нет и он удаленный - у вас нет надежного способа уничтожить данные на нем.
В принципе то что вы собираетесь сделать сработает. И даже из ssh вас не выкинет скорее всего. С чего бы?
Но как правильно заметил Alexey Dmitriev нет смысла стирать все - лучше стереть только важное. Правильное решене у АртемЪ - забить диск данными до отказа, но только после этого еще раз стереть мусор и еще раз забить до отказа. Повторить раза 3-4 это даст больше уверенности что данные нельзя будет востановить чем просто dd.
Но нет никаких гарантий что у хостера не осталось резервных копий :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы