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. |