Skapa en lösenordspolicy i Linux

Hej igen! Lektionerna i den nya kursgruppen börjar imorgon "Linux-administratör", i detta avseende publicerar vi en användbar artikel om ämnet.

Skapa en lösenordspolicy i Linux

I den tidigare handledningen berättade vi hur du använder pam_cracklibatt göra lösenord på system mer komplexa Red Hat 6 eller CentOS. I Red Hat 7 pam_pwquality ersatt cracklib som pam standardmodul för kontroll av lösenord. Modul pam_pwquality stöds även på Ubuntu och CentOS, såväl som många andra operativsystem. Den här modulen gör det enkelt att skapa lösenordspolicyer för att säkerställa att användarna accepterar dina standarder för lösenordsstyrka.

Under lång tid var det vanliga tillvägagångssättet för lösenord att tvinga användaren att använda versaler, gemener, siffror eller andra symboler. Dessa grundläggande regler för lösenordskomplexitet har främjats flitigt under de senaste tio åren. Det har varit mycket diskussion om huruvida detta är god praxis eller inte. Huvudargumentet mot att ställa så komplexa villkor var att användare skriver ner lösenord på papperslappar och lagrar dem på ett osäkert sätt.

En annan policy som nyligen har ifrågasatts tvingar användare att ändra sina lösenord var x dag. Det har gjorts några studier som har visat att detta också är skadligt för säkerheten.

Många artiklar har skrivits om ämnet för dessa diskussioner, som underbygger en eller annan synpunkt. Men det är inte vad vi kommer att diskutera i den här artikeln. Den här artikeln kommer att prata om hur man korrekt ställer in lösenordskomplexiteten snarare än att hantera säkerhetspolicyn.

Lösenordspolicyinställningar

Nedan ser du alternativen för lösenordspolicyn och en kort beskrivning av varje. Många av dem liknar parametrarna i modulen cracklib. Detta tillvägagångssätt gör det enklare att överföra dina policyer från det äldre systemet.

  • difok – Antalet tecken i ditt nya lösenord som INTE ska finnas i ditt gamla lösenord. (Standard 5)
  • minlen – Minsta lösenordslängd. (Standard 9)
  • ukredit – Det maximala antalet poäng för användning av versaler (om parameter > 0), eller det minsta nödvändiga antalet versaler (om parameter < 0). Standard är 1.
  • lkredit — Det maximala antalet poäng för användning av små bokstäver (om parameter > 0), eller det minsta antal små bokstäver som krävs (om parameter < 0). Standard är 1.
  • dkredit — Det maximala antalet poäng för att använda siffror (om parameter > 0), eller det minsta erforderliga antalet siffror (om parameter < 0). Standard är 1.
  • okkredit — Det maximala antalet poäng för användning av andra symboler (om parameter > 0), eller det minsta erforderliga antalet andra symboler (om parameter < 0). Standard är 1.
  • minklass – Ställer in antalet klasser som krävs. Klasser inkluderar ovanstående parametrar (versaler, gemener, siffror, andra tecken). Standard är 0.
  • maxrepeat – Det maximala antalet gånger ett tecken kan upprepas i ett lösenord. Standard är 0.
  • maxclassrepeat — Det maximala antalet på varandra följande tecken i en klass. Standard är 0.
  • gecocheck – Kontrollerar om lösenordet innehåller några ord från användarens GECOS-strängar. (Användarinformation, d.v.s. riktiga namn, plats, etc.) Standard är 0 (av).
  • diktväg – Låt oss gå till cracklib-ordböcker.
  • badwords – Mellanslagsseparerade ord som är förbjudna i lösenord (företagsnamn, ordet "lösenord" etc.).

Om begreppet lån låter konstigt är det okej, det är normalt. Vi kommer att prata mer om detta i följande avsnitt.

Lösenordspolicykonfiguration

