GNU/Linux >> Znalost Linux >  >> Linux

Nejbezpečnější způsob rozdělení linuxu?

Mějte prosím na paměti Nejsvětější Trojici informační bezpečnosti:C (důvěrnost), I (bezúhonnost) a A (dostupnost). Takže když mluvíme o zpevnění konfigurace, musíte vzít v úvahu technologii, se kterou pracujete, informace, které jsou chráněny, jak jsou informace používány v rámci organizace a hrozby. Na základě těchto odpovědí a možná i dalších můžete začít určovat, kteří z nájemců jsou nejdůležitější a na co se zaměřit.

Na úrovni souborového systému vás obvykle nejvíce zajímá integrita a dostupnost. S důvěrností informací by se pravděpodobně mělo zacházet na jiné vrstvě, ale způsob, jakým umístíte naše souborové systémy a jak je používáte, by měl zajistit, že informace budou důvěryhodné a budou vždy k dispozici, když jsou potřeba.

Jedna věc, kterou je třeba mít na paměti při rozvržení oddílů, jsou režimy selhání. Obvykle je tato otázka ve tvaru:„Co se stane, když oddíl x plní?"

Co se stane, když je váš oddíl s operačním systémem plný? Když /, někdy se stávají zvláštní věci vyplňuje. Někdy se systém zasekne. Někdy nemůže dojít k žádným novým relacím přihlášení. Někdy se systém odmítne spustit.

Ze všech režimů selhání je tento nejtěžší přesně charakterizovat, protože jeho symptomy se s největší pravděpodobností změní na základě OS, verze jádra, konfigurace atd. Některé souborové systémy, zejména ext řádek, si rezervují určité množství místa, když souborový systém je vytvořen. Toto vyhrazené místo může používat pouze uživatel root a je určeno k tomu, aby správce systému mohl nadále pracovat a uklízet prostor.

Co se stane, když je váš oddíl s protokoly plný? Ztratíte data auditu/přehledů a útočníci je někdy používají ke skrytí své aktivity. V některých případech váš systém neověří nové uživatele, pokud nemůže zaznamenat jejich událost přihlášení.

Co se stane v systému založeném na RPM, když /var je plný? Správce balíčků nenainstaluje ani neaktualizuje balíčky a v závislosti na vaší konfiguraci může dojít k tichému selhání.

Zaplnit oddíl je snadné, zvláště když je uživatel schopen do něj zapisovat. Pro zábavu spusťte tento příkaz a uvidíte, jak rychle můžete vytvořit docela velký soubor:cat /dev/zero > zerofile .

Přesahuje to také zaplňování oddílů, když umístíte umístění na různé přípojné body, můžete také přizpůsobit jejich možnosti připojení.

Co se stane, když /dev/ není připojen s noexec ? Od /dev se obvykle předpokládá, že je spravován operačním systémem a obsahuje pouze zařízení, která byla často (a někdy stále je) používána ke skrytí škodlivých programů. Opouštíme noexec umožňuje spouštět binární soubory, které jsou v něm uložené.

Ze všech těchto a dalších důvodů bude mnoho příruček zpevnění diskutovat o rozdělení disku jako o jednom z prvních kroků, které je třeba provést. Ve skutečnosti, pokud stavíte nový server, je rozdělení disku téměř přesně první věc, kterou máte rozhodnout a často nejobtížněji později změnit. Existuje skupina nazvaná Centrum pro internetovou bezpečnost, která produkuje spousty snadno čitelných konfiguračních příruček. Pravděpodobně můžete najít průvodce pro váš konkrétní operační systém a zobrazit všechna specifika, která mohou říci.

Pokud se podíváme na RedHat Enterprise Linux 6, doporučené schéma rozdělení je toto:

# Mount point           Mount options
/tmp                    nodev,nosuid,noexec
/var                    
/var/tmp                bind (/tmp)
/var/log
/var/log/audit
/home                   nodev
/dev/shm                nodev,nosuid,noexec

