Aman menghapus server linux remote tanpa kepala

18

Saya akan mengakhiri hubungan saya dengan penyedia hosting saya bertahun-tahun, tetapi saya ingin menghapus kotak itu dengan aman sebelum melakukannya. Ini adalah server khusus yang menjalankan Debian pada drive EXT3 tunggal dan meskipun saya memiliki akses root, saya tidak bisa mem-boot media alternatif karena tanpa kepala di rak di suatu tempat.

Saya tidak memerlukan banyak lintasan, tetapi saya ingin menghapus ruang kosong jika memungkinkan. Pada dasarnya saya ingin pergi dan memastikan saya tidak meninggalkan data pribadi saya. Saya khawatir bahwa kotak mungkin macet sebelum selesai menghapus / menyinkronkan sistem file jika saya hanya menjalankansrm -R -s /

notpeter
sumber
imho, gunakan dd (di bagian bawah)
Some Linux Nerd

Jawaban:

4

Saya telah berhasil melewati semua rm -rf --no-preserve-root /tanpa sistem crash terlebih dahulu, dan tanpa apapun yang tersisa di drive.

Fahad Sadah
sumber
Saya menjalankan srm di direktori data saya, kemudian rm -rf --no-preserve-root /melalui SSH untuk membersihkan sisanya. Itu melemparkan beberapa kesalahan pada / dev ands kemudian selesai; Saya tidak tahu apa yang harus dilakukan pada bash prompt. Tanpa / bin / ls atau / sbin / shutdown, saya tidak dapat mengkonfirmasi kesuksesan. Sungguh antiklimaks; Secara mental saya siap untuk itu crash, bukan kernel zombie dan sesi sshd.
notpeter
7
Ini tidak aman. Data tidak terhapus dan undeletion masih dimungkinkan. Lebih baik ddmelewati disk saja.
qris
10

Pemasang CentOS (anaconda) yang dikirimkan bersama gambar PXE menyertakan server VNC, sehingga Anda dapat mengubah konfigurasi grub Anda untuk mem-boot installer CentOS, meneruskan jawaban untuk pertanyaan pemasang pra-tahap 2 pada baris grub, reboot dan kemudian VNC ke penginstal.

Sekarang, jika ingatan saya benar, dari dalam penginstal itu Anda harus dapat membuka shell, dari mana Anda dapat mengakses dan menghancurkan disk.

