Skapande av lösenordspolicyer i Linux

Hej igen! Redan imorgon börjar lektionerna i den nya gruppen kurset «Linuxadministratör», dÀrför publicerar vi en anvÀndbar artikel i Àmnet.

Skapande av lösenordspolicyer i Linux

I den tidigare tutorialen berÀttade vi hur man anvÀnder pam_cracklib, för att komplicera lösenord i systemen Red Hat 6 eller CentOS. I Red Hat 7 pam_pwquality ersatte cracklib som pam standardsmodulen för lösenordsverifiering. Modulen pam_pwquality stöds ocksÄ i Ubuntu och CentOS, samt i mÄnga andra operativsystem. Den hÀr modulen underlÀttar skapandet av lösenordspolicys för att sÀkerstÀlla att anvÀndarna följer dina krav pÄ lösenordskomplexitet.

LÀnge var den vanliga metoden för lösenord att tvinga anvÀndare att anvÀnda bÄde versaler och gemener, siffror eller andra tecken. Dessa grundlÀggande regler för lösenordskomplexitet har aktivt propagerats under de senaste tio Ären. Det har varit mÄnga diskussioner om huruvida detta Àr en bra praxis eller inte. Huvudargumentet emot att stÀlla sÄdana strÀnga krav var att anvÀndare skriver ner lösenord pÄ papper och förvarar dem osÀkert.

En annan policy som nyligen tagits i frÄga Àr att tvinga anvÀndare att Àndra sina lösenord var x:e dag. Vissa studier har visat att detta ocksÄ kan skada sÀkerheten.

Det har skrivits mÄnga artiklar om dessa diskussioner som försvarar den ena eller den andra Äsikten. Men det Àr inte vad vi kommer att diskutera i den hÀr artikeln. Den hÀr artikeln handlar om hur man korrekt stÀller in lösenordskomplexitet, snarare Àn att hantera sÀkerhetspolicyer.

InstÀllningar för lösenordspolicy

Nedan ser du instÀllningar för lösenordspolicy och en kort beskrivning av var och en. MÄnga av dem liknar instÀllningarna i modulen cracklib. Denna metod underlÀttar portering av dina policyer frÄn det gamla systemet.

  • difok – Antal tecken i ditt nya lösenord som INTE fĂ„r finnas i ditt gamla lösenord. (Standard 5)
  • minlen – Minimi lĂ€ngd pĂ„ lösenordet. (Standard 9)
  • ucredit – Maximalt antal krediter för anvĂ€ndning av versaler (om parametern > 0), eller minimi antal krav pĂ„ versaler (om parametern < 0). Standard 1.
  • lcredit — Det maximala antalet krediter för anvĂ€ndning av gemener (om parametern > 0), eller det minimi krav pĂ„ antal gemener (om parametern < 0). Som standard 1.
  • dcredit — Det maximala antalet krediter för anvĂ€ndning av siffror (om parametern > 0), eller det minimi krav pĂ„ antal siffror (om parametern < 0). Som standard 1.
  • ocredit — Det maximala antalet krediter för anvĂ€ndning av andra tecken (om parametern > 0), eller det minimi krav pĂ„ antal andra tecken (om parametern < 0). Som standard 1.
  • minclass – Anger det erforderliga antalet klasser. Klasser inkluderar de ovan angivna parametrarna (versaler, gemener, siffror och andra tecken). Som standard 0.
  • maxrepeat – Det maximala antalet upprepningar av ett tecken i lösenordet. Som standard 0.
  • maxclassrepeat — Det maximala antalet pĂ„ varandra följande tecken i en klass. Som standard 0.
  • gecoscheck – Kontrollerar om lösenordet innehĂ„ller nĂ„gra ord frĂ„n anvĂ€ndarens GECOS-rader. (AnvĂ€ndarinformation, t.ex. verkligt namn, plats osv.). Som standard 0 (avstĂ€ngd).
  • dictpath – SökvĂ€g till cracklib-ordlistor.
  • badwords – Mellanslag-separerade ord som Ă€r förbjudna i lösenord (företagsnamn, ordet 'lösenord' osv.).

Om begreppet krediter lÄter konstigt, var inte orolig, det Àr helt normalt. Vi kommer att diskutera detta mer i detalj i följande avsnitt.

Konfiguration av lösenordspolicy

Innan du börjar redigera konfigurationsfiler Àr det en bra praxis att först skriva ner den grundlÀggande lösenordspolicyn. Till exempel, vi kommer att anvÀnda följande komplexitetsregler:

  • Lösenordet mĂ„ste ha en minimi lĂ€ngd av 15 tecken.
  • I lösenordet fĂ„r inte samma tecken upprepas mer Ă€n tvĂ„ gĂ„nger.
  • I lösenordet fĂ„r teckenklasser upprepas upp till fyra gĂ„nger.
  • Lösenordet mĂ„ste innehĂ„lla tecken frĂ„n varje klass.
  • Det nya lösenordet mĂ„ste ha 5 nya tecken jĂ€mfört med det gamla.
  • Aktivera GECOS-kontroll.
  • Förbjuda orden 'password, pass, word, putorius'

