Hogyan lehet biztonságosan törölni a fájlokat Linuxon

A régi adatfájlokat ugyanabból az okból aprítsa fel, mint a régi papírdokumentumokat. Elmondjuk, mit kell tudni a Linux-fájlok biztonságos törléséről. Ez az oktatóanyag a shred parancsot és a biztonságos törlési segédprogramokat ismerteti.

A törölt fájlok általában visszaállíthatók

A fájl törlése valójában nem távolítja el a merevlemezről. Minden azon múlik, hogy a fájlrendszer hogyan használja az inode-okat. Ezek a fájlrendszeren belüli adatstruktúrák, amelyek a fájlok metaadatait tárolják. A fájl neve, pozíciója a merevlemezen, milyen attribútumokkal és jogosultságokkal rendelkezik, és így tovább, mind egy inode-on belül van tárolva. A könyvtár nem több, mint maga a fájl. Olyan, amely tartalmazza a könyvtárban található fájlok nevét és inode számát.

Ha törlünk egy fájlt az rm-mel, a fájlrendszer felszabadítja a megfelelő inode-ot, és beállítja a könyvtárfájlt. Ez kihasználatlanként jelöli meg azt a helyet a merevlemezen, amelyet a fájl korábban elfoglalt. Képzeld el, hogy bemész egy könyvtárba, átnézed a cédulát, megkeresel egy könyv katalóguskártyáját, és szétszeded. A könyv még mindig a polcon van. Csak nehezebb megtalálni.

Más szóval, a fájl által használt terület most szabadon használható más fájlok számára. De a régi fájl tartalma még mindig ezen a helyen van. Amíg ezt a területet felül nem írják, jó eséllyel vissza lehet kérni a fájlt.

De a fájlok teljes eltávolítása nem olyan egyszerű, mint egyszerűen felülírni őket. Mint látni fogjuk.

Ne tegye ezt SSD-vel

Ezek a technikák hagyományos elektromechanikus merevlemez-meghajtókra (HDD) vonatkoznak, és nem használhatók szilárdtestalapú meghajtókkal (SSD). Nem fog működni, és többletírást és szükségtelen kopást okoz az SSD-n. Az adatok SSD-ről való biztonságos törléséhez használja az SSD gyártója által biztosított segédprogramot.

Az aprítási parancs

a shred-et arra tervezték hajtsa végre a felülírást így a törölt fájl nem állítható vissza. A jelen cikk kutatása során tesztelt összes Linux-disztribúcióban megtalálható, beleértve az Ubuntu-t, a Fedorát és a Manjaro-t is.

Ebben a példában egy ~/research nevű könyvtárban fogunk dolgozni, amely sok szövegfájlt tartalmaz. Ezenkívül néhány más könyvtárat is tartalmaz, amelyek viszont más fájlokat tartalmaznak. Feltételezzük, hogy ezek a fájlok érzékenyek, és teljesen törölni kell őket a merevlemezről.

A fa paranccsal a következőképpen láthatjuk a könyvtárfa szerkezetét. A -d (könyvtár) kapcsoló hatására a fa csak a könyvtárakat listázza ki, nem pedig az összes fájlt. A könyvtárfa szerkezete így néz ki:

tree -d

Egyetlen fájl megsemmisítése

Egyetlen fájl feldarabolásához használhatjuk a következő parancsot. Az általunk használt lehetőségek a következők:

u: A fájl lefoglalása és eltávolítása felülírás után.
v: Bőbeszédű opció, így a shred megmondja, mit csinál.
z: Végleges felülírást végez nullákkal.

shred -uvz Preliminary_Notes.txt_01.txt

A shred alapértelmezés szerint négyszer írja felül a fájlt. Az első három lépés véletlenszerű adatokat használ, az utolsó lépés pedig nullákat, ahogy kértük. Ezután eltávolítja a fájlt, és felülír néhány metaadatot az inode-ban

  Hogyan nézzünk tévét barátaival a Hulu Watch Party segítségével

A felülírási lépések számának beállítása

A -n (szám) kapcsolóval megkérhetjük a shred-et, hogy több vagy kevesebb felülírási lépést használjon. A shred mindig legalább egy menetet fog használni. Az itt megadott szám azoknak a többletnek a számának felel meg, amelyek végrehajtásához szét kell aprítani. Tehát a shred mindig eggyel többet teljesít, mint amennyit kérünk. Ahhoz, hogy összesen három bérletet kapjunk, további két bérletet kérünk:

shred -uvz -n 2 Preliminary_Notes.txt_02.txt

Ahogy az várható volt, a shred három utat tesz meg.

Kevesebb lépés – ha úgy tetszik – kevesebb aprítás – nyilvánvalóan gyorsabb. De kevésbé biztonságos? Érdekes módon három passz valószínűleg több mint elég.

Több fájl megsemmisítése

Helyettesítő karakterek használhatók a foszlatással a törlendő fájlcsoportok kiválasztásához. A * több karaktert jelöl, a ? egyetlen karaktert jelent. Ez a parancs törli az összes fennmaradó „Preliminary_Notes” fájlt az aktuális munkakönyvtárban.

shred -uvz -n 2 Preliminary_Notes_*.*

A fennmaradó fájlokat felváltva a darabolás dolgozza fel.

A shred-nek nincs rekurzív opciója, így nem használható a beágyazott könyvtárak könyvtárfáinak törlésére.

A fájlok biztonságos törlésének problémája

Bármilyen jó is, van egy probléma. A modern naplózó fájlrendszerek, mint például az ext3 és az ext4, óriási erőfeszítéseket tesznek annak érdekében, hogy ne törjenek meg, ne sérüljenek meg, és ne veszítsenek adatot. A naplózó fájlrendszerek esetében pedig nincs garancia arra, hogy a felülírás valóban a törölt fájl által használt merevlemez-területen történik.

Ha csak egy kis nyugalomra vágyik, hogy a fájlokat kicsit alaposabban törölték, mint ahogy az rm tette volna, akkor a shred valószínűleg rendben van. De ne essen abba a hibába, hogy azt gondolja, hogy az adatok biztosan eltűntek, és teljesen visszaállíthatatlanok. Valószínűleg nem ez a helyzet.

A biztonságos törlési csomag

A biztonságos törlési parancsok megpróbálják felülmúlni a fájlrendszerek naplózásának legjobb erőfeszítéseit, és sikeresen felülírják a fájlt biztonságosan. De pontosan ugyanazok a figyelmeztetések érvényesek. Még mindig nincs garancia arra, hogy a felülírás valóban a merevlemez azon régiójában történik, amelyre szüksége van a kívánt fájl törléséhez. Több az esély, de nincs garancia.

A biztonságos törlési parancsok a következő felülírási és műveleti sorrendet használják:

1 felülírás 0xFF értékű bájttal.
5 felülírás véletlenszerű adatokkal.
27 felülírja a Gutmann Péter által meghatározott speciális értékekkel.
5 további felülírás véletlenszerű adatokkal.
Nevezze át a fájlt véletlenszerű értékre.
Csonkítsa le a fájlt.

Ha mindez túlzásnak tűnik számodra, akkor jó társaságban vagy. Peter Gutmannnak, az Auklandi Egyetem professzorának is túlzónak tűnik. 1996-ban publikált egy tanulmányt megbeszélni ezeket a technikákat, amelyből az a városi mítosz keletkezett, hogy egyszerre kell alkalmazni az abban a cikkben tárgyalt technikákat.

  Ellenőrizze, hogy egy film megfelelő-e családi megtekintésre

Peter Gutmann azóta megpróbálta visszatenni a dzsinnt a palackba, mondván: „Egy jó súrolás véletlenszerű adatokkal nagyjából annyit tesz, mint az elvárható.”

De ott tartunk, ahol vagyunk, és ezek a biztonságos törlés parancsok által használt technikák tömbje. De először telepítenünk kell őket.

