In wachtwurdbelied oanmeitsje yn Linux

Nochris goeie! Moarn begjinne de lessen yn de nije kursusgroep "Linux behearder", yn dit ferbân publisearje wy in nuttich artikel oer it ûnderwerp.

In wachtwurdbelied oanmeitsje yn Linux

Yn 'e foarige tutorial hawwe wy jo ferteld hoe't jo kinne brûke pam_cracklibom wachtwurden op systemen komplekser te meitsjen Red Hat 6 of CentOS. Yn Red Hat 7 pam_pwquality ferfongen cracklib lykas pam standert module foar kontrolearjen wachtwurden. Module pam_pwquality ek stipe op Ubuntu en CentOS, lykas ek in protte oare OS's. Dizze module makket it maklik om wachtwurdbelied te meitsjen om te soargjen dat brûkers jo noarmen foar wachtwurdsterkte akseptearje.

Foar in lange tiid wie de mienskiplike oanpak fan wachtwurden om de brûker te twingen om haadletters, lytse letters, sifers of oare symboalen te brûken. Dizze basisregels foar kompleksiteit fan wachtwurden binne de ôfrûne tsien jier breed befoardere. Der is in soad diskusje west oer de fraach oft dit in goede praktyk is of net. It wichtichste argumint tsjin it ynstellen fan sokke komplekse betingsten wie dat brûkers wachtwurden op stikjes papier skriuwe en ûnfeilich opslaan.

In oar belied dat koartlyn yn fraach steld is twingt brûkers om har wachtwurden elke x dagen te feroarjen. Der binne wat stúdzjes west dy't sjen litte dat dit ek skealik is foar feiligens.

In protte artikels binne skreaun oer it ûnderwerp fan dizze diskusjes, dy't it iene of oare stânpunt ûnderbouwe. Mar dit is net wat wy sille beprate yn dit artikel. Dit artikel sil prate oer hoe't jo de kompleksiteit fan it wachtwurd korrekt kinne ynstelle ynstee fan it befeiligingsbelied te behearjen.

Wachtwurdbelied ynstellings

Hjirûnder sille jo de opsjes foar wachtwurdbelied sjen en in koarte beskriuwing fan elk. In protte fan harren binne fergelykber mei de parameters yn 'e module cracklib. Dizze oanpak makket it makliker om jo belied te portearjen fan it legacy-systeem.

  • It spyt my - It oantal tekens yn jo nije wachtwurd dat NET yn jo âlde wachtwurd moat wêze. (Standert 5)
  • minlen - Minimum wachtwurd lingte. (Standert 9)
  • ucredit - It maksimum oantal credits foar it brûken fan haadletters (as parameter > 0), of it minimum fereaske oantal haadletters (as parameter < 0). Standert is 1.
  • lkredyt - It maksimum oantal credits foar it brûken fan lytse letters (as parameter > 0), of it minimum fereaske oantal lytse letters (as parameter < 0). Standert is 1.
  • dcredit - It maksimum oantal credits foar it brûken fan sifers (as parameter > 0), of it minimum fereaske oantal sifers (as parameter < 0). Standert is 1.
  • hy leaut - It maksimum oantal credits foar it brûken fan oare symboalen (as parameter> 0), of it minimum fereaske oantal oare symboalen (as parameter <0). Standert is 1.
  • minclass - Stelt it oantal fereaske klassen yn. Klassen befetsje de boppesteande parameters (haadletters, lytse letters, sifers, oare tekens). Standert is 0.
  • maxrepeat - It maksimum oantal kearen dat in karakter kin wurde werhelle yn in wachtwurd. Standert is 0.
  • maxclassrepeat - It maksimum oantal opienfolgjende tekens yn ien klasse. Standert is 0.
  • gecoscheck – Kontrolearret oft it wachtwurd wurden befettet út de GECOS-strings fan de brûker. (Brûkerynformaasje, d.w.s. echte namme, lokaasje, ensfh.) Standert is 0 (út).
  • diktpaad - Litte wy nei cracklib-wurdboeken gean.
  • badwords - Spaasje-skieden wurden dy't ferbean binne yn wachtwurden (bedriuwsnamme, it wurd "wachtwurd", ensfh.).

As it konsept fan lieningen frjemd klinkt, is it goed, it is normaal. Wy sille mear oer dit prate yn 'e folgjende seksjes.

Wachtwurdbelied konfiguraasje

Foardat jo begjinne mei it bewurkjen fan konfiguraasjebestannen, is it in goede praktyk om fan tefoaren in basiswachtwurdbelied op te skriuwen. Wy sille bygelyks de folgjende swierrichheidsregels brûke:

  • It wachtwurd moat in minimum lingte fan 15 tekens hawwe.
  • Itselde karakter moat net mear as twa kear werhelle wurde yn it wachtwurd.
  • Karakterklassen kinne oant fjouwer kear werhelle wurde yn in wachtwurd.
  • It wachtwurd moat karakters fan elke klasse befetsje.
  • It nije wachtwurd moat 5 nije tekens hawwe yn ferliking mei it âlde.
  • GECOS-kontrôle ynskeakelje.
  • Ferbiede de wurden "wachtwurd, pas, wurd, putorius"

