Надійно витріть безголовий віддалений сервер Linux


18

Я збираюся розірвати стосунки зі своїм провайдером хостингу на довгі роки, але я хотів би надійно витерти цю скриньку до цього. Це спеціалізований сервер, який працює на Debian на одному накопичувачі EXT3, і хоча у мене є кореневий доступ, я не можу завантажувати альтернативні носії інформації, оскільки десь він без голови.

Мені не потрібно кілька пропусків, але я хотів би витерти вільний простір, якщо це можливо. В основному я хотів би піти і переконатися, що я не залишаю позаду жодної моїх особистих даних. Я переживаю, що вікно може вийти з ладу до того, як він закінчить стирання / синхронізацію файлової системи, якщо я просто запущуsrm -R -s /


Імхо, скористайтеся дд (внизу)
Деякі Linux Nerd

Відповіді:


4

Я успішно пройшов весь шлях, rm -rf --no-preserve-root /коли система спочатку не вийшла з ладу і не залишила нічого на диску.


Я запустив srm на свої каталоги даних, потім rm -rf --no-preserve-root /через SSH, щоб очистити решту. Він кинув пару помилок у / dev і потім завершений; Я не зовсім знав, що робити під час підкачки. Без / bin / ls або / sbin / shutdown я не зміг підтвердити успіх. Twas антикліматичний; Я подумки був готовий до краху, а не до зомбі ядра та sshd сесії.
notpeter

7
Це не безпечно. Дані не стираються, і повернення даних все ще можливе. Краще ddзамість диска.
qris

10

Інсталятор CentOS (анаконда), що постачається із зображеннями PXE, включає сервер VNC, тому ви можете змінити конфігурацію grub для завантаження програми встановлення CentOS, передаючи відповіді на питання встановлення на етапі 2 на лінії grub, перезавантажте і потім VNC до інсталятора.

Тепер, якщо моя пам'ять служить мені правильно, зсередини цього інсталятора ви повинні мати можливість перейти до оболонки, з якої можна отримати доступ та знищити диск.

