SuSE Linux: Od verze 7.0
Distribuce SuSE Linux je stejně jako většina moderních distribucí založena na systému RPM, což umožňuje jednoduchou správu souborů patřících k jednotlivým balíčkům. Každý RPM balík může definovat, jaká přístupová práva budou mít soubory v něm obsažené. Tento mechanismus byl shledán jako ne zcela dostačující, a proto společnost SuSE resp. její vývojáři navrhli nový systém (resp. nadstavbu systému současného), který odlišuje několik úrovní zabezpečení a dokonce umožňuje systémovému administrátorovi nadefinovat další úrovně zabezpečení.
# # SuSEconfig can call chkstat to check permissions and ownerships for # files and directories (using /etc/permissions). # Setting to "set" will correct it, "warn" produces warnings, if # something strange is found. Disable this feature with "no". # CHECK_PERMISSIONS="set" # # SuSE Linux contains two different configurations for # chkstat. The differences can be found in /etc/permissions.secure # and /etc/permissions.easy. If you create your own configuration # (e.g. permissions.foo), you can enter the extension here as well. # # (easy/secure local foo whateveryouwant). # PERMISSION_SECURITY="easy local"Proměnná PERMISSION_SECURITY uvádí seznam úrovní zabezpečení, které se mají aplikovat na systém. O definici každé úrovně si můžeme něco přečíst níže v odstavci Bezpečnostní úrovně.
Druhá proměnná (CHECK_PERMISSIONS) definuje chování v případě, že skript kontrolující přístupová práva narazí na nějaké nesrovnalosti. Hodnotou zde může být set (skript nastaví správná přístupová práva), warn (skript pouze varuje) nebo cokoli jiného, čímž bude kontrola přístupovách práv úplně vypnuta.
chkstat
, který je volán ze skriptu SuSEconfig
:
... for PERMFILE in $PERMISSIONS_FILES ; do if test "$CHECK_PERMISSIONS" = "set" ; then /usr/bin/chkstat -set $PERMFILE elif test "$CHECK_PERMISSIONS" = "warn" ; then /usr/bin/chkstat $PERMFILE fi done ...Proměnná PERMISSIONS_FILES obsahuje seznam souborů z adresáře /etc/permissions.d/, z nichž každý obsahuje seznam souborů a uživatelských práv (včetně vlastníka a skupiny). Příkladem může být soubor /etc/permissions.d/postfix, který obsahuje pouze jediný řádek:
/usr/sbin/sendmail root.root 0555Program
sendmail
tedy podle autora balíčku má mít následující přístupová práva:
-r-xr-xr-x 1 root root 91201 Aug 6 08:18 /usr/sbin/sendmailPokud systémový administrátor nastavil proměnnou
CHECK_PERMISSIONS
na hodnotu set
, bude při každém spuštění skriptu SuSEconfig
nastavení těchto přístupových práv obnoveno:
... Executing /sbin/conf.d/SuSEconfig.xfntscl2... Executing /sbin/conf.d/SuSEconfig.ypclient... Processing index files of all manpages... Checking permissions and ownerships - using /etc/permissions.d/postfix... setting /usr/sbin/sendmail to root.root 0555. Finished.Pokud nastavil tuto proměnnou pouze na hodnotu
warn
, bude administrátor na případnou změnu přístupových práv pouze upozorněn:
... Executing /sbin/conf.d/SuSEconfig.xfntscl2... Executing /sbin/conf.d/SuSEconfig.ypclient... Creating /usr/share/info/dir... Processing index files of all manpages... Checking permissions and ownerships - using /etc/permissions.d/postfix... /usr/sbin/sendmail should be root.root 0555. Finished.
Bezpečnostní úroveň easy je vhodné použít především tam, kde na bezpečnosti příliš nezáleží, kdy počítač např. není připojen do sítě. Tato úroveň poskytuje pouze základní ochranu a je poměrně benevolentní. Např. mají všichni uživatelé povolený zápis na disketu apod.
Úroveň secure je určena pro systémy, kde záleží na bezpečnosti a administrátor systému dodržuje politiku "zakaž vše a teprve potom povol, co je nutné". V této bezpečnostní úrovni je výrazně omezen počet programů, které mají nastaven suid bit. Např. program zgv, který slouží k prohlížení obrázků pod knihovnou svgalib, tento bit nebude mít nastaven.
Paranoikům je určena bezpečnostní úroveň paranoid, jejíž definice je obsažena v souboru /etc/permissions.paranoid. Pokud systémový administrátor nastaví tuto bezpečnostní úroveň, nevěří nikomu. Jenom uživatelé ve skupině xok budou moci spustit X Window System apod.
Administrátor si navíc může samozřejmě nadefinovat další bezpečnostní úrovně jednoduchým vytvořením definice této úrovně (viz /etc/permissions.local).
V příští části se budeme věnovat tzv. hardening skriptu harden_suse
. Pokud se chcete dozvědět, co to je, vraťte se k nám na další díl tohoto seriálu.