No't wy it belied ynsteld hawwe, kinne wy ​​it bestân bewurkje /etc/security/pwquality.confte fergrutsjen wachtwurd kompleksiteit easken. Hjirûnder is in foarbyldbestân mei opmerkings foar better begryp.

# 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

Lykas jo miskien hawwe opfallen, binne guon parameters yn ús bestân oerstallich. Bygelyks, de parameter minclass is oerstallich, om't wy al op syn minst twa karakters fan 'e klasse brûke dy't fjilden brûke [u,l,d,o]credit. Us list mei wurden dy't net brûkt wurde kinne is ek oerstallich, om't wy elke klasse 4 kear werhelje hawwe ferbean (alle wurden yn ús list binne skreaun yn lytse letters). Ik haw dizze opsjes allinich opnommen om te demonstrearjen hoe't jo se brûke om jo wachtwurdbelied te konfigurearjen.
Sadree't jo jo belied oanmakke hawwe, kinne jo brûkers twinge om har wachtwurden te feroarjen de folgjende kear as se ynlogge. systeem.

In oar nuver ding dat jo miskien hawwe opfallen is dat de fjilden [u,l,d,o]credit befetsje in negatyf getal. Dit komt omdat nûmers grutter as of gelyk oan 0 sil jaan kredyt foar it brûken fan it karakter yn jo wachtwurd. As it fjild in negatyf getal befettet, betsjut dit dat in bepaalde kwantiteit fereaske is.

Wat binne lieningen?

Ik neam se lieningen om't dat har doel sa krekt mooglik oerbringe. As de parameter wearde is grutter as 0, Jo foegje in oantal "karakter credits" lyk oan "x" oan it wachtwurd lingte. Bygelyks, as alle parameters (u,l,d,o)credit ynsteld op 1 en de fereaske wachtwurden lingte wie 6, dan sille jo nedich 6 tekens foar in foldwaan oan de lingte eask omdat eltse haadletter, lytse letters, sifer of oare karakter sil jaan dy ien credit.

As jo ​​ynstallearje dcredit by 2 kinne jo teoretysk in wachtwurd brûke dat 9 karakters lang is en 2 karaktercredits foar sifers krije, en dan koe de wachtwurdlingte al 10 wêze.

Sjoch nei dit foarbyld. Ik set de wachtwurdlingte op 13, set dcredit op 2, en al it oare op 0.

$ pwscore
 Thisistwelve
 Password quality check failed:
  The password is shorter than 13 characters

$ pwscore
 Th1sistwelve
 18

Myn earste kontrôle mislearre omdat it wachtwurd wie minder dan 13 tekens lang. De folgjende kear feroare ik de letter "I" nei it nûmer "1" en krige twa credits foar de sifers, wêrtroch it wachtwurd gelyk makke oan 13.

Wachtwurd testen

Pakket libpwquality jout de funksjonaliteit beskreaun yn it artikel. It komt ek mei in programma pwscore, dat is ûntworpen om de kompleksiteit fan wachtwurden te kontrolearjen. Wy brûkten it hjirboppe om lieningen te kontrolearjen.
Utility pwscore lêst fan stdin. Rin gewoan it hulpprogramma en skriuw jo wachtwurd, it sil in flater werjaan as in wearde fan 0 oant 100.

It wachtwurd kwaliteit skoare is besibbe oan de parameter minlen yn it konfiguraasjetriem. Yn 't algemien wurdt in skoare fan minder as 50 beskôge as in "normaal wachtwurd", en in skoare boppe it wurdt beskôge as in "sterk wachtwurd". Elk wachtwurd dat kwaliteitskontrôles trochgiet (benammen twongen ferifikaasje cracklib) moat wjerstean wurdboek oanfallen, en in wachtwurd mei in skoare boppe 50 mei de ynstelling minlen sels standert brute force oanfallen.

konklúzje

oanpassing pwquality - it is maklik en ienfâldich yn ferliking mei it ûngemak fan gebrûk cracklib mei direkte triem editing pam. Yn dizze hantlieding hawwe wy alles behannele wat jo nedich binne by it ynstellen fan wachtwurdbelied op Red Hat 7, CentOS 7, en sels Ubuntu-systemen. Wy hawwe ek praat oer it konsept fan lieningen, dat is selden skreaun yn detail, dus dit ûnderwerp bleau faak ûndúdlik foar dyjingen dy't net earder tsjinkaam.

Boarne:

pwquality man side
pam_pwquality man side
pwscore man side

Nuttige links:

Selektearje feilige wachtwurden - Bruce Schneier
Lorrie Faith Cranor besprekt har wachtwurdstúdzjes by CMU
De beruchte xkcd-cartoon oer Entropy

Boarne: www.habr.com

Add a comment