Hvordan kryptere full disk mens du installerer Ubuntu 22.04


Linux-distribusjoner har gjort en god jobb for å få ekstra beskyttelse ved å bringe full diskkryptering og være markedsleder.

Ubuntu er også buntet med en rekke funksjoner, og diskkryptering er en av dem. Aktivering av full diskkryptering er avgjørende for de som ønsker å sikre sine private data til enhver pris, selv om enheten din blir stjålet, da den krever at du oppgir passordet ved hver oppstart.

Full diskkryptering kan bare aktiveres mens du installerer operativsystemet, da full diskkrypteringen vil bli brukt på hver partisjon på stasjonen din, som også inkluderer oppstarts- og swap-partisjonen. Og dette er grunnen til at vi er pålagt å aktivere det fra begynnelsen av installasjonen.

Denne trinnvise opplæringen vil veilede deg om hvordan du kan aktivere full diskkryptering på Ubuntu 22.04, og for det formålet skal vi bruke LVM (Logical Volume Management) og LUKS (for krypteringsformål).

  • En oppstartbar USB-stasjon.
  • Internettforbindelse med nok båndbredde til å laste ned store filer.
  • UEFI-aktivert hovedkort.

Men før vi går til prosessen, la oss ha en kort ide om fordelene og ulempene med diskkryptering.

Hver funksjon er samlet med sine fordeler og ulemper, og dette gjelder også når det gjelder diskkryptering. Så det er alltid en god idé å vite hva du kan forvente og hva ikke fra trinnene som skal gjøres.

  • Beskytter de sensitive dataene dine mot tyveri – Ja, dette er den mest spennende funksjonen ved diskkryptering, siden dine private data alltid vil være sikret selv om systemet ditt blir stjålet. Dette punktet er mer passende for mobile enheter som bærbare datamaskiner som har større sjanse for å bli stjålet.
  • Lagre dataene dine fra overvåking – Sjansen for at systemet ditt blir hacket er minimalt på Linux, men kan gjøres hvis brukeren ikke er smart nok til å beskytte seg mot svindel. Selv om datamaskinen din er under angrep, vil ikke hackeren få tilgang til dataene dine, noe som er et annet bevis som gjør det mulig.

  • Påvirkning på ytelse – Dette kan bare brukes på systemer med få ressurser, siden den moderne datamaskinen kan håndtere krypteringen uten problemer, men du vil likevel finne litt lavere lese- og skrivehastigheter under bruk.

Ifølge oss er full diskkryptering alltid det kloke valget, da det byr på mange fordeler samtidig som det er lett å overvinne ulempene med noen flere ressurser. Så hvis du er ok med et lite ytelsesfall for bedre sikkerhet, la oss starte krypteringsprosessen.

Kryptering av hele disken i Ubuntu 22.04

Dette er en nybegynnervennlig guide, og den er ment å veilede deg gjennom hvert trinn, mens avanserte brukere fortsatt kan dra nytte av den.

Besøk den offisielle Ubuntu-nedlastingssiden og velg Ubuntu 22.04 LTS-versjonen, som automatisk begynner å laste den ned.

For å flashe Ubuntu ISO-bildet til USB-stasjonen, skal vi bruke Balena Etcher, som automatisk vil oppdage operativsystemet du bruker for øyeblikket. Når du er ferdig med å installere Balena Etcher, installer den på systemet ditt.

For å brenne ISO-filen, åpne balenaEtcher og velg «Flash fra fil»-alternativet og velg den nylig nedlastede Ubuntu 22.04 ISO-filen.

Deretter velger du stasjonen som vi vil flashe ISO-filen på. Velg alternativet \Velg mål og det vil vise alle de monterte stasjonene på systemet ditt. Velg USB- eller DVD-stasjonen fra de tilgjengelige alternativene.

Når vi har flashet USB-stasjonen vår, er det på tide å starte opp fra USB-stasjonen. For å starte opp fra USB, start systemet på nytt og bruk F10, F2, F12, F1 eller DEL mens systemet starter opp. Derfra må du velge USB som oppstartsstasjon.

Når vi har startet opp via USB, kan vi fortsette til partisjonerings- og krypteringsdelen. Dette kan overvelde noen nye brukere siden det kan se komplekst ut, men du må bare følge hvert trinn, og du vil få systemet ditt kryptert på kort tid.