Secure-delete telepítése

Az apt-get segítségével telepítse ezt a csomagot a rendszerére, ha Ubuntut vagy más Debian-alapú disztribúciót használ. Más Linux disztribúciók esetén használja inkább a Linux disztribúció csomagkezelő eszközét.

sudo apt-get install secure-delete

A biztonságos törlési csomag négy parancsot tartalmaz.

Az srm egy biztonságos rm, amelyet a fájlok törlésével és a merevlemez-területük felülírásával törölnek.
A sfill egy olyan eszköz, amely felülírja a merevlemezen lévő összes szabad helyet.
A swap a swap terület felülírására és tisztítására szolgál.
Az sdmem a RAM megtisztítására szolgál.

Az srm parancs

Az srm parancsot ugyanúgy használja, mint az rm parancsot. Egyetlen fájl eltávolításához használja a következő parancsot. A -z (nullák) beállítás hatására az smr nullákat használ a végső törléshez véletlenszerű adatok helyett. A -v (bőbeszédű) opció arra készteti az srm-t, hogy tájékoztasson bennünket a folyamatról.

srm -vz Chapter_One_01.txt

Az első dolog, amit észrevesz, az az, hogy az srm lassú. Működés közben némi vizuális visszajelzést ad, de megkönnyebbülés, amikor ismét megjelenik a parancssor.

Használhatja az -l (a biztonság csökkentése) opciót, hogy kettőre csökkentse a lépések számát, ami drámaian felgyorsítja a folyamatot.

srm -lvz Chapter_One_02.txt

Az srm tudatja velünk, hogy ez – véleménye szerint – kevésbé biztonságos, de továbbra is törli és felülírja a fájlt helyettünk.

A -l (biztonság csökkentése) kapcsolót kétszer is használhatja, hogy a lépések számát egyre csökkentse.

srm -llvz Chapter_One_03.txt

srm használata több fájllal

Használhatunk helyettesítő karaktereket is az srm-mel. Ez a parancs törli és törli az első fejezet többi részét:

srm -vc Chapter_One_0?.txt

A fájlokat az srm felváltva dolgozza fel.

Könyvtárak és tartalmuk törlése az srm segítségével

A -r (rekurzív) kapcsoló hatására az srm törölni fogja az összes alkönyvtárat és azok tartalmát. Az srm-nek átadhatja az első könyvtár elérési útját.

Ebben a példában mindent törölünk az aktuális ~/research könyvtárból. Ez azt jelenti, hogy a ~/research összes fájlja és az összes alkönyvtár biztonságosan eltávolítva.

srm -vz *

Az srm megkezdi a könyvtárak és fájlok feldolgozását.

Végül visszatér a parancssorba. Azon a tesztgépen, amelyen ezt a cikket kutatták, körülbelül egy órát vett igénybe az aktuális könyvtár és a három beágyazott könyvtár között elosztott körülbelül 200 fájl eltávolítása.

Az összes fájl és alkönyvtár a várt módon eltávolítva lett.

A kitöltési parancs

Mi a teendő, ha aggódik egy fájl miatt, amelyet az rm segítségével törölt, hogyan léphet át a régi alapon, és ellenőrizze, hogy felül van-e írva? A kitöltési parancs felülírja a merevlemezen lévő összes szabad helyet.

Ennek során észre fogja venni, hogy egyre kevesebb szabad hely van a merevlemezen, egészen addig a pontig, amikor már egyáltalán nincs szabad hely. Amikor a kitöltés befejeződik, az összes szabad területet visszaadja Önnek. Ha többfelhasználós rendszert adminisztrál, ez nagyon zavaró lenne, ezért ez egy karbantartási feladat, amelyet munkaidőn kívül kell elvégezni.

  Hogyan gyorsítja fel az „egységes memória” az Apple M1 ARM Mac-eket?

