Pozdravljeni ponovno! Jutri se začne pouk v novi tečajni skupini
V prejšnji vadnici smo vam povedali, kako uporabljati pam_cracklib
narediti gesla v sistemih bolj zapletena pam_pwquality
zamenjano cracklib
kot pam
privzeti modul za preverjanje gesel. Modul pam_pwquality
podprt tudi v Ubuntuju in CentOS-u ter mnogih drugih operacijskih sistemih. Ta modul olajša ustvarjanje politik gesel, s katerimi zagotovite, da uporabniki sprejmejo vaše standarde glede moči gesla.
Dolgo časa je bil običajen pristop k geslom prisiliti uporabnika k uporabi velikih, malih črk, številk ali drugih simbolov. Ta osnovna pravila za zapletenost gesel so bila v zadnjih desetih letih široko promovirana. Bilo je veliko razprav o tem, ali je to dobra praksa ali ne. Glavni argument proti postavljanju tako zapletenih pogojev je bil, da si uporabniki gesla zapisujejo na liste papirja in jih nevarno hranijo.
Druga politika, ki je bila pred kratkim postavljena pod vprašaj, sili uporabnike v menjavo gesel vsakih x dni. Nekaj študij je pokazalo, da je to tudi škodljivo za varnost.
Na temo teh razprav je bilo napisanih veliko člankov, ki utemeljujejo eno ali drugo stališče. Vendar v tem članku ne bomo razpravljali o tem. Ta članek bo govoril o tem, kako pravilno nastaviti zapletenost gesla, namesto o upravljanju varnostne politike.
Nastavitve pravilnika o geslu
Spodaj boste videli možnosti politike gesel in kratek opis vsake. Veliko jih je podobnih parametrom v modulu cracklib
. Ta pristop olajša prenos vaših pravilnikov iz podedovanega sistema.
- difok – Število znakov v vašem novem geslu, ki NE smejo biti v vašem starem geslu. (Privzeto 5)
- minlen – Najmanjša dolžina gesla. (Privzeto 9)
- ucredit – Največje število kreditov za uporabo velikih črk (če je parameter > 0) ali najmanjše zahtevano število velikih črk (če je parameter < 0). Privzeto je 1.
- lkredit — Največje število kreditov za uporabo malih črk (če je parameter > 0) ali najmanjše zahtevano število malih črk (če je parameter < 0). Privzeto je 1.
- dcredit — Največje število kreditov za uporabo števk (če je parameter > 0) ali najmanjše zahtevano število števk (če je parameter < 0). Privzeto je 1.
- ocredit — Največje število kreditov za uporabo drugih simbolov (če je parameter > 0) ali najmanjše zahtevano število drugih simbolov (če je parameter < 0). Privzeto je 1.
- minclass – Nastavi število zahtevanih razredov. Razredi vključujejo zgornje parametre (velike črke, male črke, številke, druge znake). Privzeto je 0.
- maxrepeat – Največje število ponovitev znaka v geslu. Privzeto je 0.
- maxclassrepeat — Največje število zaporednih znakov v enem razredu. Privzeto je 0.
- gecoscheck – Preveri, ali geslo vsebuje besede iz uporabnikovih nizov GECOS. (Podatki o uporabniku, tj. pravo ime, lokacija itd.) Privzeta vrednost je 0 (izklopljeno).
- dictpath – Pojdimo na slovarje cracklib.
- grde besede – Besede, ločene s presledki, ki so prepovedane v geslih (ime podjetja, beseda »geslo« itd.).
Če se koncept posojil sliši nenavadno, je v redu, to je normalno. O tem bomo več govorili v naslednjih razdelkih.
Konfiguracija pravilnika o geslu
Preden začnete urejati konfiguracijske datoteke, je dobro, da vnaprej zapišete osnovno politiko gesel. Na primer, uporabili bomo naslednja težavnostna pravila:
- Geslo mora imeti najmanj 15 znakov.
- Isti znak se v geslu ne sme ponoviti več kot dvakrat.
- Razredi znakov se lahko v geslu ponovijo do štirikrat.
- Geslo mora vsebovati znake iz vsakega razreda.
- Novo geslo mora imeti 5 novih znakov v primerjavi s starim.
- Omogoči preverjanje GECOS.
- Prepovedati besede "geslo, prehod, beseda, putorius"
Zdaj, ko smo določili pravilnik, lahko uredimo datoteko /etc/security/pwquality.conf
povečati zahteve glede zapletenosti gesel. Spodaj je primer datoteke s komentarji za boljše razumevanje.
# Make sure 5 characters in new password are new compared to old password
difok = 5
# Set the minimum length acceptable for new passwords
minlen = 15
# Require at least 2 digits
dcredit = -2
# Require at least 2 upper case letters
ucredit = -2
# Require at least 2 lower case letters
lcredit = -2
# Require at least 2 special characters (non-alphanumeric)
ocredit = -2
# Require a character from every class (upper, lower, digit, other)
minclass = 4
# Only allow each character to be repeated twice, avoid things like LLL
maxrepeat = 2
# Only allow a class to be repeated 4 times
maxclassrepeat = 4
# Check user information (Real name, etc) to ensure it is not used in password
gecoscheck = 1
# Leave default dictionary path
dictpath =
# Forbid the following words in passwords
badwords = password pass word putorius
Kot ste morda opazili, so nekateri parametri v naši datoteki odvečni. Na primer, parameter minclass
je odveč, saj že uporabljamo vsaj dva znaka iz razreda, ki uporablja polja [u,l,d,o]credit
. Tudi naš seznam besed, ki jih ni mogoče uporabiti, je odvečen, saj smo prepovedali ponavljanje katerega koli razreda 4-krat (vse besede na našem seznamu so napisane z malimi črkami). Te možnosti sem vključil samo zato, da pokažem, kako jih uporabiti za konfiguracijo pravilnika o geslu.
Ko ustvarite svojo politiko, lahko uporabnike prisilite, da spremenijo svoja gesla, ko se naslednjič prijavijo.
Druga čudna stvar, ki ste jo morda opazili, je, da polja [u,l,d,o]credit
vsebujejo negativno število. To je zato, ker bodo številke, večje ali enake 0, dale zasluge za uporabo znaka v vašem geslu. Če polje vsebuje negativno število, to pomeni, da je potrebna določena količina.
Kaj so posojila?
Imenujem jih posojila, ker tako čim bolj natančno izražajo njihov namen. Če je vrednost parametra večja od 0, dolžini gesla dodate število "kreditov znakov", ki je enako "x". Na primer, če so vsi parametri (u,l,d,o)credit
nastavljeno na 1 in zahtevana dolžina gesla je bila 6, potem boste potrebovali 6 znakov, da boste izpolnili zahtevo po dolžini, ker vam bo vsaka velika, mala črka, številka ali drug znak prinesel en kredit.
Če namestite dcredit
pri 2 bi teoretično lahko uporabili geslo, ki je dolgo 9 znakov, in bi dobili 2 znaka kredita za številke, potem pa bi lahko bila dolžina gesla že 10.
Poglej ta primer. Dolžino gesla sem nastavil na 13, dcredit na 2 in vse ostalo na 0.
$ pwscore
Thisistwelve
Password quality check failed:
The password is shorter than 13 characters
$ pwscore
Th1sistwelve
18
Moje prvo preverjanje ni uspelo, ker je bilo geslo krajše od 13 znakov. Naslednjič sem spremenil črko "I" v številko "1" in prejel dva kredita za številke, zaradi česar je bilo geslo enako 13.
Testiranje gesel
Paket libpwquality
zagotavlja funkcionalnost, opisano v članku. Priložen je tudi program pwscore
, ki je namenjen preverjanju kompleksnosti gesel. Uporabili smo ga zgoraj za preverjanje posojil.
Uporabnost pwscore
bere iz
Ocena kakovosti gesla je povezana s parametrom minlen
v konfiguracijski datoteki. Na splošno se rezultat, manjši od 50, šteje za "običajno geslo", rezultat nad njim pa za "močno geslo". Vsako geslo, ki prestane preverjanje kakovosti (zlasti prisilno preverjanje cracklib
) mora prenesti napade iz slovarja in geslo z oceno nad 50 z nastavitvijo minlen
tudi privzeto brute force
napadi.
Zaključek
prilagoditev pwquality
– je enostavno in preprosto v primerjavi z neprijetnostmi uporabe cracklib
z neposrednim urejanjem datotek pam
. V tem priročniku smo pokrili vse, kar boste potrebovali pri nastavitvi pravilnikov o geslih v sistemih Red Hat 7, CentOS 7 in celo Ubuntu. Pogovarjali smo se tudi o pojmu posojila, o katerem se redko podrobneje piše, zato je ta tema pogosto ostala nejasna tistim, ki se z njo še niso srečali.
Vir:
Koristne povezave:
Vir: www.habr.com