Hard drive merobek -robek di Linux

Hard drive merobek -robek di Linux

Saat kami menghapus file dari sistem file, data tidak dihapus secara fisik: sistem operasi hanya menandai area yang sebelumnya ditempati oleh file, sebagai gratis dan membuatnya tersedia untuk menyimpan informasi baru. Satu -satunya cara untuk memastikan data sebenarnya dihapus dari perangkat adalah dengan menimpanya dengan data lain. Kami mungkin ingin melakukan operasi seperti itu karena alasan privasi (mungkin kami berencana untuk menjual perangkat dan kami ingin memastikan pemilik baru tidak dapat mengakses data kami), atau mungkin untuk menyiapkan perangkat untuk enkripsi. Dalam tutorial ini kita akan melihat beberapa alat yang dapat kita gunakan untuk benar -benar menghapus data pada perangkat

Dalam tutorial ini Anda akan belajar:

  • Cara merobek data menggunakan dd
  • Cara mengamankan file dan perangkat menggunakan utilitas shred
  • Bagaimana menimpa data menggunakan badblocks


Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Distribusi-independen
Perangkat lunak DD, robek atau badblocks
Lainnya
  • Keakraban dengan shell bash dan antarmuka baris perintah linux
Konvensi # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Menghapus data menggunakan DD

DD adalah program yang sangat kuat yang disertakan secara default di semua distribusi Linux utama. Dalam artikel sebelumnya kami melihat cara menggunakan DD secara detail; Dalam hal ini, yang ingin kami lakukan hanyalah mengesampingkan konten perangkat blok hipotetis kami dengan nol atau data acak. Dalam kedua kasus, kita dapat menggunakan data yang dihasilkan oleh file "khusus": /dev/nol Dan dev/urandom (atau /dev/acak) masing -masing. Yang pertama mengembalikan nol setiap kali operasi baca dilakukan di atasnya; yang terakhir mengembalikan byte acak menggunakan generator nomor linux kernel acak.

Untuk mengisi disk dengan nol yang dapat kita jalankan:

$ sudo dd if =/dev/nol dari =/dev/sdx

Untuk menggunakan data acak, sebagai gantinya:

$ sudo dd if =/dev/urandom dari =/dev/sdx


Menggunakan wadah LUKS sebagai generator data acak

Mengesampingkan perangkat dengan data acak adalah operasi yang memakan waktu, tetapi dapat berguna terutama jika kami berencana untuk menggunakan enkripsi disk penuh, untuk membuat bagian yang digunakan dan tidak digunakan dari disk yang tidak dapat dibedakan. Untuk mempercepat proses kita dapat menggunakan sedikit "trik": kita dapat membuat a Luks(Linux Unified Key Setup) Container pada perangkat atau partisi yang ingin kami isi dengan data acak, dan tulis nol untuk itu. Berkat enkripsi, data akan ditulis secara transparan di perangkat yang mendasari sebagai acak.

Pertama -tama kami membuat Luks wadah:

$ sudo cryptsetup luksformat /dev /sdx peringatan! ======== Ini akan menimpa data pada /dev /sdx secara tidak dapat ditarik kembali. Apa kamu yakin? (Ketik huruf besar ya): Ya masukkan sandi untuk /dev /sdx: verifikasi sandi:

Dalam hal ini tidak benar -benar diperlukan untuk menggunakan kata sandi yang kuat, karena kami menggunakan wadah sebagai generator data acak, dan kami akan memusnahkannya setelah operasi selesai. Setelah wadah siap, kami membukanya dengan menjalankan perintah berikut:

$ sudo cryptsetup luksopen /dev /sdx crypted enter pasal frase untuk /dev /sdx:

Sekarang wadah dibuka, kita dapat menggunakan DD dan mengisinya dengan nol. Sangat penting: kami menulis ke wadah Luks yang dipetakan sebagai /dev/mapper/crypted, tidak pada dasarnya /dev/sdx Perangkat secara langsung:

$ sudo dd if =/dev/nol dari =/dev/mapper/crypted bs = 1m

Setelah semua data telah ditulis, kami menutup wadah, dan mengganti header LUKS dengan data acak. Ukuran header tergantung pada format Luks digunakan: itu 2mib untuk warisan Luks format, dan 16mib Untuk Luks2 format, yang telah menjadi default dalam versi terbaru dari cryptsetup. Hanya untuk memastikan, kita dapat mengesampingkan 20MIB disk pertama:

$ sudo cryptsetup luksclose/dev/mapper/crypted $ sudo dd if =/dev/urandom dari =/dev/sdx bs = 1m count = 20


Menghapus data menggunakan shred

Nama utilitas ini cukup jelas: tujuan utamanya, seperti yang dinyatakan dalam manual, adalah untuk menimpa file dan secara opsional menghapusnya. Itu sobekan Utilitas bergantung pada asumsi bahwa sistem file menimpa data di tempatnya. Aplikasi mungkin tidak memungkinkan kita mencapai hasil yang diharapkan, misalnya, pada sistem file jurnal, seperti ext4 (mungkin sistem file linux yang paling banyak digunakan), jika dipasang dengan data = jurnal pilihan.

Saat memasang sistem file ext4, dengan data = dipesan atau Data = WriteBack Opsi (yang pertama adalah default), data ditulis ke sistem file utama setelah metadata berkomitmen untuk jurnal. Dalam kedua kasus, sobekan Bekerja dengan baik, menghasilkan hasil yang diharapkan.

Saat menggunakan data = jurnal Opsi, sebaliknya, tidak hanya metadata, tetapi data itu sendiri ditulis ke jurnal sistem file, sebelum ditulis ke sistem file utama. Sangat mudah untuk melihat mengapa ini dapat menyebabkan masalah.