Nu nÀr vi har lagt fram policyn kan vi redigera filen /etc/security/pwquality.conf, för att stÀrka kraven pÄ lösenordskomplexitet. HÀr Àr ett exempel pÄ en fil med kommentarer för bÀttre förstÄelse.

# 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

Som du kanske har mÀrkt, Àr vissa parametrar i vÄr fil överflödiga. Till exempel parametern minclass Àr överflödig eftersom vi redan anvÀnder minst tvÄ tecken frÄn klassen med fÀlt [u,l,d,o]credit. VÄr lista över ord som inte fÄr anvÀndas Àr ocksÄ överflödig eftersom vi har förbjudit att upprepa nÄgon klass 4 gÄnger (alla ord i vÄr lista Àr skrivna med smÄ bokstÀver). Jag inkluderade dessa parametrar endast för att visa hur de kan anvÀndas för att konfigurera lösenordspolicyn.
NÀr du har skapat din policy kan du tvinga anvÀndare att byta sina lösenord vid nÀsta inloggning till systemet.

En annan mÀrklig sak som du kanske har mÀrkt Àr att fÀlten [u,l,d,o]credit innehÄller ett negativt tal. Detta beror pÄ att tal som Àr större eller lika med 0 ger kredit för anvÀndningen av ett tecken i ditt lösenord. Om fÀltet innehÄller ett negativt tal innebÀr det att det krÀvs ett visst antal.

Vad Àr krediter (credit)?

Jag kallar dem krediter eftersom det exakt beskriver deras syfte. Om vÀrdet pÄ parametern Àr större Àn 0 lÀgger du till antalet "teckenkrediter" som Àr lika med "x" till lösenordets lÀngd. Till exempel, om alla parametrar (u,l,d,o)credit stÀlls in pÄ 1, och den nödvÀndiga lÀngden pÄ lösenordet var 6, sÄ skulle du behöva 6 tecken för att uppfylla lÀngdkravet, eftersom varje versal, gemen, siffra eller annat tecken ger dig en kredit.

Om du stÀller in dcredit pÄ 2, kan du teoretiskt anvÀnda ett lösenord som Àr 9 tecken lÄngt och fÄ 2 krediter för siffror och dÄ kan lÀngden pÄ lösenordet redan vara 10.

Titta pÄ detta exempel. Jag stÀllde in lösenordslÀngden pÄ 13, stÀllde dcredit pÄ 2, och allt annat pÄ 0.

$ pwscore
 Thisistwelve
 Lösenordskvalitetskontroll misslyckades:
  Lösenordet Àr kortare Àn 13 tecken

$ pwscore
 Th1sistwelve
 18

Min första kontroll misslyckades eftersom lösenordets lĂ€ngd var kortare Ă€n 13 tecken. NĂ€sta gĂ„ng Ă€ndrade jag bokstaven “I” till siffran “1” och fick tvĂ„ krediter för siffror, vilket gjorde att lösenordet motsvarade 13.

Lösenordstestning

Paket libpwquality erbjuder funktionalitet som beskrivs i artikeln. Det levereras ocksÄ med programmet pwscore, som Àr avsett för att kontrollera ett lösenords komplexitet. Vi anvÀnde det ovan för att kontrollera krediter.
Verktyg pwscore lÀser frÄn stdin. Kör helt enkelt verktyget och skriv ditt lösenord, sÄ ger det ett felmeddelande eller ett vÀrde mellan 0 och 100.

KvalitetspoÀngen för lösenordet relaterar till parametern minlen i konfigurationsfilen. Generellt betraktas ett vÀrde under 50 som "ett normalt lösenord", och över 50 som "ett starkt lösenord". Ett lösenord som klarar kvalitetskontroller (sÀrskilt den tvÄngsmÀssiga kontrollen cracklib) mÄste motstÄ ordlistattacker, och ett lösenord med ett vÀrde över 50 med instÀllningen minlen standard Àven brute force attacker.

Slutsats

InstĂ€llning pwquality – det Ă€r enkelt och lĂ€tt jĂ€mfört med besvĂ€ret av att anvĂ€nda cracklib direkt redigering av filer pam. I denna guide har vi behandlat allt du behöver veta för att konfigurera lösenordspolicies i Red Hat 7, CentOS 7 och till och med Ubuntu-system. Vi har ocksĂ„ diskuterat konceptet med krediter, som sĂ€llan skrivs om i detalj, vilket gör att Ă€mnet ofta förblir oklart för dem som inte tidigare varit i kontakt med det.

KĂ€llor:

pwquality man page
pam_pwquality man page
pwscore man page

Nyttiga lÀnkar:

VĂ€lja sĂ€kra lösenord – Bruce Schneier
Lorrie Faith Cranor diskuterar sina lösenordsstudier vid CMU
Den berömda xkcd-teckningen om Entropy

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster