/ / Slik sletter du filer på en sikker måte på Linux

Slik sletter du filer på Linux sikkert

Åpne harddisken i varmt byttebrett

Makuler gamle datafiler av samme grunn som du makulerer gamle papirdokumenter. Vi forteller deg hva du trenger å vite om sikker sletting av Linux-filer. Denne opplæringen dekker shred kommandoen og secure-delete pakke med verktøy.

Slettede filer kan normalt gjenopprettes

Slette en fil fjerner den faktisk ikke fraharddisken din. Det er helt ned til måten filsystemet bruker inoder på. Dette er datastrukturene i filsystemet som inneholder metadataene for filene. Navnet på filen, dens plassering på harddisken, hvilke attributter og tillatelser den har, og så videre, er alle lagret i en inode. En katalog er ikke mer enn en fil i seg selv. En som inneholder navnene og inodenumrene til filene som katalogen inneholder.

Når du sletter en fil med rmfrigjør filsystemet riktig inodeog justerer katalogfilen. Dette markerer plassen på harddisken som filen pleide å oppta som ubrukt. Tenk deg at du går inn i et bibliotek og går gjennom kortindeksen, finner en boks katalogkort og river den opp. Boken ligger fortsatt på hylla. Det er bare vanskeligere å finne.

Med andre ord, plassen som ble brukt avfilen er nå gratis å brukes av andre filer. Men innholdet i den gamle filen sitter fortsatt i det rommet. Inntil denne plassen er overskrevet, er det stor sjanse for at filen kan hentes.

Men å bli kvitt en fil er ikke så grei som å overskrive dem. Som vi skal se.

Ikke gjør dette med SSD-er

Disse teknikkene er for tradisjonelleelektromekaniske harddisker (HDD), og skal ikke brukes med solid state-stasjoner (SSD). Det fungerer ikke og vil føre til ekstra skriving og unødvendig slitasje på SSD-en. For å sikkert slette data fra en SSD, bør du bruke verktøyet som tilbys av produsenten av SSD-en.

I SLEKT: Slik sletter du filer og kataloger i Linux-terminalen

Makuleringskommandoen

shred er designet for å utføre overskrivingen for deg såen slettet fil kan ikke gjenopprettes. Det er inkludert i alle Linux-distribusjoner som ble testet under undersøkelsen for denne artikkelen, inkludert Ubuntu, Fedora og Manjaro.

I dette eksemplet skal vi jobbe i enkatalog kalt ~ / research, som inneholder mange tekstfiler. Den inneholder også noen andre kataloger som igjen inneholder andre filer. Vi kommer til å anta at disse filene er følsomme og må slettes helt fra harddisken.

Vi kan se katalogtrestrukturen ved å bruke tree kommandoen som følger. De -d (katalog) alternativet årsaker tree bare for å vise kataloger, og ikke for å liste opp alle filene. Katalogtrestrukturen ser slik ut:

tree -d

katalogtrestruktur i et terminalvindu

Makulering av en enkelt fil

For å makulere en enkelt fil, kan vi bruke følgende kommando. Alternativene vi bruker er:

  • u: Distribuer og fjern filen etter overskriving.
  • v: Formulert alternativ, slik at shred forteller oss hva det gjør.
  • z: Utfører en endelig overskriving med nuller.
shred -uvz Preliminary_Notes.txt_01.txt

makulere -uvz Preliminary_Notes.txt_01.txt i et terminalvindu

shred overskriver filen fire ganger som standard. De tre første passene bruker tilfeldige data, og det siste passet bruker nuller, slik vi ba om. Den fjerner deretter filen og overskriver noen av metadataene i inoden

makulerer og gjør fire pasninger

Angi antall passeringer for overskriving

Vi kan spørre shred å bruke flere eller færre overskrivingspass ved å bruke -n (antall) alternativ. shred vil alltid bruke minst ett pass. Tallet vi oppgir her er antallet ekstra passerer vi krever shred å fremføre. Så shred vil alltid gjøre ett pass til enn antallet vi ber om. For å få tre passeringer totalt ber vi om to ekstra passeringer:

shred -uvz -n 2 Preliminary_Notes.txt_02.txt

makulere -uvz -n 2 Preliminary_Notes.txt_02.txt i et terminalvindu

Som forventet, shred gjør tre pasninger.

makulerer tre passeringer i et terminalvindu

Færre passeringer - færre makuleringer hvis du vil - er åpenbart raskere. Men er det mindre sikkert? Tre pasninger er interessant nok nok mer enn nok.

I SLEKT: Du trenger bare å tørke en disk en gang for å slette den på en sikker måte

Makulering av flere briller

Jokertegn kan brukes med shred for å velge grupper av filer som skal slettes. De * representerer flere tegn, og ? representerer en enkelt karakter. Denne kommandoen vil slette alle de resterende "Preliminære_Notes" -filene i gjeldende arbeidskatalog.

shred -uvz -n 2 Preliminary_Notes_*.*

makulere -uvz -n 2 Preliminære_Noter _ *. * i et terminalvindu

De resterende filene behandles hver av shred i sin tur.

output fra makulering i et terminalvindu