Скопіюйте файли vmlinuz та initrd з файлу PXE в дистрибутив CentOS ( http://mirror.centos.org/centos/5/os/i386/images/pxeboot/ ) на / завантаження та змінення конфігурації grub:

за замовчуванням 0
тайм-аут 5
назва CentOS
корінь (hd0,0)
ядро /boot/vmlinuz.cent.pxe vnc vncpassword = PASSWORD безголовий ip = IP-мережна маска = шлюз 255.255.255.0 = GATEWAYIP dns = 8.8.8.8 ksdevice = eth0 метод = http: //mirror.centos.org/centos/5/os / i386 / lang = en_US keymap = нам
initrd /boot/initrd.img.cent.pxe

До речі, будь-яка гідна хостинг-компанія повинна бути готова знищити ваші диски для вас.


3
Вони не є "пристойною хостинговою компанією", отже, мені потрібно залишати і витирати диски.
notpeter

Я не використовував цей метод, але використання GRUB для завантаження мінімального рятувального зображення, попередньо налаштованого для включення vnc (або навіть просто SSH), цілком можливо. Якщо ви зіпсуєте, ви потенційно залишитесь системою, яка потребує вручну втручання для повторного завантаження, тому, напевно, варто спробувати спочатку в VM.
notpeter

1
Слово про порядок, в якому стираються речі, може бути корисним. Спочатку витираючи всі розділи, крім тієї, що містить /boot, ви зможете почати заново, якщо машина перезавантажилася в середині процесу. Якщо на розділі /bootтрапляється /, ви можете видалити всі файли поза /bootта видалити вільний простір, перш ніж остаточно витерти весь розділ. Це дозволило б мінімізувати кількість даних, залишених на диску, якщо вони перезавантажилися після того, як ви стірнули стільки, що ви більше не зможете завантажувати його.
kasperd

7

Перед тим, як знищити ОС, ви можете видалити що-небудь чутливе та нульове заповнення (використовуючи dd if = / dev / zero of = justabigfile).

І я вважаю, що більшість систем переживе DD до запущеної системи досить довго, щоб перезаписати весь диск. Зворотнього шляху, якщо цього, звичайно, немає.


4
Якщо ви видалите всі файли, які вас турбують, перш ніж це зробити, поміняйте своєю розділом swap, протріть розділ swap (за допомогою wipe або dd), то вищезазначене має бути досить безпечним. Вам потрібно буде зробити це як root, щоб пройти 5%, зарезервовану для кореня, і ви, можливо, не стерте всі файли файлів, але дані повинні бути втрачені.
Slartibartfast

6

Моє рішення передбачає багатоступінчастий підхід, виконуючи деякі з перерахованих вище, але також включаючи chroot в оперативної пам’яті, який повинен дозволити dd закінчити повністю очищення диска.

Спочатку видаліть усі ваші конфіденційні дані, залишивши необхідні файли для роботи операційної системи. Потім зробіть це (не в сценарії, виконайте це по одній команді за раз):

mkdir /root/tmpfs/
mount -t tmpfs tmpfs /root/tmpfs/
debootstrap --variant=buildd --arch amd64 precise /root/tmpfs/
mkdir /root/tmpfs/mainroot
mount --bind / /root/tmpfs/mainroot
mount --bind /dev /root/tmpfs/dev
chroot /root/tmpfs/

# fill mainroot partition to wipe previously deleted data files
dd if=/dev/zero of=/mainroot/root/bigfile; rm /mainroot/root/bigfile
# now clobber the entire partition, probably won't be able to stay connected to ssh after starting this
# obviously change '/dev/md1' to the device that needs cleared
nohup dd if=/dev/zero of=/dev/md1 >/dev/null 2>&1

Це має подбати про це!


1

Ви можете просто використовувати, ddщоб перезаписати весь розділ / диск на запущеному сервері без будь-яких турбот. Ми багато використовуємо його на роботі (коли клієнт не хоче платити за безпечне знищення фізичного диска).

Ви фактично витираєте дані, не знаючи про це змонтованої файлової системи, тому файлова система почне вироджуватися, коли її метадані втрачаються, тоді сама ОС почне «руйнуватися». Однак те, що вже є в кеші, все ще працює. Таким чином, ви можете стежити за ходом за допомогою віддаленої консолі або KVM (не пробував це через ssh). Система продовжує працювати навіть після ddїї завершення, однак жодна команда не буде працювати, і всі демони, ймовірно, вже мертві.

Я використовую ці команди: dd if=/dev/zero of=/dev/sda bs=1M & а потім kill -HUP %1для моніторингу прогресу (dd видасть поточну швидкість та кількість записаних даних). Встановлення розміру блоку ( bs) дуже важливо для досягнення швидкості запису послідовності на жорсткому диску dd.

Кожен раз, коли я ddмав змогу витерти диск до кінця, я міг видавати killкоманду (вбудовану оболонку) до кінця. Якщо у вас є програмний наліт, ви можете витерти або сам mdпристрій, або кожен компонентний пристрій окремо.


Мій колега зробив це, і xwindows не вдалося вийти з ладу, повинно бути саме те, що потрібно запитувачу.
Деякий Linux Nerd

1

Протокол ATA має команду "захищене стирання", яка, як вказує його назва, повинна надійно стерти весь жорсткий диск.

Докладніше перегляньте статтю у вікі Kernel, але пам’ятайте про попередження вгорі:

https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase


Оновлення 2018 року: Я кілька разів успішно використовував це для віддаленого видалення серверів, навіть якщо вони не працюють з файловою системою. Оскільки програма просто видає команду ATA і чекає відповіді, жодний код не повинен виконуватись на процесорі під час очищення.
Володимир Пантелеєв

0

Ви можете спробувати записати випадкові дані на свій диск так:

dd if=/dev/urandom of=/dev/sda

Безпечніше, ніж використання / dev / zero, тому що вони записують випадкові дані, але це також НЕ МОЖЕ повільніше ..


Як хтось, хто не знає кращого, чому люди голосують за це? Це не є хорошою практикою?
Канадський Люк ВІДНОВЛЕННЯ МОНИЦИ

@CanadianLuke Питання про надійне видалення вже запущеного сервера. Ви не можете записати на приєднаний накопичувач так, щоб він не працював.
longneck

@longneck Дякую Чомусь я думав, що root може це зробити ... Хоча я ніколи не намагався, тому візьму на це ваше слово. Дякуємо за все, що пояснили
канадський Лука ВІДНОВЛЕННЯ МОНИЦИ

@longneck Так, ви можете додати коментар вище, але у мене був дійсно параноїдний колега. Насправді ви можете повністю відключити ваш жорсткий диск, і Linux все ще буде працювати все в пам'яті без нічого більшого, ніж купа повідомлень про помилки програми.
Деякий Linux Nerd

0

Що б ви не вирішили зробити, перейдіть до іншого провайдера і протестуйте його.

Отримайте подібний екземпляр на AWS (або gcloud або ...) і спробуйте його там, зберігаючи диск, а потім приєднавши його до іншого екземпляра як додаткове сховище та сканування. dd, якщо = sdb | hd

Практично всі ваші чутливі матеріали повинні бути в

/home
/opt
/var
/etc
/usr

Саме конфігураційні файли із вбудованими паролями турбують більшість людей. Якщо ви знаєте, що вони є, виконайте пошук у всій файловій системі, щоб викорінити їх.

rm видалить файли, але шістнадцятковий редактор все одно буде читати диск. Тож нуль згодом. Погляньте на клаптик. У вас повинен бути журнал ваших конфігураційних файлів і де вони знаходяться для цілей DR? Не забудьте файли crontab, якщо у них є паролі, скажімо.

Установка CentOS або будь-яке рішення ramdisk - це звук. Ядро буде в пам’яті, вам потрібні DD і деякий вміст біна. Але якщо ви перезавантажитесь у режимі відновлення, можливо, у вас немає мереж або SSH та відключите себе.

NB Kedare має гарну ідею, і якщо ви наступним перезавантаженням (ramdisk) ви працюєте з оперативної пам’яті, це можливо, відновитись з / dev / zero пишеться дуже важко, щоб почати з цього, так що це насправді не додасть цінності, якщо ваше життя залежить від цього?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.