MERK: Noen kommandoer er forskjellige for Nvme SSD-brukere, så les instruksjonene før du bruker kommandoen, da vi har skilt dem ved behov.

Når du starter opp i Ubuntu, får du to alternativer: Prøv Ubuntu og installer Ubuntu. Ettersom vi skal kryptere partisjoner, er vi pålagt å bruke et levende miljø. Så velg det første alternativet merket Prøv Ubuntu.

Klikk på Aktiviteter øverst til venstre og skriv inn søk etter Terminal. Trykk Enter på det første resultatet, og det vil åpne Terminal for oss. Deretter bytter du til root-brukeren, siden alle kommandoene vi skal bruke vil kreve administrative rettigheter.

$ sudo -i

Siden de kommende kommandoene i stor grad vil stole på BASH, la oss bytte fra standardskallet til BASH ved å bruke følgende kommando:

# bash

Deretter identifiserer du installasjonsmålet, vi må liste opp alle de monterte lagringsenhetene ved hjelp av følgende kommando:

# lsblk

Du kan enkelt identifisere målpartisjonen etter størrelse, og i de fleste tilfeller vil den bli navngitt som sda og vda. I mitt tilfelle er det sda med størrelsen 20 GB.

Denne delen gjelder bare for deg hvis du bruker HDD for SATA SSD-er. Så hvis du er noen utstyrt med Nvme SSD, er tildeling av variabelnavn forklart i trinnet nedenfor.

Siden målenheten min heter sda, er jeg pålagt å bruke følgende kommando:

# export DEV="/dev/sda"

Hvis du er noen som bruker Nvme, vil navneskjemaet for målenheten din være som /dev/nvme$ {CONTROLLER}n$ {NAMESPACE}p$ {PARTITION}, så hvis det bare er én partisjon, vil det har sannsynligvis et lignende navn som gitt kommando:

# export DEV="/dev/nvme0n1"

La oss nå konfigurere variabelen for den krypterte enhetskartleggingen med følgende kommando:

# export DM="${DEV##*/}"

Hver Nvme-enhet trenger 'p' i suffiks, så bruk gitte kommandoer for å legge til suffiks:

# export DEVP="${DEV}$( if [[ "$DEV" =~ "nvme" ]]; then echo "p"; fi )"
# export DM="${DM}$( if [[ "$DM" =~ "nvme" ]]; then echo "p"; fi )"

For å lage en ny GPT-partisjonstabell, skal vi bruke sgdidk-verktøyet med følgende kommando:

# sgdisk --print $DEV

Nå kan vi trygt fjerne alle tilgjengelige data, men hvis du installerer dette systemet sammen med eksisterende partisjoner, vennligst unngå dette trinnet.

For å formatere dataene, bruk følgende kommando:

# sgdisk --zap-all $DEV

Vi kommer til å tildele en 2MB-partisjon for BIOS-modus GRUBs kjernebilde, 768MB oppstartspartisjon og 128MB for EFI-filsystemet, og den gjenværende plassen vil bli tildelt brukeren hvor du kan lagre dine ønskede data.

Bruk de gitte kommandoene én etter én for å partisjonere stasjonen:

# sgdisk --new=1:0:+768M $DEV
# sgdisk --new=2:0:+2M $DEV
# sgdisk --new=3:0:+128M $DEV
# sgdisk --new=5:0:0 $DEV
# sgdisk --typecode=1:8301 --typecode=2:ef02 --typecode=3:ef00 --typecode=5:8301 $DEV

For å endre navnet på partisjoner, bruk de gitte kommandoene:

# sgdisk --change-name=1:/boot --change-name=2:GRUB --change-name=3:EFI-SP --change-name=5:rootfs $DEV
# sgdisk --hybrid 1:2:3 $DEV

For å liste opp nylig opprettede partisjoner, bruk følgende kommando:

# sgdisk --print $DEV

La oss starte krypteringsprosessen vår ved å kryptere oppstartspartisjonen. Du må skrive JA med store bokstaver når den ber om din tillatelse.

# cryptsetup luksFormat --type=luks1 ${DEV}1

La oss nå kryptere OS-partisjonen med følgende kommando:

