A Linux áttekintése
A Linux nyílt forráskódú, magánszféra-központú alternatíva asztali operációs rendszerként. Miközben a mainstream operációs rendszerekben egyre elterjedtebb a telemetria és más, magánszférát érintő technológia, az asztali Linux továbbra is egyértelmű választás azoknak, akik a számítógépük felett az alapoktól kezdve teljes ellenőrzést szeretnének.
Az oldalunkon a „Linux” kifejezés alatt általában asztali Linux-disztribúciókat értünk. Más, szintén Linux kernelt használó operációs rendszereket — például ChromeOS-t, Androidot és Qubes OS-t — ezen az oldalon nem tárgyalunk.
Biztonsági megjegyzések
A Linuxnak vannak fontos biztonsági korlátai, amelyekkel érdemes tisztában lenned. Ezek ellenére az asztali Linux-disztribúciók továbbra is kiválóak a legtöbb ember számára, aki:
- el szeretné kerülni a zárt operációs rendszerekre gyakran jellemző telemetriát;
- fontosnak tartja a szoftverszabadságot;
- magánszféra-központú rendszereket, például Whonixot vagy Tailst szeretne használni.
A nyílt forráskód biztonsága
Gyakori tévhit, hogy a Linux és más nyílt forráskódú szoftverek pusztán azért eredendően biztonságosak, mert a forráskódjuk hozzáférhető. Sokan feltételezik, hogy a közösség rendszeresen ellenőrzi a kódot, ez azonban nem mindig történik meg.
A disztribúciók tényleges biztonsága számos tényezőtől függ: a projekt aktivitásától, a fejlesztők tapasztalatától, a kódellenőrzések szigorúságától, illetve attól, milyen gyakran vizsgálják át a kódbázis egyes, akár éveken át érintetlen részeit.
Hiányzó biztonsági funkciók
Az asztali Linux jelenleg bizonyos biztonsági funkciók terén elmarad az olyan alternatíváktól, mint a macOS vagy Android. Reméljük, ezek a területek a jövőben fejlődnek.
-
A Linux verified boot megoldásai nem olyan robusztusak, mint az Apple Secure Boot vagy az Android Verified Boot rendszere. Az ellenőrzött rendszerindítás segít megelőzni a kártevők tartós beavatkozását és az evil maid támadásokat, de még a fejlettebb disztribúciókban is nagyrészt hiányos.
-
Az alkalmazások erős sandboxolása Linuxon továbbra is gyenge pont, még Flatpakhez hasonló konténeres alkalmazások vagy Firejail jellegű megoldások mellett is. A Flatpak jelenleg az egyik legígéretesebb linuxos sandbox-technológia, de több területen hiányos, és nem biztonságos alapértelmezések miatt sok alkalmazás könnyen megkerülheti a sandboxot.
A Linux emellett elmarad több olyan kihasználáscsökkentő védelem bevezetésében, amely más rendszereken már szabványos, például a Windows Arbitrary Code Guard vagy a macOS Hardened Runtime megoldása. Ráadásul a Linux-programok és maga a Linux nagy része memóriabiztonságot nem garantáló nyelveken készül. A memóriahibák adják a javított és CVE-azonosítóval ellátott sérülékenységek nagy részét. Ez Windowsra és macOS-re is igaz, de mindkét platform gyorsan halad memóriabiztos nyelvek — például Rust, illetve Swift — alkalmazása felé.
Disztribúció választása
Nem minden Linux-disztribúció egyforma. Linux-ajánló oldalunk nem kíván végleges választ adni arra, melyik disztribúciót kell használnod, de ajánlásaink az alábbi elvekhez igazodnak. Választáskor ezeket érdemes figyelembe venni.
Kiadási ciklus
Erősen javasoljuk azokat a disztribúciókat, amelyek közel maradnak a stabil upstream szoftverkiadásokhoz; ezeket gyakran rolling release rendszernek nevezik. A befagyasztott kiadási ciklusú disztribúciók ugyanis sokszor nem frissítik a csomagverziókat, ezért biztonsági frissítésekben is lemaradhatnak.
A Debianhoz hasonló befagyasztott disztribúciókban a csomagkarbantartók feladata, hogy a sérülékenységek javításait visszaportolják a meglévő verzióba, ahelyett hogy az upstream fejlesztő „következő verziójára” frissítenének. Egyes biztonsági javítások — főként kevésbé népszerű programoknál — egyáltalán nem kapnak CVE-azonosítót, ezért e modellben nem feltétlenül kerülnek be a disztribúcióba. Emiatt kisebb biztonsági javítások néha a következő nagy kiadásig késhetnek.
Nem tartjuk ideálisnak a csomagverziók visszatartását és ideiglenes foltok alkalmazását, mert ez eltérhet attól, ahogyan az eredeti fejlesztő a szoftver működését tervezte. Richard Brown előadása részletesebben foglalkozik ezzel:
Hagyományos és atomi frissítések
A hagyományos Linux-disztribúciók egymás után frissítik a kívánt csomagokat. A Fedora, Arch Linux vagy Debian-alapú rendszerek hagyományos frissítése kevésbé megbízható lehet, ha a folyamat közben hiba történik.
Az atomi frissítéseket használó disztribúciók ezzel szemben egy frissítést vagy teljes egészében alkalmaznak, vagy egyáltalán nem. Ha például áramkimaradás miatt hiba történik, a rendszer nem marad félig frissített állapotban.
Ez a modell nagyobb megbízhatóságot adhat, és olyan disztribúciók használják, mint a Silverblue és a NixOS. Adam Šamalík előadása bemutatja az rpm-ostree működését Silverblue alatt:
„Biztonságközpontú” disztribúciók
Gyakran összekeverik a „biztonságközpontú” és a „penetrációs tesztelésre” készült disztribúciókat. A „legbiztonságosabb Linux-disztribúció” keresésre sokszor Kali Linux, Black Arch vagy Parrot OS jelenik meg. Ezek támadó jellegű penetrációs tesztelő rendszerek, más rendszerek vizsgálatára szolgáló eszközökkel. Nem tartalmaznak automatikusan „extra biztonságot” vagy hétköznapi használatra szánt speciális védelmi intézkedéseket.
Arch-alapú disztribúciók
Az Archot és Arch-alapú rendszereket nem javasoljuk Linux-kezdőknek, mert rendszeres rendszerkarbantartást igényelnek. Az Arch nem rendelkezik olyan disztribúciós frissítési mechanizmussal, amely az alapul szolgáló technológiai választásokat automatikusan modernizálná. Neked kell követned az aktuális trendeket és bevezetned az új technológiákat, amikor azok a régebbi gyakorlatokat felváltják.
Biztonságos rendszerhez elegendő Linux-ismeretre is szükség van: például kötelező hozzáférés-vezérlés beállításához, kernelmodulok tiltólistázásához, rendszerindítási paraméterek keményítéséhez, sysctl-paraméterek kezeléséhez és olyan komponensek megfelelő használatához, mint a Polkit.
Az Arch User Repositoryt (AUR) használóknak képesnek kell lenniük a letöltött PKGBUILD-ek auditálására. Az AUR közösségi tartalom, amelyet nem ellenőriznek hivatalosan, ezért ki van téve szoftveres ellátásilánc-támadásoknak; ilyen már történt is.
Az AUR-t mindig takarékosan használd. Sok helyen nem megfelelő tanács olvasható, amely figyelmeztetés nélkül AUR helper használatára ösztönöz. Hasonló fenntartások vonatkoznak Debian-alapú rendszerek külső PPA-tárolóira és Fedora COPR közösségi projektjeire.
Ha tapasztalt Linux-felhasználó vagy és Arch-alapú rendszert szeretnél, általában a fő Arch Linuxot javasoljuk a származékai helyett.
Kifejezetten nem ajánljuk ezt a két Arch-származékot:
- Manjaro: Két hétig visszatartja a csomagokat annak ellenőrzésére, hogy saját módosításaik nem törnek-e el valamit; nem azért, hogy az upstream stabilitását ellenőrizzék. AUR-csomagok használatakor ezek gyakran az Arch legfrissebb könyvtárai ellen fordulnak.
- Garuda: A Chaotic-AUR rendszert használja, amely automatikusan és ellenőrzés nélkül fordít csomagokat az AUR-ból. Nincs folyamat annak biztosítására, hogy az AUR-csomagokat ne érintse ellátásilánc-támadás.
Linux-libre kernel és „Libre” disztribúciók
A Linux-libre kernel használatát nem javasoljuk, mert biztonsági védelmeket távolít el, és elnyom kernel-figyelmeztetéseket sérülékeny mikrokóddal kapcsolatban.
Kötelező hozzáférés-vezérlés
A kötelező hozzáférés-vezérlés (mandatory access control) olyan további biztonsági szabályok összessége, amelyek korlátozzák a rendszer részeit — például alkalmazásokat és rendszerszolgáltatásokat. Linuxon a két leggyakoribb megoldás a SELinux és az AppArmor. A Fedora és Tumbleweed alapértelmezetten SELinuxot használ, Tumbleweed telepítőjében AppArmor is választható.
A Fedora SELinux alapból korlátozza a Linux-konténereket, virtuális gépeket és szolgáltatásdémonokat. Az AppArmort a snap daemon használja a szigorú módú snapek — például Firefox — sandboxolására. A Fedora ConfinedUsers csoportja közösségi munkával további rendszerelemek korlátozásán dolgozik.
Általános ajánlások
Meghajtótitkosítás
A legtöbb Linux-disztribúció telepítője felajánlja a LUKS teljes lemeztitkosítást. Ha ezt telepítéskor nem kapcsolod be, később általában biztonsági mentésre és újratelepítésre lesz szükség, mert a titkosítás a particionálás után, de a fájlrendszer formázása előtt történik. A tárolóeszköz biztonságos törlését is javasoljuk:
Swap
Fontold meg a ZRAM használatát hagyományos swapfájl vagy -partíció helyett, hogy potenciálisan érzékeny memóriatartalom ne íródjon tartós tárolóra — és ez teljesítményelőnyt is adhat. Fedora-alapú disztribúciók alapból ZRAM-ot használnak.
Ha lemezre felfüggesztésre (hibernálásra) van szükséged, továbbra is hagyományos swapfájlt vagy -partíciót kell használnod. Tartós tárolón lévő swap esetén legalább titkosítsd, hogy bizonyos kockázatokat mérsékelj.
Zárt firmware és mikrokódfrissítések
Egyes Linux-disztribúciók — például Linux-libre-alapú vagy saját építésű rendszerek — nem tartalmazzák a kritikus sérülékenységeket javító zárt mikrokód-frissítéseket. Ilyen sérülékenység többek között a Spectre, Meltdown, SSB, Foreshadow, MDS, SWAPGS és más hardveres sebezhetőségek.
Kifejezetten javasoljuk a mikrokódfrissítések telepítését, mert olyan fontos CPU-biztonsági javításokat tartalmaznak, amelyek pusztán szoftveresen nem mindig kezelhetők megfelelően. Fedora és openSUSE alapértelmezetten telepíti ezeket.
Frissítések
A legtöbb Linux-disztribúció automatikusan telepít frissítéseket, vagy emlékeztet rájuk. Fontos naprakészen tartani az operációs rendszert, hogy a felfedezett sérülékenységek javításai időben bekerüljenek.
Egyes, főként haladó felhasználóknak szánt rendszerek — például Arch vagy Debian — minimalista megközelítést követnek, és több feladatot rád bíznak. Ilyenkor a „csomagkezelőt” (apt, pacman, dnf stb.) manuálisan kell futtatnod a fontos biztonsági frissítésekért.
Bizonyos disztribúciók firmware-frissítéseket sem töltenek le automatikusan. Ehhez telepítened kell az fwupd programot.
Jogosultságkezelés
A Wayland megjelenítési protokollt támogató asztali környezetek biztonságosabbak, mint a csak X11-et támogató megoldások. Általánosságban javasoljuk sandboxolt alkalmazások — például Flatpak — használatát. A Flatpak támogatja a security-context-v1 protokollt és a D-Bus protokollok szűrését, amelyek lehetővé teszik az alkalmazások megfelelő azonosítását és jogosultságokkal történő sandboxolását.1 Sandboxon kívüli alkalmazások ezzel szemben privilegizált műveleteket is végrehajthatnak, például képernyőt rögzíthetnek a portal jogosultságtár felülírásával vagy privilegizált Wayland-protokollok használatával.
Adatvédelmi finomhangolások
MAC-cím véletlenszerűsítése
Sok asztali Linux-disztribúció — például Fedora és openSUSE — NetworkManagert használ Ethernet- és Wi-Fi-kapcsolatok beállítására.
NetworkManagerrel véletlenszerűsíthető a MAC-cím. Ez valamelyest növeli a magánszférát Wi-Fi-hálózatokon, mert megnehezíti egy konkrét eszköz követését az adott hálózaton. Nem tesz anonimná.
Hozd létre a /etc/NetworkManager/conf.d/00-macrandomize.conf fájlt, és add hozzá:
[device]
wifi.scan-rand-mac-address=yes
[connection]
wifi.cloned-mac-address=random
ethernet.cloned-mac-address=random
Ezután indítsd újra a NetworkManagert:
systemctl restart NetworkManager
Opcionálisan a random kapcsolatparamétert stable értékre cserélheted. Így hálózatonként kapsz véletlenszerű MAC-címet, amely az adott hálózathoz később újracsatlakozva változatlan marad. A random minden kapcsolódáshoz új címet generál. Captive portalos vagy statikus DHCP-hozzárendelést használó hálózaton a stable kényelmesebb lehet, viszont egy többször meglátogatott hálózat üzemeltetője könnyebben azonosíthat.
systemd-networkd használatakor a MACAddressPolicy=random beállítással kapcsolhatod be az RFC 7844 (Anonymity Profiles for DHCP Clients) támogatását.
A MAC-cím véletlenszerűsítése főleg Wi-Fi-kapcsolatoknál hasznos. Etherneten alig vagy egyáltalán nem ad előnyt, mert a hálózati rendszergazda más módon — például a switch portjának vizsgálatával — könnyen azonosíthatja az eszközt. A Wi-Fi-s MAC-véletlenszerűsítéshez a Wi-Fi firmware támogatása is szükséges.
Egyéb azonosítók
Más rendszerazonosítókra is érdemes figyelned, ha ez része a fenyegetési modellednek:
- Gépnév (hostname): A rendszer gépneve megosztásra kerül azzal a hálózattal, amelyhez csatlakozol. Ne szerepeljen benne azonosításra alkalmas információ, például a neved vagy az operációs rendszer neve; használj általános kifejezést vagy véletlenszerű karakterláncot.
- Felhasználónév: A felhasználónevet a rendszer többféle helyen használja. A valódi neved helyett érdemes semleges nevet, például „user” kifejezést választani.
Rendszerszámlálás
A Fedora Project countme változóval számolja, hány egyedi rendszer éri el a tükörszervereit, egyedi azonosító használata helyett. Ezzel a terhelést méri, és szükség esetén jobb frissítési infrastruktúrát tud biztosítani.
Ez az opció jelenleg alapból ki van kapcsolva. Azt javasoljuk, hogy biztonság kedvéért add hozzá a countme=false sort az /etc/dnf/dnf.conf fájlhoz arra az esetre, ha később bekapcsolnák. Az rpm-ostree-t használó rendszereken — például Silverblue — a countme az rpm-ostree-countme időzítő maszkolásával tiltható.
Az openSUSE is egyedi azonosítót használ a rendszerek számlálására; ezt a /var/lib/zypp/AnonymousUniqueId fájl kiürítésével tilthatod le.
-
Ez megbízható módot ad a Wayland compositoroknak a kliens azonosítására; ez alapján biztonsági házirendek alkalmazhatók. https://github.com/flatpak/flatpak/commit/f0e626a4b60439f211f06d35df74b675a9ef42f4 ↩
A Magánszféra Kalauz a Privacy Guides nem hivatalos magyar változata. Tartalmi eltérés esetén az angol eredeti az irányadó. Eredeti Privacy Guides