Innan du börjar redigera konfigurationsfiler är det bra att skriva ner en grundläggande lösenordspolicy i förväg. Till exempel kommer vi att använda följande svårighetsregler:

  • Lösenordet måste ha en minsta längd på 15 tecken.
  • Samma tecken bör inte upprepas mer än två gånger i lösenordet.
  • Teckenklasser kan upprepas upp till fyra gånger i ett lösenord.
  • 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örbjud orden "lösenord, pass, ord, putorius"

Nu när vi har lagt upp policyn kan vi redigera filen /etc/security/pwquality.confför att öka kraven på lösenordskomplexitet. Nedan finns en exempelfil 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 redundant eftersom vi redan använder minst två tecken från klassen som använder fält [u,l,d,o]credit. Vår lista över ord som inte kan 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 gemener). Jag har inkluderat dessa alternativ endast för att visa hur du använder dem för att konfigurera din lösenordspolicy.
När du har skapat din policy kan du tvinga användare att ändra sina lösenord nästa gång de loggar in. systemet.

En annan märklig sak du kanske har märkt är att fälten [u,l,d,o]credit innehåller ett negativt tal. Detta beror på att siffror större än eller lika med 0 ger kredit för att du använder tecknet i ditt lösenord. Om fältet innehåller ett negativt tal betyder det att en viss mängd krävs.

Vad är lån?

Jag kallar dem lån eftersom det förmedlar deras syfte så exakt som möjligt. Om parametervärdet är större än 0, lägger du till ett antal "teckenkrediter" lika med "x" till lösenordslängden. Till exempel om alla parametrar (u,l,d,o)credit inställd på 1 och den nödvändiga lösenordslängden var 6, då behöver du 6 tecken för att uppfylla längdkravet eftersom varje versal, gemen, siffra eller annat tecken ger dig en poäng.

Om du installerar dcredit vid 2 kan du teoretiskt använda ett lösenord som är 9 tecken långt och få 2 tecken för siffror, och då kan lösenordslängden redan vara 10.

Titta på det här exemplet. Jag ställer in lösenordslängden till 13, ställer in dcredit till 2 och allt annat till 0.

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

$ pwscore
 Th1sistwelve
 18

Min första kontroll misslyckades eftersom lösenordet var mindre än 13 tecken långt. Nästa gång ändrade jag bokstaven "I" till siffran "1" och fick två poäng för siffrorna, vilket gjorde lösenordet lika med 13.

Lösenordstestning

paket libpwquality ger den funktionalitet som beskrivs i artikeln. Det följer också med ett program pwscore, som är utformad för att kontrollera lösenordets komplexitet. Vi använde det ovan för att kontrollera lån.
Verktyg pwscore läser från stdin. Kör bara verktyget och skriv ditt lösenord, det kommer att visa ett fel eller ett värde från 0 till 100.

Lösenordets kvalitetspoäng är relaterad till parametern minlen i konfigurationsfilen. I allmänhet anses en poäng på mindre än 50 vara ett "normalt lösenord" och en poäng över det anses vara ett "starkt lösenord". Alla lösenord som klarar kvalitetskontroller (särskilt påtvingad verifiering cracklib) måste motstå ordboksattacker och ett lösenord med en poäng över 50 med inställningen minlen även som standard brute force attacker.

Slutsats

justering pwquality – det är enkelt och enkelt jämfört med besväret med användningen cracklib med direkt filredigering pam. I den här guiden har vi täckt allt du behöver när du ställer in lösenordspolicyer på Red Hat 7, CentOS 7 och till och med Ubuntu-system. Vi pratade också om begreppet lån, som sällan skrivs om i detalj, så detta ämne förblev ofta oklart för dem som inte tidigare stött på det.

Källor:

pwquality man-sida
pam_pwquality man-sida
pwscore man-sida

Användbara länkar:

Välja säkra lösenord – Bruce Schneier
Lorrie Faith Cranor diskuterar sina lösenordsstudier på CMU
Den ökända xkcd-tecknad film om entropi

Källa: will.com

Lägg en kommentar