# cryptsetup luksFormat --type=luks1 ${DEV}5

For videre installasjon må vi låse opp de krypterte partisjonene ved å bruke følgende kommandoer for å låse opp oppstarts- og OS-partisjonene.

# cryptsetup open ${DEV}1 LUKS_BOOT
# cryptsetup open ${DEV}5 ${DM}5_crypt

Dette trinnet gjelder bare hvis systemet ditt er utstyrt med Nvme SSD. Bruk følgende kommandoer for å kryptere oppstarts- og OS-partisjonene:

# cryptsetup luksFormat --type=luks1 ${DEVP}1
# cryptsetup luksFormat --type=luks1 ${DEVP}5

La oss nå låse opp de krypterte partisjonene, da det er nødvendig for oss å behandle videre i installasjonen.

# cryptsetup open ${DEVP}1 LUKS_BOOT
# cryptsetup open ${DEVP}5 ${DM}5_crypt

Dette er et av de mest avgjørende trinnene som om det ikke er gjort, vil installasjonsprogrammet deaktivere muligheten til å skrive filsystem. Bruk følgende kommando for å starte formateringen:

# mkfs.ext4 -L boot /dev/mapper/LUKS_BOOT

Hvis systemet ditt er utstyrt med HDD og SATA SSD, bruk følgende kommando for å formatere det i FAT16:

# mkfs.vfat -F 16 -n EFI-SP ${DEV}3

Så hvis systemet ditt bruker Nvme SSD, kan du enkelt formatere den tredje partisjonen ved å bruke følgende kommando:

# mkfs.vfat -F 16 -n EFI-SP ${DEVP}3

LVM er en av de funksjonene jeg beundrer mest. Selv om du ikke bruker LVM-funksjoner, vil aktivering av det ikke skade systemet ditt, og i fremtiden, hvis du trenger noen funksjoner som LVM tilbyr, kan du bruke dem uten problemer.

Her skal vi tildele 4 GB til swap-partisjonen som vil bruke diskplass når systemet går tom for minne. Vi tildeler også 80 % ledig plass til root slik at brukeren kan utnytte diskplassen maksimalt.

Selvfølgelig kan du endre det i henhold til dine brukstilfeller og til og med endre det i fremtiden. Bruk de gitte kommandoene én etter én, og systemet vil være LVM-klart på kort tid:

# pvcreate /dev/mapper/${DM}5_crypt
# vgcreate ubuntu--vg /dev/mapper/${DM}5_crypt
# lvcreate -L 4G -n swap_1 ubuntu—vg
# lvcreate -l 80%FREE -n root ubuntu--vg

Det er på tide å starte Ubuntu-installasjonsprogrammet. Bare minimer installasjonsprogrammet, så finner du installasjonsprogrammet på startskjermen.

Enten du går med normal installasjon eller minimal, er det opp til deg, men noen alternativer må velges for å gi deg en bedre opplevelse, og det er å installere oppdateringer og tredjeparts drivere og kodeker som helt sikkert vil forbedre brukeropplevelsen din og spare du tid etter installasjon.

I delen for installasjonstype, velg alternativet merket Noe annet som vil hjelpe oss å administrere partisjoner som vi nettopp har opprettet manuelt.

Her finner du flere partisjoner med samme navn. Du kan enkelt identifisere den originale siden installatøren vil nevne den tatt størrelse. La oss nå starte med LUKS_BOOT.

Velg LUKS_BOOT og klikk på endringsknappen.

Velg nå Ext4-journalfilsystemet i det første alternativet. Aktiver Formater partisjonsalternativet og velg /boot i monteringspunktet.

På samme måte velger du ubuntu–vg-root og klikker på endringsknappen. Her velger du Ext4 journalføringsfilsystemet i det første alternativet. Aktiver Formater partisjonsalternativet og i det siste velger du alternativet \/.

Velg nå ubuntu–vg-swap_1 og klikk på alternativknappen. Velg alternativet for bytteområde og det er det.

Fullfør endringene og velg din nåværende plassering.

Etter å ha opprettet brukeren, ikke klikk på installer nå-knappen, da vi skal bruke noen kommandoer like etter å ha opprettet en ny bruker. Opprett brukeren med et sterkt passord.

