Sådan sletter du filer sikkert på Linux

Makuler gamle datafiler af samme grund, som du makulerer gamle papirdokumenter. Vi fortæller dig, hvad du behøver at vide om sikker sletning af Linux-filer. Denne vejledning dækker shred-kommandoen og sikker-slet-pakken af ​​hjælpeprogrammer.

Slettede filer kan normalt gendannes

Sletning af en fil fjerner den faktisk ikke fra din harddisk. Det hele afhænger af den måde dit filsystem bruger inoder på. Disse er datastrukturerne i filsystemet, der indeholder metadataene vedrørende filerne. Navnet på filen, dens placering på harddisken, hvilke attributter og tilladelser den har, og så videre er alt sammen gemt i en inode. En mappe er ikke mere end en fil i sig selv. En, der indeholder navnene og inodenumrene på de filer, som mappen indeholder.

Når du sletter en fil med rm, frigiver filsystemet den relevante inode og justerer mappefilen. Dette markerer den plads på harddisken, som filen plejede at optage, som ubrugt. Forestil dig, at du går ind i et bibliotek og gennemgår kartoteket, finder en bogs katalogkort og river det op. Bogen ligger stadig på hylden. Det er bare sværere at finde.

Med andre ord er den plads, der blev brugt af filen, nu fri til at blive brugt af andre filer. Men indholdet af den gamle fil sidder stadig i det rum. Indtil det mellemrum er overskrevet, er der en god chance for, at filen kan hentes.

Men helt at slippe af med en fil er ikke så ligetil som blot at overskrive dem. Som vi skal se.

Gør ikke dette med SSD’er

Disse teknikker er til traditionelle elektromekaniske harddiske (HDD) og bør ikke bruges med solid state-drev (SSD). Det virker ikke og vil forårsage ekstra skrivninger og unødvendigt slid på din SSD. For at slette data sikkert fra en SSD, skal du bruge hjælpeprogrammet leveret af producenten af ​​din SSD.

The shred Command

makulere er designet til udføre overskrivningen for dig så en slettet fil kan ikke gendannes. Det er inkluderet i alle de Linux-distributioner, der blev testet under forskningen til denne artikel, inklusive Ubuntu, Fedora og Manjaro.

I dette eksempel skal vi arbejde i en mappe kaldet ~/research, som indeholder mange tekstfiler. Den indeholder også nogle andre mapper, som igen indeholder andre filer. Vi vil antage, at disse filer er følsomme og skal slettes helt fra harddisken.

Vi kan se mappetræstrukturen ved at bruge trækommandoen som følger. Indstillingen -d (mappe) får træet til kun at vise mapper og ikke til at vise alle filerne. Bibliotekstræstrukturen ser sådan ud:

tree -d

Makulering af en enkelt fil

For at makulere en enkelt fil kan vi bruge følgende kommando. De muligheder vi bruger er:

u: Afallokér og fjern filen efter overskrivning.
v: Udførlig mulighed, så den shred fortæller os, hvad den laver.
z: Udfører en sidste overskrivning med nuller.

shred -uvz Preliminary_Notes.txt_01.txt

shred overskriver filen fire gange som standard. De første tre gennemløb bruger tilfældige data, og den sidste gennemgang bruger nuller, som vi anmodede om. Det fjerner derefter filen og overskriver nogle af metadataene i inoden

  Sådan opretter, monterer og brænder du en ISO-fil i Linux

Indstilling af antallet af overskrivningspassager

Vi kan bede shred om at bruge flere eller færre overskrivningspas ved at bruge -n (antal) muligheden. shred vil altid bruge mindst et pas. Antallet, vi angiver her, er antallet af ekstra gennemløb, som vi kræver shred for at udføre. Så shred vil altid klare en gang mere end det antal, vi beder om. For at få tre pas i alt, anmoder vi om to ekstra pas:

shred -uvz -n 2 Preliminary_Notes.txt_02.txt

Som forventet laver shred tre afleveringer.

Færre gennemløb – færre makuleringer, hvis du vil – er naturligvis hurtigere. Men er det mindre sikkert? Tre afleveringer er interessant nok mere end nok.

Makulering af flere filer

Jokertegn kan bruges med shred til at vælge grupper af filer, der skal slettes. * repræsenterer flere tegn, og ? repræsenterer et enkelt tegn. Denne kommando ville slette alle de resterende “Preliminary_Notes” filer i den aktuelle arbejdsmappe.

shred -uvz -n 2 Preliminary_Notes_*.*

De resterende filer behandles hver især af makulering efter tur.

shred har ingen rekursiv mulighed, så den kan ikke bruges til at slette mappetræer i indlejrede mapper.