shred har ingen rekursivt alternativ, så den kan ikke brukes til å slette katalogtrær i nestede kataloger.

Problemet med å slette filer sikkert

Så godt som shred er, det er et problem. Moderne journalfilsystemer som ext3 og ext4 gjør en enorm innsats for å sikre at de ikke går i stykker, blir korrupte eller mister data. Og med journalføring av filsystemer er det ingen garanti for at overskrivingen faktisk foregår over harddiskplassen som brukes av den slettede filen.

Hvis du er ute etter litt ro i sjelen, er filene slettet litt grundigere enn rm hadde gjort det, da shred er nok greit. Men ikke gjør feilen ved å tro at dataene definitivt er borte og er fullstendig gjenopprettelige. Det er ganske mulig ikke saken.

I SLEKT: Hvorfor du ikke kan "slette" en fil sikkert, og hva du skal gjøre i stedet

Den sikre slettingssuiten

De secure-delete kommandoer prøver å overvinne den beste innsatsen frajournalføring av filsystemer og å lykkes med å overskrive filen sikkert. Men nøyaktig de samme advarslene gjelder. Det er fortsatt ingen garanti for at overskrivingen faktisk finner sted over regionen på harddisken at du trenger den for å utslette den interessante filen. Det er større sjanse, men ingen garanti.

De secure-delete kommandoer bruker følgende sekvens av overskrivinger og handlinger:

  • 1 overskrives med 0xFF verdi byte.
  • 5 overskriver med tilfeldige data.
  • 27 overskriver med spesielle verdier definert av Peter Gutmann.
  • 5 flere overskriver med tilfeldige data.
  • Gi filen nytt navn til en tilfeldig verdi.
  • Avkutt filen.

Hvis alt dette virker overdreven for deg, er du innegodt selskap. Det virker også overdreven for Peter Gutmann, professor ved University of Aukland. Han publiserte en artikkel i 1996 som diskuterte disse teknikkene, hvorfra den urbane myten om at du trenger for å bruke alle teknikkene som ble diskutert i papiret, oppstod samtidig.

Peter Gutmann har siden forsøkt å få genien tilbake i flasken og si "En god skrubbing med tilfeldige data vil gjøre omtrent så godt som kan forventes."

Men vi er der vi er, og dette er en rekke teknikker som brukes av secure-delete kommandoer. Men først må vi installere dem.

Installerer sikker sletting

Bruk apt-get å installere denne pakken på systemet ditt hvis du bruker Ubuntu eller en annen Debian-basert distribusjon. Bruk andre Linux-distribusjoner i stedet for pakkehåndteringsverktøyet for Linux.

sudo apt-get install secure-delete

sudo apt-get install secure-delete i et terminalvindu

Det er fire kommandoer inkludert i secure-delete bunt.

  1. srm er en sikker rm, brukes til å slette filer ved å slette dem og overskrive harddiskplassen.
  2. sfill er et verktøy for å overskrive all ledig plass på harddisken.
  3. sswap brukes til å overskrive og rense bytteområdet ditt.
  4. sdmem brukes til å rense RAM-en.

SRM-kommandoen

Du bruker srm kommandoen mye som du ville brukt rm kommando. For å fjerne en enkelt fil, bruk følgende kommando. De -z (nuller) alternativ årsaker smr å bruke nuller for den siste slettingen i stedet for tilfeldige data. De -v (detaljert) alternativ gjør srm informer oss om fremdriften.

srm -vz Chapter_One_01.txt

srm -vz Chapter_One_01.txt i et terminalvindu

Det første du vil legge merke til er at srm er sakte. Det gir visuell tilbakemelding mens det fungerer, men det er en lettelse når du ser ledeteksten igjen.

utdata fra srm i et terminalvindu

Du kan bruke -l (reduser sikkerheten) alternativet for å redusere antall passeringer til to, noe som gir raskere hastighet.

srm -lvz Chapter_One_02.txt

srm -lvz Chapter_One_02.txt i et terminalvindu

srm informerer oss om at dette - etter sin mening - er mindre sikkert, men det sletter og overskriver filen for oss.

Output fra srm i et terminalvindu

Du kan bruke -l (redusere sikkerhets) -alternativet to ganger for å redusere antall passeringer ned til en.

srm -llvz Chapter_One_03.txt

srm -llvz Chapter_One_03.txt i et terminalvindu

Bruker srm med flere filer

Vi kan også bruke jokertegn med srm. Denne kommandoen vil slette og tørke de resterende delene av kapittel ett:

srm -vc Chapter_One_0?.txt

srm -vc Chapter_One_0? .txt i et terminalvindu

Filene behandles av srm i sin tur.

srm tørke flere filer i et terminalvindu

Slette kataloger og innhold med srm

De -r (rekursivt) alternativ vil gjøre srm slett alle underkataloger og innholdet. Du kan sende stien til den første katalogen til srm.

I dette eksemplet sletter vi alt den nåværende katalogen, ~ / research. Dette betyr at alle filene i ~ / research og alle underkatalogene er fjernet sikkert.

srm -vz *

srm -vz * i et terminalvindu