Salin file vmlinuz dan initrd dari dir PXE di distro CentOS ( http://mirror.centos.org/centos/5/os/i386/images/pxeboot/ ) ke / boot dan ubah konfigurasi grub Anda:

default 0
batas waktu 5
judul CentOS
root (hd0,0)
kernel /boot/vmlinuz.cent.pxe vnc vncpassword = PASSWORD headless ip = IP netmask = 255.255.255.0 gateway = GATEWAYIP dns = 8.8.8.8 ksdevice = metode eth0 metode = http: //mirror.centos.org/centos/5/os / i386 / lang = en_US keymap = kami
initrd /boot/initrd.img.cent.pxe

Kebetulan, perusahaan hosting yang layak harus siap untuk menghancurkan disk Anda untuk Anda.

Stephen Nelson-Smith
sumber
3
Mereka bukan 'perusahaan hosting yang layak' maka saya harus pergi dan menghapus disk saya.
notpeter
Saya tidak menggunakan metode ini, tetapi menggunakan GRUB untuk mem-boot image penyelamatan minimal yang telah dikonfigurasi untuk mengaktifkan vnc (atau bahkan hanya SSH) benar-benar bisa dilakukan. Jika Anda kacau, Anda berpotensi ditinggalkan dengan sistem yang memerlukan intervensi manual untuk mem-boot lagi dengan benar, jadi mungkin perlu dilakukan pengujian di VM terlebih dahulu.
notpeter
1
Sebuah kata pada urutan di mana hal-hal dihapus bisa berguna. Dengan pertama-tama menghapus semua partisi kecuali yang berisi /boot, Anda akan bisa memulai lagi jika mesin di-reboot di tengah proses. Jika /bootkebetulan berada di /partisi, seseorang dapat menghapus semua file di luar /bootdan menghapus ruang kosong sebelum akhirnya menghapus seluruh partisi. Ini akan meminimalkan jumlah data yang tersisa pada disk jika itu reboot setelah Anda menghapus begitu banyak, sehingga Anda tidak lagi dapat mem-bootnya.
kasperd
7

Sebelum Anda menghancurkan OS Anda bisa menghapus apa pun yang sensitif dan zerofill (menggunakan dd if = / dev / zero of = justabigfile).

Dan saya percaya sebagian besar sistem akan bertahan hidup hingga sistem berjalan cukup lama untuk menimpa seluruh disk. Tidak ada jalan kembali jika tidak, tentu saja.

Joris
sumber
4
Jika Anda menghapus semua file yang Anda khawatirkan sebelum Anda melakukan ini, swapoff partisi swap Anda, usap partisi swap (menggunakan wipe atau dd), maka yang di atas seharusnya cukup aman. Anda harus melakukannya sebagai root untuk melewati 5% yang disediakan untuk root, dan Anda mungkin tidak menghapus semua nama file, tetapi data harus hilang.
Slartibartfast
6

Solusi saya melibatkan pendekatan multi-langkah melakukan beberapa hal di atas, tetapi juga melibatkan chroot di ram yang seharusnya memungkinkan dd untuk menyelesaikan sepenuhnya membersihkan disk.

Pertama-tama hapus semua data sensitif Anda, tinggalkan file yang diperlukan untuk menjalankan sistem operasi. Kemudian lakukan ini (bukan dalam skrip, lakukan satu perintah pada satu waktu):

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

Itu harus mengurusnya!

moparisthebest
sumber
1

Anda bisa menggunakan dduntuk menimpa seluruh partisi / disk pada server yang berjalan tanpa khawatir. Kami sering menggunakannya di tempat kerja (ketika pelanggan tidak ingin membayar untuk menghancurkan disk fisik aman).

Anda benar-benar menghapus data tanpa meng-mount filesystem mengetahuinya, sehingga filesystem akan mulai panik ketika metadata-nya hilang, maka OS itu sendiri akan mulai "runtuh". Namun apa yang sudah ada dalam cache masih berfungsi. Jadi, Anda dapat memantau progresnya melalui konsol jarak jauh atau KVM (tidak mencobanya melalui ssh). Sistem tetap berjalan bahkan setelah ddselesai, namun tidak ada perintah yang akan bekerja dan semua daemon mungkin sudah mati.

Saya menggunakan perintah ini: dd if=/dev/zero of=/dev/sda bs=1M & dan kemudian kill -HUP %1untuk memantau kemajuan (dd akan mencetak kecepatan saat ini dan jumlah data yang ditulis). Pengaturan ukuran blok ( bs) sangat penting untuk mencapai kecepatan penulisan seq HDD dd.

Setiap kali ddmampu menghapus disk ke ujungnya dan saya bisa mengeluarkan killperintah (built-in shell) sampai akhir. Jika Anda memiliki serangan perangkat lunak, Anda dapat menghapus mdperangkat itu sendiri, atau masing-masing perangkat komponen secara terpisah.

Marki555
sumber
Rekan kerja saya melakukan ini dan xwindows gagal mogok, harus persis apa yang dibutuhkan pemohon.
Beberapa Nerd Linux
1

Protokol ATA memiliki perintah "hapus aman", yang, seperti namanya, harus menghapus seluruh HDD dengan aman.

Lihat artikel Wiki Kernel untuk detailnya, tetapi ingat peringatan di atas:

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

Vladimir Panteleev
sumber
Pembaruan 2018: Saya telah berhasil menggunakan ini pada beberapa kesempatan untuk menghapus server dari jarak jauh, bahkan ketika mereka menjalankan sistem file yang sedang dihapus. Karena program hanya mengeluarkan perintah ATA dan menunggu respons, tidak ada kode yang perlu dijalankan pada CPU selama proses penghapusan.
Vladimir Panteleev
0

Anda dapat mencoba menulis data acak pada disk Anda seperti ini:

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

Lebih aman daripada menggunakan / dev / nol karena menulis data acak, tetapi BANYAK lebih lambat ..

Kedare
sumber
Sebagai seseorang yang tidak tahu yang lebih baik, mengapa orang turun memilih ini? Apakah ini bukan praktik yang baik?
Luke Kanada REINSTATE MONICA
@ CanadianLuke Pertanyaannya adalah tentang menghapus server yang sudah berjalan dengan aman. Anda tidak dapat menulis ke drive yang dipasang seperti ini, sehingga tidak akan berfungsi.
longneck
@longneck, Terima kasih. Untuk beberapa alasan, saya pikir root bisa melakukan itu ... Meskipun saya belum pernah mencoba, jadi saya akan mengambil kata-kata Anda untuk itu. Terima kasih telah menjelaskan
Luke Kanada REINSTATE MONICA
@ Longneck ya Anda bisa, menambahkan komentar di atas tetapi saya punya rekan kerja yang sangat paranoid melakukan itu. Sebenarnya Anda benar-benar dapat mencabut hard drive Anda dan linux masih akan tetap menjalankan semua yang ada di memori tanpa lebih dari banyak pesan kesalahan aplikasi.
Beberapa Nerd Linux
0

Apa pun yang Anda pilih untuk dilakukan, hubungi penyedia lain dan mengujinya.

Dapatkan instance serupa pada AWS (atau gcloud atau ...) dan coba di sana, simpan disk lalu pasang ke instance lain sebagai penyimpanan tambahan dan pindai. dd if = sdb | hd

Hampir semua materi sensitif Anda harus masuk

/home
/opt
/var
/etc
/usr

Ini adalah file konfigurasi dengan kata sandi yang tertanam yang mengganggu kebanyakan orang. Jika Anda tahu apa itu, cari seluruh sistem file untuk membasmi mereka.

rm akan menghapus file, tetapi hex editor akan tetap membaca disk. Jadi nol setelah itu. Lihatlah rusak. Anda harus memiliki log file konfigurasi Anda dan di mana mereka untuk tujuan DR kan? Jangan lupa file crontab jika Anda memiliki kata sandi di dalamnya, katakanlah.

Instalasi CentOS, atau solusi ramdisk mana pun adalah suara. Kernel akan berada di memori, Anda memerlukan konten dd dan beberapa bin. Tetapi jika Anda reboot dalam mode pemulihan, Anda mungkin tidak memiliki jaringan atau SSH dan memutuskan hubungan Anda.

NB Kedare memiliki ide yang bagus, dan jika Anda menjalankan ram pada reboot berikutnya (ramdisk) ini mungkin, sangat sulit untuk memulihkan dari / dev / zero menulis untuk memulai sehingga tidak benar-benar menambah nilai kecuali hidup Anda tergantung padanya?

mckenzm
sumber