Besværet med sikker sletning af filer

Så godt som shred er, er der et problem. Moderne journalføringsfilsystemer som ext3 og ext4 gør en enorm indsats for at sikre, at de ikke går i stykker, bliver korrupte eller mister data. Og med journalføringsfilsystemer er der ingen garanti for, at overskrivningen faktisk finder sted over den harddiskplads, der bruges af den slettede fil.

Hvis du bare er ude efter lidt ro i sindet, at filerne er blevet slettet en smule mere grundigt, end rm ville have gjort det, så er shred sandsynligvis fint. Men tag ikke den fejl at tro, at dataene helt sikkert er væk og er fuldstændig uoprettelige. Det er muligvis ikke tilfældet.

Suiten med sikker sletning

Sikker-slet-kommandoerne forsøger at overvinde den bedste indsats for at journalisere filsystemer og få succes med at overskrive filen sikkert. Men præcis de samme forbehold gælder. Der er stadig ingen garanti for, at overskrivningen faktisk finder sted over det område af harddisken, hvor du har brug for det for at udslette filen af ​​interesse. Der er flere chancer, men ingen garanti.

Secure-delete-kommandoerne bruger følgende sekvens af overskrivninger og handlinger:

1 overskriv med 0xFF-værdibytes.
5 overskriver med tilfældige data.
27 overskriver med særlige værdier defineret af Peter Gutmann.
5 flere overskriver med tilfældige data.
Omdøb filen til en tilfældig værdi.
Afkort filen.

Hvis alt det virker overdrevent for dig, er du i godt selskab. Det virker også overdrevet for Peter Gutmann, professor ved Universitetet i Aukland. Han udgav et papir i 1996 diskutere disse teknikker, hvorfra den urbane myte opstod, at du skal bruge alle de teknikker, der er diskuteret i det papir på én gang.

  Sådan installeres Slack på Linux

Peter Gutmann har siden forsøgt at få ånden tilbage i flasken med at sige “En god skrubning med tilfældige data vil gøre omtrent lige så godt, som man kan forvente.”

Men vi er, hvor vi er, og disse er rækken af ​​teknikker, der anvendes af sikker-slet-kommandoer. Men først skal vi installere dem.

Installerer sikker-slet

Brug apt-get til at installere denne pakke på dit system, hvis du bruger Ubuntu eller en anden Debian-baseret distribution. På andre Linux-distributioner skal du bruge din Linux-distributions pakkehåndteringsværktøj i stedet.

sudo apt-get install secure-delete

Der er fire kommandoer inkluderet i sikker-slet-pakken.

srm er en sikker rm, der bruges til at slette filer ved at slette dem og overskrive deres harddiskplads.
sfill er et værktøj til at overskrive al ledig plads på din harddisk.
sswap bruges til at overskrive og rense dit swap-rum.
sdmem bruges til at rense din RAM.

srm kommandoen

Du bruger srm-kommandoen på samme måde som du ville bruge rm-kommandoen. For at fjerne en enkelt fil, brug følgende kommando. Indstillingen -z (nuller) får smr til at bruge nuller til den sidste sletning i stedet for tilfældige data. Indstillingen -v (verbose) får srm til at informere os om dens fremskridt.

srm -vz Chapter_One_01.txt

Det første du vil bemærke er, at srm er langsom. Det giver visuel feedback, mens det virker, men det er en lettelse, når du ser kommandoprompten igen.

Du kan bruge muligheden -l (mindske sikkerheden) til at reducere antallet af afleveringer til to, hvilket fremskynder tingene dramatisk.

srm -lvz Chapter_One_02.txt

srm informerer os om, at dette – efter dens mening – er mindre sikkert, men det sletter og overskriver stadig filen for os.

Du kan bruge indstillingen -l (mindske sikkerheden) to gange for at reducere antallet af afleveringer til én.

srm -llvz Chapter_One_03.txt

Brug af srm med flere filer

Vi kan også bruge jokertegn med srm. Denne kommando vil slette og slette de resterende dele af kapitel et:

srm -vc Chapter_One_0?.txt

Filerne behandles på skift af srm.

Sletning af mapper og deres indhold med srm

Valgmuligheden -r (rekursiv) vil få srm til at slette alle undermapper og deres indhold. Du kan videregive stien til den første mappe til srm.

I dette eksempel sletter vi alt det aktuelle bibliotek, ~/research. Dette betyder, at alle filerne i ~/research og alle undermapper er sikkert fjernet.

srm -vz *

srm begynder at behandle mapperne og filerne.