Még egyetlen felhasználó számítógépén is a merevlemez-terület elvesztése azt jelenti, hogy a merevlemez használhatatlanná válik, ha a kitöltés a hely nagy részét elhasználta. Ez olyasvalami, amit elkezdesz, majd eltávolodsz tőle.

Ha egy kicsit fel akarja gyorsítani a dolgokat, használja a -l (a biztonság csökkentése) opciót. A többi opció a -v (bőbeszédű) és -z (nullák) opció, amelyet korábban láttunk. Itt arra kérjük a sfill-t, hogy biztonságosan írja felül a /home könyvtár összes szabad területét.

sudo sfill -lvz /home

Helyezd magad kényelembe. A tesztszámítógépen – amelynek csak 10 GB-os merevlemeze van – ez a délután közepén indult el, és valamikor egyik napról a másikra fejeződött be.

Órákig eláll. És ez a -l (biztonság csökkentése) opcióval történik. De végül visszakerül a parancssorba.

A csereparancs

A swap parancs felülírja a swap partíció tárhelyét. Az első dolog, amit meg kell tennünk, hogy azonosítsuk a swap partíciót. Ezt a blokkeszközöket listázó blkid paranccsal tehetjük meg.

sudo blkid

Meg kell keresnie a „swap” szót, és fel kell jegyeznie a blokkeszközt, amelyhez csatlakoztatva van.

Láthatjuk, hogy a swap partíció a /dev/sda5 fájlhoz csatlakozik.

Ki kell kapcsolnunk a lemezírást a swap partícióra a felülírás idejére. A swapoff parancsot fogjuk használni:

sudo swapoff /dev/sda5

Most már használhatjuk a swap parancsot.

A /dev/sda5 fájlt a swap parancs parancssorának részeként fogjuk használni. Használjuk a korábban használt -v (bőbeszédű) és -ll (biztonságcsökkentés) opciókat is.

sudo sswap -llv /dev/sda5

A swap elkezd áthaladni a swap partíción, felülírva mindent, ami benne van. Nem tart olyan sokáig, mint a kitöltés. Egyszerűen úgy érzi.

Miután befejeződött, vissza kell állítanunk a swap partíciót aktív csereterületként. Ezt a swapon paranccsal tesszük:

sudo swapon /dev/sda5

Az sdmem parancs

A biztonságos törlési csomag még egy eszközt is tartalmaz a számítógépben lévő Random Access Memory (RAM) chipek törlésére.

A hideg csizma támadás fizikai hozzáférést igényel a számítógéphez nagyon röviddel a kikapcsolása után. Az ilyen típusú támadások potenciálisan lehetővé tehetik az adatok lekérését a RAM chipekről.

Ha úgy gondolja, hogy meg kell védenie magát az ilyen típusú támadások ellen – és a legtöbb ember számára nehéz lenne azt hinni, hogy szüksége van rá –, törölje a RAM-ot, mielőtt kikapcsolja a számítógépet. Még egyszer használjuk a -v (bőbeszédű) és -ll (a biztonság csökkentése) opciókat.

sudo sdmem -vll

A terminálablak megtelik csillagokkal, jelezve, hogy az sdmem áthalad a RAM-on.

Az egyszerű lehetőség: Csak titkosítsa a meghajtót

A fájlok biztonságos törlése helyett miért ne védené merevlemezét vagy otthoni mappáját titkosítással?

Ha ezt megteszi, senki sem férhet hozzá semmihez, legyen szó élő fájlról vagy törölt fájlról. És nem kell résen lennie, és ne felejtse el biztonságosan törölni az érzékeny fájlokat, mert minden fájlja már védett.

A legtöbb Linux disztribúció megkérdezi, hogy kíván-e titkosítást használni a telepítéskor. Az „igen” kimondása sok jövőbeni súlyosbodástól kíméli meg. Titkos vagy érzékeny információkkal nem foglalkozhat. De ha úgy gondolja, hogy valaki másnak adhatja vagy eladhatja a számítógépet, amikor végzett vele, a titkosítás ezt is leegyszerűsíti.