Vynucení politiky hesel a soubor login.conf


Systémy jsou bezpečné jak jsou bezpečné jejich hesla. Je možné používat pro přihlašování kombinaci hesla a klíče, používat jednorázová hesla (OTP), ale základ bude vždy na úrovni alespoň základní síly klíčových hesel.
Pokud vyvstala potřeba vynutit technickými prostředky politiku hesel, je nutné začít ovlivněním chování při přihlašování. V souboru /etc/login.conf změnit nebo přidat tyto řádky:
:passwd_format=blf:\
:passwordtime=90d:\
:mixpasswordcase=true:\
:minpasswordlen=8:\

První řádek změní typ používaného hashovacího algoritmu na Blowfish, druhý nastaví maximální dobu životnosti hesla na 90 dní a třetí vyžaduje použití kombinace malých a velkých písmen. Nastavení je zde více, ale uvedené změny by měly znamenat základ. Po tomto nastavení je nutné spustit příkaz, synchronizující databázi a její textovou podobu. Až poté bude tato část politiky vynucena.
cap_mkdb /etc/login.conf

Další částí je vynucení pravidel při změnách hesel. Příkaz passwd využívá databázi /etc/pam.d/passwd, kde jsou uvedeny moduly používané při zadávání nového hesla:
password requisite pam_passwdqc.so min=disabled,16,12,10,8 max=64 enforce=everyone
password required pam_unix.so no_warn try_first_pass nullok

První modul zajišťuje kontrolu hesla na požadovanou sílu. V tomto případě v závislosti na použití jedné, dvou, tří nebo čtyř sad znaků (míní se tím malá a velká písmena, čísla a speciální znaky) se používá heslo o minimální velikosti 16-12-10-8 znaků a maximální velikosti 64 znaků.


Promněnné souboru /etc/login.conf

Název Typ Popis
Omezení zdrojů
cputime time CPU usage limit.
filesize size Maximální velikost souboru.
datasize size Maximální velikost datového prostoru.
stacksize size Maximální velikost zásobníku.
vmemoryuse size Maximální velikost VM na proces.
coredumpsize size Maximální velikost coredump.
memoryuse size Maximální velikost použité paměti.
Memorylocked size Maximální velikost zamčené paměti.
maxproc number Maximální počet procesů.
openfiles number Maximální počet otevřených souborů.
sbsize size Maximální povolená velikost vyrovnávací paměti pro socket.
Prostředí
charset string Nastaví proměnnou prostředí $MM_CHARSET na požadovanou hodnotu.
hushlogin bool (false) To samé jako soubor ~/.hushlogin (soubor .husthlogin v domovském adresáři).
ftpchroot bool (false) Omezení přístupu FTP na adresář HOME.
ignorenologin bool (false) Přihlášení nebude zablokováno souborem nologin.
label string Standardní MAC policy.
lang string Nastaví proměnnou prostředí $LANG na požadovanou hodnotu.
manpath path Standardní cesta pro MAN.
nocheckmail bool (false) Zobrazí stav mailboxu po přihlášení.
nologin file Pokud tento soubor existuje, zobrazí se jeho obsah a uživatel bude automaticky odhlášen.
path path (/bin /usr/bin) Standardní cesty.
priority number Standardní priority procesů (nice level).
requirehome bool (false) Pro přihlášení vyžaduje existující domovský adresář.
setenv list Nastavení proměnných prostředí a jejich hodnot, oddělených středníkem.
shell prog Použití definovaného shellu, má přednost před shellem uvedeným v passwd souboru, ale proměnná SHELL bude mít hodnotu, kterou z passwd souboru převezme.
term string Standardní typ terminálu, pokud není nastaveno nebo není možné identifikovat.
timezone string Standardní hodnota proměnné timezone $TZ.
umask number (022) Standardní umask. Měla by mít vždy na začátku 0 (vyžadováno, aby došlo k reprezentaci v oktalové soustavě).
welcome file (/etc/motd) Soubor obsahující vstupní zprávu.
Autentizace
minpasswordlen number (6) Minimální délka hesla.
passwd_format string (md5) Formát šifrování hesla. Je možné použít md5″(MD5), „des“(DES-56) a „blf“(BlowFish). NIS klienti používající jiné než FreeBSD NIS servery by patrně meli používat „des“.
mixpasswordcase bool (true) Vyžaduje mixování malých a velkých písmen v heslech.
copyright file soubor obsahující další copyright informace
login_prompt string Login prompt, který zobrazí login
login-backoff number 3 Počet pokusů o přihlášení, než bude použita prodleva mezi každý další pokus. Prodleva je definována jako login-backoff násobený 5 vteřinami
login-retries number 10 Počet pokusů o přihlášení, než dojde k přerušení spojení.
passwd_prompt string Password prompt, který zobrazí login.
host.allow list Seznam vzdálených strojů, ze kterých je možné se přihlásit.
host.deny list Seznam vzdálených strojů, ze kterých je zablokovaný přístup.
times.allow list Seznam časových intervalů, kdy je možné se přihlásit.
times.deny list Seznam časových intervalů, kdy je zablokovaný přístup.
ttys.allow list Seznam tty a ttygroups, ze kterých je možné se přihlásit.
ttys.deny list Seznam tty a ttygroups, ze kterých je zablokovaný přístup.
warnexpire time Varování před vypršením platnosti účtu.
warnpassword time Varování před vypršením platnosti hesla.
Účtování
accounted bool (false) Povolí účtování pro tuto skupinu uživatelů.
autodelete time Za jak dlouho po expiraci bude ucet automaticky smazán.
bootfull bool (false) Enable „boot only if ttygroup is full“ strategy when terminating sessions.
daytime time Maximální doba přihlášení v průběhu dne.
expireperiod time Čas pro expiraci alokace.
graceexpire time Časová rezerva pro účty, u nichž vypršela platnost.
gracetime time Časová rezerva pro přihlášení.
host.accounted list Seznam strojů, ze kterých budou účtovány spojení.
host.exempt list Seznam strojů, ze kterých nebudou účtovány spojení.
idletime time Maximální doba nečinnosti před automatickým odhlášením.
monthtime time Maximální čas aktivity za měsíc.
passwordtime time Použito passwd(1) pro nastavení dalšího termínu expirace hesla.
refreshtime time Nová hodnota času pro zjištění limitů účtu.
refreshperiod time Jak často bude zjišťovány limity pro účet.
sessiontime time Maximální délka spojení.
sessionlimit number Maximální počet konkurenčních spojení.
ttys.accounted list Seznam terminálů, na které budou spojení účtována.
ttys.exempt list Seznam terminálů, na které nebudou spojení účtována.
warntime time Varování před vypršením času spojení.
weektime time Maximální čas aktivity v průběhu týdne.

, , ,