Principem všech těchto změn je zabránit jejich vzájemnému ovlivňování a/nebo omezit to, co lze dělat na konkrétním oddílu. Použijte možnosti pro /tmp například. To říká, že tam nelze vytvořit žádné uzly zařízení, nelze odtud spouštět žádné programy a bit set-uid nelze na nic nastavit. Ve své podstatě /tmp je téměř vždy světově zapisovatelný a často jde o speciální typ souborového systému, který existuje pouze v paměti. To znamená, že útočník by jej mohl použít jako snadný přechodový bod k vypuštění a spuštění škodlivého kódu, poté zhroucení (nebo jednoduše restartování) systému vymaže všechny důkazy. Od funkčnosti /tmp nevyžaduje žádnou z těchto funkcí, můžeme tyto funkce snadno deaktivovat a této situaci předejít.

Úložiště protokolu, /var/log a /var/log/audit jsou vyřezány, aby je pomohly ochránit před vyčerpáním zdrojů. Kromě toho může auditd provádět některé speciální věci (obvykle v prostředích s vyšším zabezpečením), když se jeho úložiště protokolů začne zaplňovat. Umístěním na jeho oddíl tato detekce prostředků funguje lépe.

Chcete-li být podrobnější, uveďte mount(8) , přesně toto jsou výše použité možnosti:

noexec Nepovolujte přímé spouštění jakýchkoli binárních souborů na připojeném systému souborů. (Až donedávna bylo možné spouštět binární soubory pomocí příkazu jako /lib/ld*.so/mnt/binary. Tento trik selhává od Linuxu 2.4.25 / 2.6.0.)

nodev Neinterpretujte znaky ani neblokujte speciální zařízení v systému souborů.

nosuid Nedovolte, aby bity set-user-identifier nebo set-group-identifier nabyly účinnosti. (To se zdá být bezpečné, ale ve skutečnosti je to spíše nebezpečné, pokud máte nainstalovaný suidperl(1).)

Z hlediska zabezpečení jsou to velmi dobré možnosti, které byste měli znát, protože vám umožní umístit ochranu na samotný souborový systém. Ve vysoce zabezpečeném prostředí můžete dokonce přidat noexec možnost na /home . Vašemu standardnímu uživateli to ztíží psaní skriptů shellu pro zpracování dat, řekněme analyzování souborů protokolu, ale také jim to zabrání ve spuštění binárního souboru, který zvýší oprávnění.

Také mějte na paměti, že výchozí domovský adresář uživatele root je /root . To znamená, že bude v / souborový systém, ne v /home .

Přesná částka, kterou dáte každému oddílu, se může značně lišit v závislosti na zatížení systému. Typický server, který jsem spravoval, bude zřídka vyžadovat interakci s osobou a jako takový /home oddíl nemusí být vůbec velký. Totéž platí pro /var protože má tendenci ukládat spíše pomíjivá data, která se často vytvářejí a mažou. Webový server však obvykle používá /var/www jako jeho hřiště, což znamená, že buď musí být na samostatném oddílu, nebo /var/ musí být velké.

V minulosti jsem jako výchozí doporučoval následující.

# Mount Point       Min Size (MB)    Max Size (MB)
/                   4000             8000
/home               1000             4000
/tmp                1000             2000
/var                2000             4000
swap                1000             2000
/var/log/audit       250

Ty je třeba zkontrolovat a upravit podle účelu systému a podle toho, jak vaše prostředí funguje. Dále bych doporučil použít LVM a proti alokaci celého disku. To vám umožní snadno rozšiřovat nebo přidávat oddíly, pokud jsou takové věci vyžadovány.


Rozdělení na jeden nebo několik oddílů ve skutečnosti není problém bezpečnosti ale spolehlivost . Myšlenka je taková, že pokud dojde k havárii jednoho z vašich oddílů, ztratíte obsah toho oddíl, ale ostatní oddíly jsou v pořádku. Také pokud zaplníte tento oddíl, ostatní oddíly nebudou ovlivněny. Každý oddíl může mít svůj vlastní souborový systém a ne všechny typy souborových systémů jsou ekvivalentní s ohledem na výkon v různých kontextech (ačkoli většina souborových systémů bude ve většině kontextů většinou stejně dobrá jako ostatní). Na některých počítačích může mít spouštěcí proces problémy s přístupem dále než na několik prvních gigabajtů disku kvůli historickým zvláštnostem této architektury, které jsou příliš děsivé na to, abychom je zde připomínali; tedy /boot je často lepší nastavit jako samostatný oddíl omezené velikosti a umístěný jako první na disku.

