• Bygg ett webbgränssnitt för att lista och säkert förstöra hårddiskar med shred och PHP

    Linux.se har verifierat att det fungerar. Det rekommenderas starkt att köra det här projektet på en ”slaskmaskin”. Vi har testat det på Ubuntu Server 24.04 LTS på en gammal, sliten Acer-dator med en inkopplad hårddiskvagga.

    Men som det står längre ner i artikeln: Kör aldrig detta på ett nätverk som är åtkomligt från internet eller maskin som innehåller viktig data.

    En Svensk tiger, förstör innehållet på gamla hårddiskar är ett måste.

    Att säkert förstöra innehållet på en hårddisk är avgörande i många sammanhang, till exempel vid återvinning, återanvändning eller avyttring av gammal IT-utrustning. Den här artikeln beskriver hur du sätter upp ett webbgränssnitt där du kan lista datorns anslutna hårddiskar och på ett säkert sätt skriva över vald disk med hjälp av shred. Lösningen är tänkt att användas lokalt på maskinen, exempelvis i en verkstad eller på en isolerad maskin.

    Förutsättningar

    För att följa guiden behöver du:

    • Ett Linux-system med:
      • Apache eller Nginx installerat
      • PHP installerat
      • lsblk, lsof och shred tillgängliga
    • Root-behörighet för att justera sudo-regler
    • Grundläggande kunskap om terminalen

    Katalogstruktur

    Alla nödvändiga filer placeras i webbserverns dokumentrot, vanligtvis /var/www/html/. Strukturen ser ut så här:

    /var/www/html/index.html
    /var/www/html/list_disks.php
    /var/www/html/check_processes.php
    /var/www/html/destroy_disk.php

    Gränssnitt och funktion

    Webbgränssnittet består av en HTML-sida med JavaScript som:

    • Hämtar lista på anslutna diskar via AJAX
    • Visar valbara parametrar för shred
    • Kontrollerar om någon process använder vald disk
    • Utför radering med shred via sudo
    • Visar realtidsutmatning från shred direkt i webbläsaren

    PHP-skript

    list_disks.php

    Returnerar en JSON-lista på tillgängliga diskar baserat på lsblk.

    check_processes.php

    Kontrollerar om någon process har öppna filer mot den valda disken via lsof.

    destroy_disk.php

    Kör shred med valda parametrar och visar utmatning i realtid. Skriptet använder sudo för att få nödvändiga rättigheter.

    Köra shred som root

    För att webbserverns användare (oftast www-data) ska kunna köra shred och lsof med root-behörighet krävs justering i sudoers.

    Öppna terminalen och kör:

    sudo visudo

    Lägg till följande rader:

    www-data ALL=(ALL) NOPASSWD: /usr/bin/shred
    www-data ALL=(ALL) NOPASSWD: /usr/bin/lsof

    Därmed kan webbservern köra just dessa kommandon utan lösenord, men ingenting annat som root.

    Starta och testa

    Öppna webbläsaren och gå till:

    http://localhost/index.html

    Om allt är rätt konfigurerat visas en lista på tillgängliga diskar. Du kan välja disk, justera parametrar för shred och påbörja raderingen. Utmatningen från shred visas i realtid.

    Säkerhetsaspekter

    Det här systemet är avsett att köras på en isolerad maskin, exempelvis i en verkstad eller i en destruktionsmiljö. Det ska inte exponeras på öppet nätverk.

    Gränssnittet innehåller grundläggande validering, men vidare säkerhetsåtgärder som inloggning eller flerstegsbekräftelser rekommenderas om systemet används utanför strikt kontrollerad miljö.

    Felsökning

    Om diskarna inte listas eller systemet inte fungerar som förväntat, kontrollera följande:

    • Testa att surfa direkt till list_disks.php. Du ska se en JSON-lista.
    • Kontrollera filrättigheter i /var/www/html.
    • Kontrollera serverns fel-loggar, exempelvis /var/log/apache2/error.log.
    • Säkerställ att shred och lsof finns i /usr/bin/ och är exekverbara.
    • Bekräfta att sudoers-regeln är korrekt.
    Skärmdump på skriptet i drift.

    Avslutning

    Med denna lösning får du ett enkelt och effektivt webbgränssnitt för att säkert förstöra hårddiskar med hjälp av shred. Rätt konfiguration av webbserver, PHP och sudo är avgörande för att systemet ska fungera säkert och pålitligt. Lösningen är avsedd för lokala miljöer och bör aldrig exponeras för internet utan ytterligare skyddsåtgärder.

    Koden : https://www.linux.se/kod/DestroDisk.tar.bz2