Det returnerer dig til sidst til kommandoprompten. På den testmaskine, som denne artikel blev undersøgt på, tog det omkring en time at fjerne omkring 200 filer fordelt mellem den aktuelle mappe og tre indlejrede mapper.

Alle filer og undermapper blev fjernet som forventet.

Sfill-kommandoen

Hvad hvis du er bekymret for en fil, som du har slettet ved hjælp af rm, hvordan kan du så gå over den gamle grund og sikre dig, at den bliver overskrevet? Sfill-kommandoen vil overskrive al den ledige plads på din harddisk.

Mens den gør dette, vil du bemærke, at du har mindre og mindre ledig plads på din harddisk, lige til det punkt, hvor der slet ikke er ledig plads. Når udfyldningen er fuldført, frigiver den al den ledige plads tilbage til dig. Hvis du administrerer et flerbrugersystem, ville dette være meget forstyrrende, så dette er en vedligeholdelsesopgave, der bør udføres uden for åbningstiden.

  Sådan bruges Wireshark-filtre på Linux

Selv på en enkeltbrugercomputer betyder tabet af harddiskplads, at den er ubrugelig, når først sfill har brugt det meste af pladsen. Dette er noget, du ville starte og derefter gå væk fra.

For at forsøge at fremskynde tingene lidt, kan du bruge -l (mindske sikkerheden) mulighed. De andre muligheder er -v (verbose) og -z (nuller), vi har set tidligere. Her beder vi sfill om sikkert at overskrive al den ledige plads i /home-mappen.

sudo sfill -lvz /home

Gør dig godt tilpas. På testcomputeren – som kun har en 10 GB harddisk – blev dette startet midt på eftermiddagen, og det blev afsluttet engang i løbet af natten.

Det vil køre væk i timevis. Og dette er med muligheden -l (mindske sikkerheden). Men til sidst vil du blive returneret til kommandoprompten.

sswap-kommandoen

sswap-kommandoen overskriver lageret i din swap-partition. Den første ting, vi skal gøre, er at identificere din swap-partition. Vi kan gøre dette med kommandoen blkid, som viser blokenheder.

sudo blkid

Du skal finde ordet “swap” og notere den blokenhed, den er knyttet til.

Vi kan se swap-partitionen er forbundet til /dev/sda5.

Vi er nødt til at deaktivere diskskrivning til swap-partitionen, så længe overskrivningen varer. Vi vil bruge swapoff-kommandoen:

sudo swapoff /dev/sda5

Vi kan nu bruge sswap-kommandoen.

Vi vil bruge /dev/sda5 som en del af kommandolinjen til sswap-kommandoen. Vi vil også bruge valgmulighederne -v (verbose) og -ll (mindske sikkerhed), som vi brugte tidligere.

sudo sswap -llv /dev/sda5

sswap begynder at arbejde sig gennem din swap-partition og overskriver alt, hvad den er i den. Det tager ikke så lang tid som sfill. Det føles bare sådan.

Når det er afsluttet, skal vi genindsætte swap-partitionen som et aktivt swap-rum. Vi gør dette med swapon kommandoen:

sudo swapon /dev/sda5

sdmem-kommandoen

Secure-delete-pakken indeholder endda et værktøj til at slette RAM-chipsene (Random Access Memory) på din computer.

EN koldstøvleangreb kræver fysisk adgang til din computer meget kort tid efter, at den er slukket. Denne type angreb kan potentielt tillade hentning af data fra dine RAM-chips.

Hvis du mener, du skal beskytte dig selv mod denne type angreb – og det ville være en strækning for de fleste at tro, at de var nødt til det – kan du tørre din RAM, før du slukker din computer. Vi vil bruge mulighederne -v (verbose) og -ll (mindske sikkerheden) endnu en gang.

sudo sdmem -vll

Terminalvinduet vil fyldes op med stjerner som en indikation af, at sdmem arbejder sig vej gennem din RAM.

Den nemme mulighed: Bare krypter dit drev

I stedet for at slette filer sikkert, hvorfor så ikke sikre din harddisk eller din hjemmemappe ved hjælp af kryptering?

Hvis du gør det, kan ingen få adgang til noget, uanset om det er en live-fil eller en slettet fil. Og du behøver ikke at være på vagt og huske at slette følsomme filer sikkert, fordi alle dine filer allerede er beskyttet.

De fleste Linux-distributioner spørger, om du vil bruge kryptering på installationstidspunktet. At sige “ja” vil spare en masse fremtidig forværring. Du må ikke beskæftige dig med hemmelige eller følsomme oplysninger. Men hvis du tror, ​​du kan give eller sælge computeren til en anden, når du er færdig med den, vil kryptering også forenkle det.