srm begynner å behandle kataloger og filer.

srm begynner å behandle i et terminalvindu

Til slutt returnerer du deg til ledeteksten. På testmaskinen som denne artikkelen ble undersøkt om, tok det rundt en time å fjerne rundt 200 filer distribuert mellom den nåværende katalogen og tre nestede kataloger.

srm komplett i et terminalvindu

Alle filene og underkatalogene ble fjernet som forventet.

Sfill-kommandoen

Hva om du er bekymret for en fil du har slettet ved hjelp av rm, hvordan kan du gå over den gamle bakken og sørge for at den blir overskrevet? De sfill kommandoen overskriver all ledig plass på harddisken.

Når den gjør dette, vil du legge merke til at du har mindre og mindre ledig plass på harddisken, helt opp til det punktet hvor det ikke er ledig plass i det hele tatt. Når sfill fullfører, frigjør den all ledig plass tilbaketil deg. Hvis du administrerer et flerbruker-system, vil dette være veldig forstyrrende, så dette er en vedlikeholdsoppgave som skal utføres utenom timer.

Selv på en enkeltbrukerdatamaskin betyr tap av harddiskplass at den er ubrukelig en gang sfill har brukt mesteparten av plassen. Dette er noe du vil starte og deretter gå bort fra.

For å prøve å få fortgang litt, kan du bruke -l (reduser sikkerheten). De andre alternativene er -v (ordentlig) og -z (nuller) alternativer vi har sett tidligere. Her spør vi sfill for å overskrive all ledig plass i / home-katalogen på en sikker måte.

sudo sfill -lvz /home

sudo sfill -lvz / home i et terminalvindu

Føl deg som hjemme. På testdatamaskinen - som bare har en 10 GB harddisk - ble denne startet midt på ettermiddagen, og den ble fullført en gang over natten.

sfill-utgang i et terminalvindu

Det vil kaste seg i timevis. Og dette er med de -l (reduser sikkerheten). Men til slutt vil du bli returnert til ledeteksten.

Sswap-kommandoen

De sswap kommandoen overskriver lagringen i byttepartisjonen din. Det første vi trenger å gjøre er å identifisere byttepartisjonen din. Vi kan gjøre dette med blkid kommando, som viser blokkeringsenheter.

sudo blkid

sudo blkid i et terminalvindu

Du må finne ordet "bytte" og notere blokkenheten den er festet til.

output av blkid i et terminalvindu

Vi kan se byttepartisjonen er koblet til /dev/sda5.

Vi må slå av skriveskriv til byttepartisjonen så lenge overskrivingen varer. Vi vil bruke swapoff kommando:

sudo swapoff /dev/sda5

sudo swapoff / dev / sda5 i et terminalvindu

Vi kan nå bruke sswap kommando.

Vi vil bruke /dev/sda5 som en del av kommandolinjen for sswap kommando. Vi bruker også -v (detaljert) alternativ og -ll (reduser sikkerhets) alternativer, som vi brukte tidligere.

sudo sswap -llv /dev/sda5

sudo sswap -llv / dev / sda5 i et terminalvindu

sswap begynner å jobbe seg gjennom byttepartisjonen din og overskrive alt det er i den. Det tar ikke så lang tid som sfill. Det føles bare som det.

Når den er fullført, må vi gjenopprette byttepartisjonen som et aktivt bytteområde. Vi gjør dette med swapon kommando:

sudo swapon /dev/sda5

sudo swapon / dev / sda5 i et terminalvindu

SDMEM-kommandoen

De secure-delete pakken inneholder til og med et verktøy for å tørke Random Access Memory (RAM) -brikkene på datamaskinen din.

Et kaldstartangrep krever fysisk tilgang til datamaskinen din kort tid etter at den er slått av. Denne typen angrep kan potensielt tillate henting av data fra RAM-brikkene dine.

Hvis du tror du trenger å beskytte deg motdenne typen angrep - og det ville være en strekning for folk flest å tro at de trengte det - du kan tørke RAM-minnet ditt før du slår av datamaskinen. Vi bruker -v (ordentlig) og -ll (reduser sikkerhets) alternativer en gang til.

sudo sdmem -vll

sudo sdmem -vll i et terminalvindu

Terminalvinduet fylles opp med stjerner som en indikasjon på at sdmem jobber seg gjennom RAM-en.

utdata fra sdmem i et terminalvindu

Det enkle alternativet: Krypter bare stasjonen din

I stedet for å slette filer sikkert, hvorfor ikke sikre harddisken eller hjemmemappen din ved hjelp av kryptering?

Hvis du gjør det, kan ingen få tilgang til noe,om det er en levende fil eller en slettet fil. Og du trenger ikke være på vakt og huske å slette sensitive filer på en sikker måte fordi alle filene dine allerede er beskyttet.

De fleste Linux-distribusjoner spør om du vilbruke kryptering ved installasjonstidspunktet. Å si "ja" vil spare mye fremtidig forverring. Du kan ikke håndtere hemmelig eller sensitiv informasjon. Men hvis du tror du kan gi eller selge datamaskinen til noen andre når du er ferdig med den, vil kryptering forenkle det også.