Táto kapitola udáva možné prispôsobenia nastavení Linux slúžiace na zvýšenie úrovne zabezpečenia. Z veľkej časti sa jedná o nastavenia, ktoré priamo nesúvisia s D2000
Zabránenie úniku informácií cez súbory issue
Odporúčame zmeniť súbory „issue“ a „issue.net“ tak, aby neposkytovali žiadne relevantné údaje alebo aby poskytli zavádzajúce údaje. Zároveň odporúčame do týchto súborov zahrnúť informácie o autorizovanom používaní systému a možnom postihu pri neautorizovanom používaní systému. Príklad:
WARNING : Unauthorized access to this system is forbidden and will be
prosecuted by law. By accessing this system, you agree that your actions-
may be monitored if unauthorized usage is suspected.
Odstránenie adresárov a súborov, ktoré sú zapisovateľné všetkými používateľmi.
Odporúčame zmeniť prístupové práva na súboroch a adresároch, ktoré sú zapisovateľné všetkými používateľmi. Súbory zapisovateľné všetkými používateľmi je možné nájsť príkazom
find / -perm -2 -a -type f -eXec ls -ld {} ;
Odstránenie interaktívneho interpretera príkazov (shell) v súbore /etc/passwd zo systémových účtov. Pre väčšinu z nich nie je potrebné mať priradený interaktívny interpreter príkazov (shell). Tento shell môže byť zneužitý pri kompromitácii danej služby alebo aplikácie tak, že útočník bude mať prístup na tento shell s právami, s akými bola spustená daná služba. Odporúčame na tieto účty nastaviť shell /bin/false.
Príklad účtov: postgres a d2000
Poznámka: na serveroch, kde účet postgres slúži na spúštanie databázy PostgreSQL v rámci clusterware (Corosync/Pacemaker) a na detekciu behu databázy, je shell na tomto účte nevyhnutný.
Vytvorenie personalizovaných účtov
Odporúčame vytvorenie personalizovaných účtov pre všetkých užívateľov Linuxového servera (štandardne sa jedná iba o administrátorov, keďže D2000 užívatelia štandardne nepotrebujú priamy prístup na aplikačný server).
Poznámka: s týmto súvisia aj ďalšie dva body - zakázanie priameho prihlásenia užívateľa root.
Zakázanie priameho prihlásenia užívateľa root cez SSH (povoliť iba prístup z iných účtov cez sudo)
V súbore /etc/ssh/sshd_config nastaviť
PermitRootLogin = no
Poznámka: pred rekonfiguráciou je potrebné pridať vybraných administrátorov do skupiny wheel (usermod -aG wheel some_account) a overiť, že môžu vykonať sudo
Zakázanie priameho prihlásenia užívateľa root (zrušenie hesla)
V súbore /etc/shadow odporúčame nahradiť heslo užívateľa root hviezdičkou, ako je to pri iných užívateľoch (napr. bin)
Príklad riadku so zmeneným heslom:
root:*:19408:0:99999:7:::
Poznámka: pred rekonfiguráciou je potrebné pridať vybraných administrátorov do skupiny wheel (usermod -aG wheel some_account) a overiť, že môžu vykonať sudo
Zmena UMASK v /etc/login.defs na 027
Premenná UMASK určuje masku práv a teda aké prístupové práva budú mať novovytvorené súbory, pokiaľ tieto práva nie sú udané explicitne. Pri hodnote UMASK = 022 majú mimo iného všetci používatelia povolené právo čítania. Existuje riziko, že sa k citlivým informáciám dostane aj používateľ, ktorý k tomu nebol explicitne autorizovaný. Je to obzvlášť nebezpečné v prípade, keď takéto nastavenia pri vytváraní súborov používajú privilegovaní používatelia. V takom prípade existuje riziko, že lokálny útočník získa prístup k informáciám, ktoré mu umožnia zvyšovanie privilégií. Odporúčame nastaviť reštriktívnejšiu hodnotu UMASK 027.
Redukcia počtu SUID/SGID programov spustiteľných ľubovoľným používateľom
Odporúčame zredukovať množstvo takýchto programom na nevyhnutné minimum.
Príklad redukcie pre RedHat 9.1:
chmod a-st /usr/bin/chage
chmod a-st /usr/bin/gpasswd
chmod a-st /usr/bin/newgrp
chmod a-st /usr/bin/fusermount3
chmod a-st /usr/bin/pkexec
chmod a-st /usr/bin/crontab
chmod a-st /usr/bin/chfn
chmod a-st/usr/bin/at
chmod a-st /usr/bin/chsh
chmod a-st /usr/bin/fusermount
chmod a-st /usr/bin/ksu
chmod a-st /usr/libexec/sssd/ldap_child
chmod a-st /usr/libexec/sssd/proxy_child
chmod a-st /usr/libexec/sssd/selinux_child
chmod a-st /usr/libexec/cockpit-session
chmod a-st /usr/lib/polkit-1/polkit-agent-helper-1
chmod a-st /usr/sbin/userhelper
chmod a-st /usr/sbin/unix_chkpwd
chmod a-st /usr/bin/locate
chmod a-st /usr/libexec/openssh/ssh-keysign
Kontrola otvorených TCP a UDP portov a procesov, ktoré na nich počúvajú (príkazom netstat -46npl ) a následná redukcia nepotrebných. Napríklad na konkrétnom serveri boli vypnuté služby rpcbind.socket a rpcbind, ktoré boli predtým používané na pripojenie NFS subsystému.
Ďalšie odporúčania (zo sekcie Windows Hardening)
Pridať komentár