Bezpečný "locate
"
Keď máme stroj s viacerými užívateľmi, je potrebné zabezpečiť aby
ich práva boli rešpektované. locate
je program, ktorý
dokáže za veľmi krátky čas vyhľadať súbor podľa názvu. Táto rýchlosť
je dosiahnutá tým, že miesto prehľadávania súborových systémov sa
hľadá len vo vygenerovanej databáze. Pôvodný program má ale jednu
chybu – ignoruje práva. Toto spôsobuje, že ktokoľvek môže
prehľadávať aj podstromy, ktoré by nemal vidieť (t.j. keď má adresár
execute bit nulový). Obyčajný locate
je tradične
súčasťou základnej inštalácie (balíček findutils
).
Bezpečná "secure locate" verzia podáva výsledky s ohľadom na práva.
Balíček slocate
nahradí vyhľadávací program
(locate
) a generátor databázy (updatedb
).
Po jeho nainštalovaní je potrebné spustiť updatedb
(s
právami roota) aby bola pôvodná databáza prepísaná.
NX bit
Užitočnou pomôckou k zvýšeniu bezpečnosti môže byť aj relatívna novinka v procesoroch – NX (No eXecute) bit. Týmto môžeme efektívne zabrániť zneužitiu najčastejších chýb v programoch ako je "buffer overflow". Tento bit nie je možné využiť na 32-bitových procesoroch bez jadra podporujúceho PAE, ani keď ho procesor podporuje. Na zapnutie podpory je potrebné pridať do nastavenia zavádzača (GRUB, LILO) nasledujúce parametre jadra:
noexec=on noexec32=on
Komplexnejším, ale zložitejším riešením obmedzenia práv programov je SELinux (Security Enhanced Linux).
Z podobného súdka je program execstack
, ktorý je
obyčajne distribuovaný v balíčku prelink
. Tento program
zakáže programu či knižnici spúšťanie kódu zo zásobníka:
execstack -c
Niektorým programom to nemuí robiť ale dobre, povoliť sa dá príkazom:
execstack -s
Zistiť nastavenie programu sa dá príkazom:
execstack -s
Tento program je dobrý najmä na zistenie či je program chránený bezpečnostným rozšírením jadra ExecShield.
root
root
je administrátorský účet a nemal by sa používať
na nič iné – žiadne X, žiadne IRC a tiež žiaden FTP ani SSH
účet. Toto nie je nejaký konkrétny tip, len treba byť opatrný.
Konkrétne je potrebné pre FTP server skontrolovať či konfiguračný
súbor /etc/ftpusers
obsahuje tento zákaz (pozor,
nastavenie FTP môže byť aj úplne opačné a tento súbor potom obsahuje
účty, ktoré majú povolený FTP login). OpenSSH server vyžaduje
nastavenie v konfiguračnom súbore
/etc/ssh/sshd_config
:
PermitRootLogin no
Pokiaľ túto voľbu neobsahuje, je prihlásenie povolené.
SSH 2
SSH je bezpečné. Presnejšie, komunikačný protokol SSH verzie 2 je
bezpečný. A preto je sa treba uistiť, že konfiguračný súbor
/etc/ssh/sshd_config
obsahuje nasledujúce nastavenie:
Protocol 2
Rozumne nové verzie distribúcií by mali toto nastavenie obsahovať a nemalo by byť potrebné nič meniť (pokiaľ tak nie je, treba si dať veľký pozor tiež na východzie nastavenie iných služieb).
Bezpečnejšie FTP
Bezpečnejšie môžeme dosiahnuť správnou voľbou serveru, potrebujeme
taký, ktorý viac dbá o bezpečnosť než o počet funkcií. Tento výber
teda zúžime na Pure-FTPd a vsftpd
. Potom stačí zvoliť
jeden, nainštalovať ho a nastaviť aby užívatelia videli iba svoj
domovský adresár. Toto je dosiahnuté systémovým volaním
chroot
, ktoré spôsobí, že sa užívateľ dostane do
predstieraného prosredia, v ktorom '/' sa "presunie" na nejaký adresár
(v tomto prípade domovský adresár užívateľa) a nie je možné vidieť nič
čo je nad ním. A teraz sa pozrime ako to nastaviť.
Pure-FTPd má toto nastavenie v súbore
/etc/pure-ftpd/conf/ChrootEveryone
(ak neexistuje, je
potrebné ho vytvoriť), ktorý musí obsahovať hodnotu
yes
.
Pre vsftpd
sa to nastaví pridaním alebo upravením
nastavenia v súbore /etc/vsftpd.conf
:
chroot_local_user=YES
Pravidelná zmena hesla
Zmena hesla po určitom čase môže veľmi prospieť bezpečnosti, pokiaľ
nie sú nasadené príliš prísne pravidlá pre heslá a príliš často sa
nevynucuje zmena. Vypršanie hesla je možné nastaviť v súbore
/etc/login.defs
. Obyčajne obsahuje túto hodnotu:
PASS_MAX_DAYS 99999
To je dostatočná doba aby nikto nepotreboval meniť heslo, takže to zmeníme:
PASS_MAX_DAYS 180
To je približne pol roka čo nie je príliš otravné. Pokiaľ užívateľ toto heslo nezmení, účet je zablokovaný. Aby užívateľ vedel, že onedlho vyprší heslo, nastavíme, aby bol upozorňovaný už týždeň vopred:
PASS_WARN_AGE 7
BIOS a bootloader
Občas sa zabúda na fyzický prístup k počítaču, kedy človek aj napriek rôznym zabezpečeniam (s výnimkou šifrovania) dokáže pristupovať ku všetkým dátam z iného operačného systému. Preto netreba zabudnúť nastaviť boot výhradne z disku a heslo do BIOS-u. V neposlednom rade je potrebné nastaviť heslo pre príkazový riadok v GRUB-e či zaheslovať iné operačné systémy.
Pre vyššiu bezpečnosť si necháme vypočítať z hesla hash, v čom nám
pomôže program grub-md5-crypt
. Potom stačí pridať voľbu
s vygenerovaným hashom do /boot/grub/menu.lst
:
password --md5 hash
Pokiaľ sú v GRUB-e voľby, ktoré chceme zaheslovať je potrebné za
ich názov (title) pridať príkaz lock
.
V prípade bootloaderu LILO je situácia jednoduchšia, stačí pridať
do /etc/lilo.conf
voľbu password=heslo
, ale
aby nikto nemal možnosť si ho prečítať, nastavíme práva len
rootovi:
chmod 600 /etc/lilo.conf
Pokiaľ sa má voľba vzťahovať iba k jednému jadru, musí byť
password
pod voľbou image
. A posledná
možnosť je, keď chceme boot bez hesla, ale zákaz úpravy parametrov,
pod password
pridáme ešte restricted
.
Po zmene nastavení je potrebné zavolať lilo
, aby svoje
nastavenia aktualizoval.
"bastille
"
A na záver odporučím ešte program bastille
, ktorý
dokáže interaktívne zabezpečiť systém pričom vysvetľuje každú možnosť
na ktorú sa pýta. Je to užitočná pomôcka, ktorá za zlomok času dokáže
nastaviť systém podľa aktuálnych požiadaviek.
Záver
Toto je posledná časť seriálu o bezpečnostných tipoch.
Začiatočníkom som sa pokúsil ukázať niektoré z nástrah a ich príčiny,
skúsenejší snáď spoznali alebo si pripomenuli niektoré postupy a
nastavenia. Systémy typu Unix sú známe svojou bezpečnosťou, no
netreba zabúdať, že tá často nestojí len na jeho architektúre, ale že
platí aj pravidlo, že systém je len tak bezpečný, akého má
administrátora a najnebezpečnejší je falošný pocit bezpečia. Toto
zďaleka nie je všetko čo sa dá o bezpečnosti naučiť, ale bežný skúsený
používateľ s tým celkom môže vystačiť. Nakoniec už len poradím, na čo
by sa mal orientovať niekto s hlbším záujmom o tému – SELinux, IDS
(Intrusion Detection Systems; napr. Snort), chrootkit
a
podobne, cestu k nim si už isto nájdu sami.
Pre pridávanie komentárov sa musíte prihlásiť.