Mari kita lihat beberapa contoh penggunaan aplikasi. Misalkan kita ingin mengamankan file-file bernama "tes". Yang harus kita lakukan adalah menjalankan perintah berikut (di sini kita menggunakan -v opsi untuk membuat program lebih bertele -tele):

$ shred -V Tes Shred: Tes: Pass 1/3 (acak) ... robek: tes: lulus 2/3 (acak) ... roda: tes: lulus 3/3 (acak)… 

Secara default aplikasi menimpa file yang ditentukan 3 kali dengan data acak. Jumlah operan dapat diubah menggunakan -N (kependekan dari --iterasi) pilihan. Untuk mengesampingkan file 6 kali kami akan menjalankan:

Shred -V -n 6 Tes Shred: Tes: Pass 1/6 (Acak) ... Rusak: Tes: Pass 2/6 (000000) ... Shred: Tes: Pass 3/6 (555555) ... Shred: Tes: Pass 4/ 6; 

Ada beberapa kasus di mana kami mungkin ingin menyembunyikan fakta bahwa operasi penghancuran dilakukan pada file atau perangkat. Dalam situasi itu kita dapat menggunakan program ini -z (kependekan dari --nol) Opsi untuk membuat program melakukan operan tambahan dengan nol setelah merobek -robek:

$ shred -v -n 6 -z Tes Shred: Tes: Pass 1/7 (acak) ... robek: tes: lulus 2/7 (ffffff) ... robek: tes: lulus 3/7 (aaaaaa) ... robek: tes: Lulus 4/7 (555555) ... Rusak: Tes: Pass 5/7 (000000) ... Rusak: Tes: Pass 6/7 (acak) ... Rusak: Tes: Pass 7/7 (000000)… 


Dari output verbose dari perintah, kita memang dapat memperhatikan bagaimana lulus terakhir dilakukan dengan menulis nol (000000). Kita dapat memverifikasi dengan menjalankan hexdump Program pada file:

Uji $ hexdump 0000000 0000 0000 0000 0000 0000 0000 0000 0000 * 0008000 

Menghapus file

Jika kita melihat sistem file setelah menjalankan salah satu perintah dalam contoh di atas, kita dapat melihat bahwa meskipun ditimpa dengan data acak, file itu sendiri belum dihapus: ini terjadi karena perintah juga dapat digunakan pada file yang mewakili keseluruhan blok perangkat atau partisi (e.G /dev/sda), dan itu tidak boleh dihapus.

Namun saat beroperasi pada file umum, kami mungkin ingin juga menangani file dari sistem file setelah mengesampingkannya. Untuk mencapai perilaku ini, kita dapat menggunakan -u atau --menghapus pilihan. Kedua opsi menyebabkan file dihapus, tetapi dengan yang terakhir kami juga dapat menentukan bagaimana penghapusan harus dilakukan. Kita bisa hoose antara:

  • untlink: File dihapus dengan menggunakan standar untlink panggilan sistem;
  • menghapus: byte dalam nama file dikaburkan sebelum penghapusan;
  • Wipesync: byte yang dikaburkan juga disinkronkan ke disk;

Itu Wipesync Mode adalah default.

Menghapus data menggunakan badblocks

walaupun Badblocks Tujuan utama utilitas adalah mencari blok buruk, dengan menggunakan a Mode tulis Tes Mengganggu Kami dapat secara efektif menimpa data yang ada di perangkat pada perangkat. Yang harus kita lakukan adalah meluncurkan perintah dan menentukan -w Opsi: Tes akan dilakukan dengan menulis terlebih dahulu dan kemudian membaca 0xaa, 0x55, 0xff Dan 0x00 Pola data pada setiap blok dan membandingkan isinya.

Kita bisa menggunakan -S Dan -v opsi, untuk masing -masing membuat program menampilkan informasi kemajuan dan jumlah kesalahan baca dan tulis yang ditemui. Untuk menyeka perangkat kami, kami akan menjalankan:

$ sudo badblocks -wsv /dev /sdx memeriksa blok buruk dalam mode baca -wr dari blok 0 hingga 3870719 pengujian dengan pola 0xaa: ^c6.30% selesai, 0:41 Berlalu. (0/0/0 kesalahan)

Untuk menjalankan perintah di atas perangkat harus tidak dipasang, jika tidak Badblocks akan menolak untuk berjalan kecuali operasi dipaksakan dengan -F pilihan. Jumlah default blok yang diuji pada suatu waktu 64; Namun, kami dapat mengubah parameter ini menggunakan -C pilihan.

Kesimpulan

Pada artikel ini kami melihat tiga utilitas yang dapat kami gunakan untuk merobek data pada perangkat, dan beberapa contoh penggunaannya. DD Dan sobekan adalah bagian dari util inti GNU, jadi mereka hampir pasti sudah dipasang di sistem Anda. Badblocks adalah perangkat lunak yang digunakan untuk menguji keberadaan blok buruk: saat melakukan tes baca-tulis dengannya, kami dapat mengganti data pada perangkat. Harap perhatikan bahwa efektivitas penghancuran data tergantung juga pada jenis perangkat yang digunakan: drive solid state, misalnya, harus menangani fenomena seperti amplifikasi tulis.

Tutorial Linux Terkait:

  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Mendapatkan kembali privasi dan keamanan Anda di era digital
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Cara menggunakan Google Drive di Linux
  • Cara mempartisi drive usb di linux
  • Cara membandingkan kinerja disk di linux
  • Cara mempartisi drive di linux
  • Enkripsi disk penuh dengan Veracrypt di Ubuntu Linux
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Pengantar Otomatisasi Linux, Alat dan Teknik