Pokud chcete použít šifrování na úrovni oddílu, můžete se dostat do potíží, pokud zašifrujete příliš mnoho – konkrétně kód, který dešifruje, musí být umístěn mimo zmíněného oddílu. To hodně závisí na skutečném šifrovacím produktu (některé mohou dešifrovací kód vložit do bootloaderu).

Všimněte si, že čím více rozdělíte disk na oddíly, tím méně flexibilní bude celá věc. Když se oddíl zaplní, je plný a zůstane tak, i když jiné oddíly mají volné místo (LVM se s tím může vyrovnat, takže možná budete chtít říct „ano“, když se instalační program OS zeptá, zda chcete použít LVM) . Čím více oddílů vytvoříte, tím pravděpodobnější a těžší se tento problém stane.

Snadnou a bezpečnou cestou je nechat instalační program operačního systému vybrat oddíly tak, jak považuje za nejlepší. Nepokračujte ve změně velikosti oddílů, dokud nebudete mít přesné znalosti a zkušenosti o tom, co to obnáší. Nezapomeňte na pravidelné zálohování. Očekává se, že po několika měsících budete chtít přeinstalovat operační systém, abyste to "udělali správně", a to nemusí být nutně špatný nápad, takže se nemusíte zapotit. Toto je výukový nástroj, nikoli server, který půjde do výroby.


Díval bych se na to jinak než ostatní respondenti doposud:pokud se díváte na spoustu exploitů, pak jsou možné všechny hrozby a sandboxing systému tam, kde to děláte co nejvíce, se zdá jako užitečné opatření. Xen je jednoduchý způsob, jak toho dosáhnout. Může používat obrazy disku na jiném souborovém systému, ale pokud víte, že jej budete používat, doporučil bych ponechat samostatné diskové oddíly (a ujistěte se, že nejsou automaticky připojeny k vašemu Dom0).

Nevím, jak dobře Kali funguje jako Xen Dom0. Zdá se, že Ubuntu má alespoň problémy. Můžete zvážit ponechání místa pro XenServer nebo jiné specializované sestavení Xen Dom0. [Edit:Nejsem si jistý, jaké jsou dnes netbooky, ale hádám, že XenServer se na ně ve skutečnosti nezaměřuje... Možná nějaká jiná jednodušší distribuce, která dobře funguje s Xenem jako Dom0. Možná budete moci nastavit instalaci Kali, která běží buď samostatně, nebo jako DomU, pokud je prohlížení exploitů méně častým úkolem.]

Na systémech BSD jsem slyšel o metodách zpevnění zahrnujících rozdělování, aby se připojilo co nejvíce jen pro čtení, a použití neměnných příznaků. Předpokládal bych, že existují alespoň některé linuxové systémy, kde je podobné nastavení možné, ale vypadá to, že Kali je založeno na Debianu a mám pocit, že to na Debianu ve skutečnosti nemůžete [edit:pokud nepřipojíte zapisovatelný FS přes to, což by bylo stále nepohodlné udržovat v průběhu času]. V žádném případě bych to nedoporučoval pro stroj pro všeobecné použití a uvedl bych to pouze v případě, že se obecněji zajímáte o všechny způsoby použití dělení. Pro svůj účel umístěte hrozby do systému, který můžete snadno odstranit a znovu vytvořit.


Linux
  1. Linux – co dělat, když linuxová plocha zamrzne?

  2. Nejúčinnější způsob kopírování souboru v Linuxu

  3. Jaký je správný způsob instalace jdk na linux

  1. Jak zjistím, jaký je můj nejpoužívanější linuxový příkaz?

  2. Jaký je nejlehčí způsob renderování grafiky Gentoo?

  3. Jaká je doporučená velikost pro Linux /boot oddíl?

  1. Co je uživatel Linuxu?

  2. Linux – nejlehčí způsob vykreslování grafiky Gentoo?

  3. Nejlepší způsob, jak zakázat swap v Linuxu