Praktisk Guide: Hardening af Fedora Workstation
Fedora Workstation er en af de mest moderne og teknisk fremskudte Linux-distributioner til daglig brug. Den leveres med en lang række sikkerhedsmekanismer aktiveret som standard – men der er stadig meget, man kan gøre for at strramme sikkerheden yderligere og reducere angrebsfladen (Attack Surface) markant.
Hardening af en workstation er anderledes end hardening af en server. Her handler det ikke kun om åbne porte og fjernforbindelser, men også om fysisk adgang, USB-angreb, uautoriseret boot og brugerens egne browsing- og applikationsvaner.
Denne artikel gennemgår de vigtigste hardening-trin for en Fedora Workstation.
1. Hold Systemet Opdateret
Det fundamentale første skridt er at sikre, at kernen, alle pakker og firmware er fuldt opdateret. Kendte sårbarheder (CVE’er) er lavthængende frugter for angribere.
sudo dnf upgrade --refresh
Aktivér automatiske sikkerhedsopdateringer med dnf-automatic:
sudo dnf install dnf-automatic -y
Åbn konfigurationsfilen og sæt opdateringstypen til kun sikkerhedsopdateringer:
sudo nano /etc/dnf/automatic.conf
Sæt:
upgrade_type = security
apply_updates = yes
Aktivér og start timeren:
sudo systemctl enable --now dnf-automatic.timer
2. SELinux – Fedoras Stærkeste Forsvarslinje
Security-Enhanced Linux (SELinux) er Fedoras kraftigste sikkerhedsmekanisme og er aktiveret som standard med “Enforcing” mode. SELinux implementerer Mandatory Access Control (MAC), som sætter strenge grænser for, hvad enhver proces – inklusive root-processer – må tilgå.
Tjek nuværende status:
sestatus
Forventet output:
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux mount point: /sys/fs/selinux
SELinuxfs mount: /sys/fs/selinux
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Vigtig regel: Slå ALDRIG SELinux fra. Det er fristende at skrive setenforce 0 eller sætte SELINUX=disabled i /etc/selinux/config, når noget ikke virker. Det er en meget dårlig idé. Løs i stedet problemet korrekt:
Hvis en applikation bliver blokeret, brug audit2allow til at analysere og oprette en custom policy:
sudo ausearch -m avc -ts recent | audit2allow -M min_policy
sudo semodule -i min_policy.pp
Kontrollér at SELinux-tilstanden er enforcing i konfigurationsfilen:
cat /etc/selinux/config | grep SELINUX=
Den skal vise SELINUX=enforcing.
3. Firewall med firewalld
Fedora bruger firewalld med zonebaseret administration. Som standard er alle indgående forbindelser blokeret på en ny installation, undtagen mDNS og DHCP. Det er en solid baseline.
Tjek status:
sudo firewall-cmd --state
sudo firewall-cmd --list-all
Best practice: Sørg for at din aktive zone bruger “default deny” for indgående trafik:
# Sæt standard ind-politik til REJECT (ikke DROP - REJECT er mere transparent)
sudo firewall-cmd --permanent --set-target=REJECT
sudo firewall-cmd --reload
Hvis du har behov for specifik trafik (f.eks. SSH til lokal LAN), tillad det eksplicit:
# Tillad kun SSH fra det lokale netværk (192.168.1.0/24)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept'
sudo firewall-cmd --reload
Deaktivér services du ikke bruger:
# Se hvad der er åbent som standard
sudo firewall-cmd --list-services
# Fjern f.eks. mDNS hvis du ikke bruger det
sudo firewall-cmd --permanent --remove-service=mdns
sudo firewall-cmd --reload
4. Disk Kryptering med LUKS
Fuld diskkryptering er afgørende for en workstation, da fysisk adgang ellers omgår alle software-baserede sikkerhedsforanstaltninger. Fedora tilbyder under installation at aktivere LUKS2 (Linux Unified Key Setup) kryptering.
Tjek om dine diske er krypterede:
lsblk -o NAME,TYPE,MOUNTPOINT,FSTYPE
Kig efter typen crypt – det indikerer en LUKS-krypteret partition.
Styrk krypterings-parametrene (for eksisterende LUKS-volumes):
# Tjek nuværende LUKS-konfiguration
sudo cryptsetup luksDump /dev/sda3
# Skift til en stærkere KDF (Key Derivation Function) - Argon2id
sudo cryptsetup luksConvertKey /dev/sda3 --pbkdf argon2id
Tilføj TPM2-baseret auto-unlock med PIN (for ekstra bekvemmelighed uden at ofre sikkerhed):
sudo dnf install clevis clevis-luks clevis-dracut -y
sudo clevis luks bind -d /dev/sda3 tpm2 '{"pcr_bank":"sha256","pcr_ids":"7"}'
Dette låser disken op med TPM2-chippen, men kun hvis boot-sekvensen ikke er blevet manipuleret (Secure Boot og PCR-registre er intakte).
5. Secure Boot og Firmware Beskyttelse
Fedora understøtter Secure Boot fuldt ud med Microsoft-signerede shim-bootloader og Fedoras egne underskrevne kernel-moduler. Secure Boot sikrer, at kun signeret software kan boote systemet.
Tjek om Secure Boot er aktiveret:
mokutil --sb-state
Forventer output: SecureBoot enabled.
Aktivér det i UEFI/BIOS-indstillingerne, hvis det ikke er slået til.
Firmware opdateringer via fwupd:
Fedora bruger fwupd til firmware-opdateringer direkte fra Linux:
sudo fwupdmgr refresh
sudo fwupdmgr update
Dette opdaterer firmware for CPU, NVMe, NIC og andre komponenter, og lukker firmware-niveau sårbarheder (som Spectre/Meltdown-varianter der kræver microcode-opdateringer).
6. USBGuard – Forsvar mod USB-angreb
BadUSB-angreb er en reel trussel: En angriber indsætter en modificeret USB-enhed, der emulerer et tastatur og eksekverer kommandoer med det samme. USBGuard løser dette ved at implementere en hvidliste for USB-enheder.
Installation:
sudo dnf install usbguard usbguard-notifier -y
Opret en initial politik baseret på aktuelt tilsluttede enheder (kør dette mens alle dine egne USB-enheder er tilsluttet):
sudo usbguard generate-policy > /tmp/usbguard-rules.conf
sudo install -m 0600 /tmp/usbguard-rules.conf /etc/usbguard/rules.conf
Aktivér og start tjenesten:
sudo systemctl enable --now usbguard.service
sudo systemctl enable --now usbguard-notifier.service
Fra nu af vil nye USB-enheder automatisk blive blokeret, medmindre de eksplicit tilføjes til hvidlisten. Du kan administrere enheder med:
# Se aktuelt blokerede enheder
sudo usbguard list-devices
# Tillad en enhed permanent
sudo usbguard allow-device --permanent <device-id>
7. Hardening af sudo og Privilegieeskalering
At begrænse og logge sudo-brug er essentielt, specielt hvis du er den eneste bruger, men systemet er tilgængeligt for andre fysisk.
Konfigurér sudo med tidsbegrænsning:
sudo visudo
Tilføj følgende for at kræve password-bekræftelse ved hver sudo-brug (fjerner caching):
Defaults timestamp_timeout=0
Eller sæt en kortere timeout (f.eks. 5 minutter):
Defaults timestamp_timeout=5
Aktivér sudo-logning:
Defaults log_output
Defaults!/usr/bin/sudoreplay !log_output
Defaults logfile=/var/log/sudo.log
Begræns su-kommandoen til kun at være tilgængelig for brugere i wheel-gruppen:
sudo nano /etc/pam.d/su
Fjern kommentarmarkøren fra linjen:
auth required pam_wheel.so use_uid
8. Privatlivsindstillinger og GNOME Hærdning
Fedoras standard desktopanmiljø GNOME indeholder adskillige indstillinger, der er relevante for sikkerhed og privatliv.
Slå automatisk skærmlås til:
gsettings set org.gnome.desktop.session idle-delay 300
gsettings set org.gnome.desktop.screensaver lock-enabled true
gsettings set org.gnome.desktop.screensaver lock-delay 0
Deaktivér USB-lading og datadeling ved låst skærm:
GNOME respekterer Fedoras underliggende kontroller, men du kan sætte yderligere sikkerhedspolitikker via dconf:
# Kræv password ved genopvågning fra dvaletilstand
gsettings set org.gnome.desktop.screensaver ubuntu-lock-on-suspend true
Deaktivér telemetri og fejlindberetning til Red Hat (valgfrit, privatlivesorienteret):
sudo systemctl disable --now abrtd.service
sudo systemctl disable --now abrt-ccpp.service
sudo systemctl disable --now abrt-oops.service
sudo systemctl disable --now abrt-xorg.service
9. Netværkssikkerhed: DNS over HTTPS og VPN
Aktiver DNS-over-HTTPS (DoH) for at kryptere dine DNS-forespørgsler:
Fedora bruger systemd-resolved. Konfigurér det med en sikker DNS-udbyder:
sudo nano /etc/systemd/resolved.conf
Tilføj:
[Resolve]
DNS=1.1.1.1#cloudflare-dns.com 9.9.9.9#dns.quad9.net
DNSOverTLS=yes
DNSSEC=yes
Genstart tjenesten:
sudo systemctl restart systemd-resolved
Verificér:
resolvectl status
10. Kernel Hardening med sysctl
Linux-kernelen kan hærdes markant ved at justere dens runtime-parametre via sysctl. Fedora har allerede en del indstillet, men der er mere at hente.
Opret en hærdningsfil:
sudo nano /etc/sysctl.d/99-hardening.conf
Tilføj følgende parametre:
# Beskyt mod IP-spoofing
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Deaktivér ICMP-redirects (kan bruges til MITM)
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
# Deaktivér IP-source-routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
# Beskyt mod SYN-flood
net.ipv4.tcp_syncookies = 1
# Begræns adgang til kernel logs (dmesg) for uprivilegerede brugere
kernel.dmesg_restrict = 1
# Forhindre at uprivilegerede processer kan se andre processers info via /proc
kernel.unprivileged_userns_clone = 0
# Deaktivér kerne-dumps for SUID-programmer
fs.suid_dumpable = 0
# Beskyt mod ptrace-misbrug (debugging af fremmede processer)
kernel.yama.ptrace_scope = 2
Anvend ændringerne:
sudo sysctl --system
11. Flatpak og Sandboxing af Applikationer
Fedora Workstation benytter i stigende grad Flatpak til applikationsdistribution. Flatpak-applikationer kører i en sandbox, der begrænser adgang til systemressourcer.
Konfigurér Flatpak-tilladelser med Flatseal (GUI-værktøj):
flatpak install flathub com.github.tchx84.Flatseal -y
Gennemgå og stram tilladelser for installerede applikationer. Eksempler på tilladelser du bør fjerne, medmindre de er nødvendige:
--filesystem=host(adgang til hele filsystemet)--socket=session-bus(adgang til D-Bus, kan bruges til privilege escalation)--device=all(adgang til alle hardware-enheder)
Vis tilladelser for en specifik applikation:
flatpak info --show-permissions org.mozilla.firefox
Konklusion
Fedora Workstation er allerede et af de mere sikkert konfigurerede Linux-systemer ud af kassen, takket være SELinux, firewalld og regelmæssige opdateringer. Men med de trin, der er beskrevet i denne artikel – fra LUKS-diskkryptering og Secure Boot til USBGuard og kernel-hærdning – kan du reducere angrebsfladen markant og beskytte dig mod både fjernangribere og fysiske trusler.
Husk: Sikkerhed er en kontinuerlig proces. Hold systemet opdateret, gennemgå dine politikker regelmæssigt, og brug sudo lynis audit system til løbende at vurdere din sikkerhedsbaseline.
Kilder
- Fedora Security Guide - Fedoras officielle sikkerhedsdokumentation for systemadministratorer.
- CIS Fedora Linux Benchmark - Center for Internet Security’s hærduingsstandard for Fedora.
- SELinux Project - Den officielle SELinux-ressource med guides, politikdokumentation og FAQ.
- USBGuard Documentation - Officiel dokumentation for USBGuard-projektet.
- NIST SP 800-123 - NIST guide til generel server- og workstation-sikkerhed.
- Linux Kernel sysctl Documentation - Officiel kernel.org dokumentation for sysctl-parametre.
> Quiz: Test din viden
1. Hvilken Linux-sikkerhedsmekanisme implementerer Mandatory Access Control (MAC) på Fedora?
2. Hvad er formålet med USBGuard på en Fedora Workstation?
3. Hvad hedder den diskkrypteringsteknologi som Fedora benytter til fuld diskkryptering?
4. Hvilken kommando bruges til at opgradere alle pakker på Fedora med DNF?