Bygg ett webbgränssnitt för att lista och säkert förstöra hårddiskar med shred och PHP

Linux.se har verifierat att det fungerar. Det rekommenderas starkt att köra det här projektet på en ”slaskmaskin”. Vi har testat det på Ubuntu Server 24.04 LTS på en gammal, sliten Acer-dator med en inkopplad hårddiskvagga.

Men som det står längre ner i artikeln: Kör aldrig detta på ett nätverk som är åtkomligt från internet eller maskin som innehåller viktig data.

En Svensk tiger, förstör innehållet på gamla hårddiskar är ett måste.

Att säkert förstöra innehållet på en hårddisk är avgörande i många sammanhang, till exempel vid återvinning, återanvändning eller avyttring av gammal IT-utrustning. Den här artikeln beskriver hur du sätter upp ett webbgränssnitt där du kan lista datorns anslutna hårddiskar och på ett säkert sätt skriva över vald disk med hjälp av shred. Lösningen är tänkt att användas lokalt på maskinen, exempelvis i en verkstad eller på en isolerad maskin.

Förutsättningar

För att följa guiden behöver du:

  • Ett Linux-system med:
    • Apache eller Nginx installerat
    • PHP installerat
    • lsblk, lsof och shred tillgängliga
  • Root-behörighet för att justera sudo-regler
  • Grundläggande kunskap om terminalen

Katalogstruktur

Alla nödvändiga filer placeras i webbserverns dokumentrot, vanligtvis /var/www/html/. Strukturen ser ut så här:

/var/www/html/index.html
/var/www/html/list_disks.php
/var/www/html/check_processes.php
/var/www/html/destroy_disk.php

Gränssnitt och funktion

Webbgränssnittet består av en HTML-sida med JavaScript som:

  • Hämtar lista på anslutna diskar via AJAX
  • Visar valbara parametrar för shred
  • Kontrollerar om någon process använder vald disk
  • Utför radering med shred via sudo
  • Visar realtidsutmatning från shred direkt i webbläsaren

PHP-skript

list_disks.php

Returnerar en JSON-lista på tillgängliga diskar baserat på lsblk.

check_processes.php

Kontrollerar om någon process har öppna filer mot den valda disken via lsof.

destroy_disk.php

Kör shred med valda parametrar och visar utmatning i realtid. Skriptet använder sudo för att få nödvändiga rättigheter.

Köra shred som root

För att webbserverns användare (oftast www-data) ska kunna köra shred och lsof med root-behörighet krävs justering i sudoers.

Öppna terminalen och kör:

sudo visudo

Lägg till följande rader:

www-data ALL=(ALL) NOPASSWD: /usr/bin/shred
www-data ALL=(ALL) NOPASSWD: /usr/bin/lsof

Därmed kan webbservern köra just dessa kommandon utan lösenord, men ingenting annat som root.

Starta och testa

Öppna webbläsaren och gå till:

http://localhost/index.html

Om allt är rätt konfigurerat visas en lista på tillgängliga diskar. Du kan välja disk, justera parametrar för shred och påbörja raderingen. Utmatningen från shred visas i realtid.

Säkerhetsaspekter

Det här systemet är avsett att köras på en isolerad maskin, exempelvis i en verkstad eller i en destruktionsmiljö. Det ska inte exponeras på öppet nätverk.

Gränssnittet innehåller grundläggande validering, men vidare säkerhetsåtgärder som inloggning eller flerstegsbekräftelser rekommenderas om systemet används utanför strikt kontrollerad miljö.

Felsökning

Om diskarna inte listas eller systemet inte fungerar som förväntat, kontrollera följande:

  • Testa att surfa direkt till list_disks.php. Du ska se en JSON-lista.
  • Kontrollera filrättigheter i /var/www/html.
  • Kontrollera serverns fel-loggar, exempelvis /var/log/apache2/error.log.
  • Säkerställ att shred och lsof finns i /usr/bin/ och är exekverbara.
  • Bekräfta att sudoers-regeln är korrekt.
Skärmdump på skriptet i drift.

Avslutning

Med denna lösning får du ett enkelt och effektivt webbgränssnitt för att säkert förstöra hårddiskar med hjälp av shred. Rätt konfiguration av webbserver, PHP och sudo är avgörande för att systemet ska fungera säkert och pålitligt. Lösningen är avsedd för lokala miljöer och bör aldrig exponeras för internet utan ytterligare skyddsåtgärder.

Koden : https://www.linux.se/kod/DestroDisk.tar.bz2