Rett etter at du har opprettet en bruker, åpne terminalen din og bruk de gitte kommandoene, da vi skal aktivere kryptering på GRUB før installasjonen starter:

# while [ ! -d /target/etc/default/grub.d ]; do sleep 1; done; echo "GRUB_ENABLE_CRYPTODISK=y" > /target/etc/default/grub.d/local.cfg

Når installasjonen er ferdig, klikk på fortsett testing, da vi skal til noen endringer som fortsatt krever at vi bruker en oppstartbar stasjon.

I denne delen skal vi montere stasjoner, installere nødvendige pakker og gjøre noen nødvendige endringer for å få kryptering til å fungere. Så åpne terminalen din og følg de angitte trinnene:

Chroot brukes til å få tilgang til partisjonene som vi nettopp har installert Ubuntu på. Bruk de gitte kommandoene, hvorav en involverer montering av stasjon og opprettelse av chroot-miljø.

# mount /dev/mapper/ubuntu----vg-root /target
# for n in proc sys dev etc/resolv.conf; do mount --rbind /$n /target/$n; done 
# chroot /target
# mount -a

Cryptsetup-pakken vil være ansvarlig for å låse opp krypterte filer ved oppstart, og vi kan enkelt installere den ved gitt kommando:

# apt install -y cryptsetup-initramfs

Nøkkelfilen vil bli brukt til å krysssjekke passordet for dekryptering og den lagres på /boot/ som også er en kryptert partisjon. Bruk den gitte kommandoen for å fortsette videre:

# echo "KEYFILE_PATTERN=/etc/luks/*.keyfile" >> /etc/cryptsetup-initramfs/conf-hook 
# echo "UMASK=0077" >> /etc/initramfs-tools/initramfs.conf 

Vi skal lage en nøkkelfil på 512 byte, gjøre den sikker, og også legge til krypterte volumer. Du kan oppnå det ved å bruke de gitte kommandoene:

# mkdir /etc/luks
# dd if=/dev/urandom of=/etc/luks/boot_os.keyfile bs=512 count=1
# chmod u=rx,go-rwx /etc/luks
# chmod u=r,go-rwx /etc/luks/boot_os.keyfile

Dette er ment å være et av de siste trinnene, siden vi er ganske nær ved å lykkes med å kryptere systemet vårt. Bruk følgende kommando for å legge til nøkler i filen boot_os.key.

# cryptsetup luksAddKey ${DEV}1 /etc/luks/boot_os.keyfile
# cryptsetup luksAddKey ${DEV}5 /etc/luks/boot_os.keyfile 

For å legge til nøkler til crypttab, bruk følgende kommando:

# echo "LUKS_BOOT UUID=$(blkid -s UUID -o value ${DEV}1) /etc/luks/boot_os.keyfile luks,discard" >> /etc/crypttab
# echo "${DM}5_crypt UUID=$(blkid -s UUID -o value ${DEV}5) /etc/luks/boot_os.keyfile luks,discard" >> /etc/crypttab

Hvis du bruker Nvme SSD, kan du bruke følgende kommando for å legge til nøkler på boot_os.file:

# cryptsetup luksAddKey ${DEVP}1 /etc/luks/boot_os.keyfile
# cryptsetup luksAddKey ${DEVP}5 /etc/luks/boot_os.keyfile 

På samme måte, for å legge til nøkler i crypttab, bruk følgende kommando:

# echo "LUKS_BOOT UUID=$(blkid -s UUID -o value ${DEVP}1) /etc/luks/boot_os.keyfile luks,discard" >> /etc/crypttab
# echo "${DM}5_crypt UUID=$(blkid -s UUID -o value ${DEVP}5) /etc/luks/boot_os.keyfile luks,discard" >> /etc/crypttab

La oss nå oppdatere initialramfs-filer, da det vil legge til opplåsingsskript og nøkkelfil med følgende kommando:

# update-initramfs -u -k all

Start nå systemet på nytt, og det vil få deg til GRUB-passord-frase-forespørselen for å starte opp systemet.

Hovedintensjonen bak denne veiledningen var å lage en enkel å følge prosedyre der selv nybegynnere kan sikre systemet sitt ved å aktivere full diskkryptering i Ubuntu.