Bezpečné heslá
Heslo, ktoré nie je jednoduché uhádnuť je základ bezpečnosti. Ako
seba a ostatných donútiť zvoliť takéto heslo? V tom nám pomôže systém
PAM a modul pam-passwdqc
. Tento sa nachádza v balíčku
libpam-passwdqc
(Ubuntu, Debian). Po inštalácii je
potrebné nastaviť aby sa tento modul používal. Upravíme konfiguračný
súbor /etc/pam.d/common-password
(tento by mal byť
spoločný pre všetky programy, ktoré umožňujú meniť užívateľské
heslo):
# pôvodné nastavenie #password required pam_unix.so nullok obscure min=4 max=8 md5 # nové nastavenie password required pam_passwdqc.so min=disabled,16,12,8,6 max=256 password sufficient pam_unix.so use_authtok md5 password required pam_deny.so
Parameter min
pre minimálne požiadavky na heslo sme
nastavili nasledujúcim spôsobom (typy znakov sú veľké pismená, malé
písmená, číslice a ostatné znaky):
- disabled – zakázali sme heslá tvorené len jedným typom znakov (akejkoľvek dĺžky)
- 16 – minimálna dĺžka hesla pozostávajúceho z dvoch typov znakov
- 12 – je nastavenie dĺžky pre "passphrase" (modul náhodne vygeneruje vyhovojúcu "passphrase")
- 8 – dĺžka hesla pozostávajúceho z troch typov znakov
- 6 – dĺžka hesla pozostávajúceho zo štyroch typov znakov
Tento modul má veľa možností nastavenia a popísať ich je nad rámec
tohto článku, záujemcovia môžu nájsť podrobnú dokumentáciu v adresári
/usr/share/doc/libpam-passwdqc
.
Bezpečné heslá druhýkrát
Teraz keď máme bezpečné heslo, ako by sme ho mohli zabezpečiť ešte
viac? Heslá sú uložené v súbore /etc/shadow
(právo čítať
tento súbor má len root), ale samozrejme nie v textovej podobe –
je z nich vytvorený tzv. hash (nazývaný aj "one-way encryption" –
jednosmerné šifrovanie). To ako ťažké je prelomiť tento hash je
závislé od hashovacieho algoritmu, takže stačí nahradiť pôvodný
autentifikačný modul novým, ktorý používa lepší algoritmus. Tento
modul sa volá libpam-unix2
a podporuje algoritmus
Blowfish.
Pozor, nasledujúce úpravy by mali robiť len ľudia, ktorí vedia čo môžu pokaziť, alebo majú také isté distribučné nastavenia. Zakomentované sú pôvodné nastavenia a pod nimi nové.
/etc/pam.d/common-account
:#account required pam_unix.so account required pam_unix2.so
/etc/pam.d/common-auth
:#auth required pam_unix.so nullok_secure auth required pam_unix2.so nullok
/etc/pam.d/common-password
:#password required pam_unix.so nullok obscure min=4 max=8 md5 password required pam_unix2.so nullok obscure min=4 max=8 blowfish
/etc/pam.d/common-session
:#session required pam_unix.so session required pam_unix2.so
Teraz je ešte potrebné zmeniť si heslo, aby sa táto zmena naozaj prejavila. Žiaľ niektorý softvér ešte nemusí byť na takýto prechod pripravený (napr. XScreenSaver so slabšou podporou PAM) a môže byť výhodnejšie počkať kým túto zmenu spravia v samotnej distribúcii.
Bezpečné heslá tretíkrát
Teraz máme bezpečné heslo, heslo zabezpečené, čo môžeme ešte
spraviť? Pokiaľ nám na počítači bežia nejaké služby (napr. FTP), tak
k nim pravdepodobne chceme pristupovať. Obyčajne sa používa jediné
užívateľské heslo pre všetky tieto služby. Takže teraz si ukážeme ako
nám PAM a modul libpam-dotfile
môže pomôcť nastaviť si
iné heslá pre rôzne služby.
Keďže chceme mať iné heslo pre každú službu, musíme upraviť
nastavenie pre každú z nich zvlášť. Konfiguračný súbor sa volá podľa
služby pre ktorú je určený, napr. /etc/pam.d/vsftpd
pre
FTP server vsftpd
.
# pôvodné nastavenie pre jednotné heslo #auth required pam_unix.so nullok_secure # zmeníme takýmto spôsobom: auth sufficient pam_unix.so nullok_secure # a pridáme nastavenie pre pam-dotfile auth sufficient pam_dotfile.so use_first_pass no_warn auth required pam_deny.so
Teraz má každý užívateľ možnosť pridať si iné heslo na FTP týmto príkazom:
pam-dotfile-gen -a vsftpd
Takto je možné si pridať viacero hesiel, odstrániť ich je nutné
úpravou súboru v domovskom adresári (v našom prípade
~/.pam-vsftpd
).
Dočasné súbory
Spoločný adresár pre dočasné súbory (tradične /tmp
)
môže predstavovať riziko. Miesto spoliehania sa na dostatočné
ošetrenie v programoch je možné ich donútiť používať iný, zabezpečený
adresár. PAM modul libpam-tmpdir
nastaví premenné
prostredia TMP
a TMPDIR
, ktoré by mali
všetky programy rešpektovať.
Stačí pridať nastavenie do /etc/pam.d/common-auth
:
session optional pam_tmpdir.so
Odteraz sa bude používať po prihlásení špeciálny adresár, ku
ktorému má prístup výhradne jeho majiteľ. Miesto kde sa tento adresár
vytvára sa dá zmeniť v súbore /etc/security/tmpdir.conf
:
tmpdir=/cesta/ku/tmp/adresaru
forkbomb
Tento Denial
of Service (DoS) útok, ktorý sa rozoberal aj tu na fóre, spočíva v
zahltení tabuľky procesov, ktorá je limitovaná konštantným číslom v
jadre. Tomuto sa dá zamedziť nastavením limitu na počet procesov,
ktoré môže užívateľ spustiť. Toto nastavenie sa nachádza v
súbore /etc/security/limits.conf
:
# pre všetkých * - nproc 512 # pre člena skupiny @skupina - nproc 1024 # a root root - nproc 2048
Toto sú ilustračné hodnoty, v prípade potreby je možné nastaviť aj
oveľa väčšie hodnoty, no bežne je aj 512 viac než dosť. Na to aby sa
toto nastavenie uplatnilo je potrebné sa odhlásiť a znovu prihlásiť.
Ak by ani to nepomohlo, potom distribučné nastavenie nenačíta tieto
hodnoty a je potrebné skontrolovať či súbory login
či gdm
(alebo nastavenie pre iné programy vykonávajúce
login) v adresári /etc/pam.d/
obsahujú riadok ako:
session required pam_limits.so
Nabudúce
Nabudúce sa pozrieme ako sa dá zvýšiť bezpečnosť pri verejných službách a ukážeme si tiež ako nám môže hardware pomôcť proti zneužitiu chýb v programe.
Pre pridávanie komentárov sa musíte prihlásiť.