Welkom terug! Morgen starten de lessen in de nieuwe cursusgroep
In de vorige tutorial hebben we je verteld hoe je het moet gebruiken pam_cracklib
om wachtwoorden op systemen complexer te maken pam_pwquality
vervangen cracklib
als pam
standaardmodule voor het controleren van wachtwoorden. Module pam_pwquality
wordt ook ondersteund op Ubuntu en CentOS, evenals op vele andere besturingssystemen. Met deze module kunt u eenvoudig wachtwoordbeleid maken om ervoor te zorgen dat gebruikers uw standaarden voor wachtwoordsterkte accepteren.
Lange tijd was de gebruikelijke benadering van wachtwoorden het dwingen van de gebruiker om hoofdletters, kleine letters, cijfers of andere symbolen te gebruiken. Deze basisregels voor de complexiteit van wachtwoorden zijn de afgelopen tien jaar op grote schaal gepromoot. Er is veel discussie geweest over de vraag of dit een goede praktijk is of niet. Het belangrijkste argument tegen het stellen van dergelijke complexe voorwaarden was dat gebruikers wachtwoorden op stukjes papier schrijven en deze onveilig opslaan.
Een ander beleid dat onlangs in twijfel is getrokken, dwingt gebruikers om hun wachtwoord elke x dagen te wijzigen. Er zijn onderzoeken die aantonen dat dit ook schadelijk is voor de veiligheid.
Er zijn veel artikelen geschreven over het onderwerp van deze discussies, die het ene of het andere standpunt onderbouwen. Maar dit is niet wat we in dit artikel zullen bespreken. In dit artikel wordt besproken hoe u de wachtwoordcomplexiteit correct kunt instellen in plaats van het beveiligingsbeleid te beheren.
Instellingen voor wachtwoordbeleid
Hieronder ziet u de opties voor wachtwoordbeleid en een korte beschrijving van elke optie. Veel ervan zijn vergelijkbaar met de parameters in de module cracklib
. Deze aanpak maakt het eenvoudiger om uw beleid vanuit het oude systeem over te zetten.
- mijn excuses β Het aantal tekens in uw nieuwe wachtwoord dat NIET in uw oude wachtwoord mag voorkomen. (Standaard 5)
- minlen β Minimale wachtwoordlengte. (Standaard 9)
- utegoed β Het maximale aantal credits voor het gebruik van hoofdletters (als parameter > 0), of het minimaal vereiste aantal hoofdletters (als parameter < 0). Standaard is 1.
- ik tegoed β Het maximale aantal credits voor het gebruik van kleine letters (als parameter > 0), of het minimaal vereiste aantal kleine letters (als parameter < 0). Standaard is 1.
- krediet β Het maximale aantal credits voor het gebruik van cijfers (als parameter > 0), of het minimaal vereiste aantal cijfers (als parameter < 0). Standaard is 1.
- hij gelooft β Het maximale aantal credits voor het gebruik van andere symbolen (als parameter > 0), of het minimaal vereiste aantal andere symbolen (als parameter < 0). Standaard is 1.
- minklasse β Stelt het aantal vereiste klassen in. Klassen omvatten de bovenstaande parameters (hoofdletters, kleine letters, cijfers, andere tekens). Standaard is 0.
- maximaal herhalen β Het maximale aantal keren dat een teken in een wachtwoord kan worden herhaald. Standaard is 0.
- maxklasse herhalen β Het maximale aantal opeenvolgende tekens in één klasse. Standaard is 0.
- gecocheck β Controleert of het wachtwoord woorden bevat uit de GECOS-reeksen van de gebruiker. (Gebruikersinformatie, d.w.z. echte naam, locatie, etc.) Standaard is 0 (uit).
- dictaat β Laten we naar cracklib-woordenboeken gaan.
- BADWORDS β Door spaties gescheiden woorden die verboden zijn in wachtwoorden (bedrijfsnaam, het woord βwachtwoordβ, enz.).
Als het concept van leningen vreemd klinkt, is dat okΓ©, het is normaal. We zullen hier meer over praten in de volgende paragrafen.
Configuratie van wachtwoordbeleid
Voordat u configuratiebestanden gaat bewerken, is het een goede gewoonte om vooraf een basiswachtwoordbeleid op te schrijven. We gebruiken bijvoorbeeld de volgende moeilijkheidsregels:
- Het wachtwoord moet minimaal 15 tekens lang zijn.
- Hetzelfde teken mag niet vaker dan tweemaal in het wachtwoord worden herhaald.
- Karakterklassen kunnen maximaal vier keer worden herhaald in een wachtwoord.
- Het wachtwoord moet tekens uit elke klasse bevatten.
- Het nieuwe wachtwoord moet 5 nieuwe tekens bevatten in vergelijking met het oude.
- Schakel GECOS-controle in.
- Verbied de woorden βwachtwoord, pas, woord, putoriusβ
Nu we het beleid hebben vastgelegd, kunnen we het bestand bewerken /etc/security/pwquality.conf
om de vereisten voor wachtwoordcomplexiteit te verhogen. Hieronder vindt u een voorbeeldbestand met opmerkingen voor een beter begrip.
# 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
Zoals u wellicht heeft gemerkt, zijn sommige parameters in ons bestand overbodig. Bijvoorbeeld de parameter minclass
is overbodig omdat we al minstens twee tekens uit de klasse gebruiken die velden gebruiken [u,l,d,o]credit
. Onze lijst met woorden die niet kunnen worden gebruikt is ook overbodig, omdat we hebben verboden om een ββklasse vier keer te herhalen (alle woorden in onze lijst zijn in kleine letters geschreven). Ik heb deze opties alleen toegevoegd om te demonstreren hoe u ze kunt gebruiken om uw wachtwoordbeleid te configureren.
Nadat u uw beleid heeft gemaakt, kunt u gebruikers dwingen hun wachtwoord te wijzigen de volgende keer dat ze inloggen.
Een ander vreemd ding dat je misschien is opgevallen, zijn de velden [u,l,d,o]credit
een negatief getal bevatten. Dit komt omdat getallen groter dan of gelijk aan 0 krediet geven voor het gebruik van het teken in uw wachtwoord. Als het veld een negatief getal bevat, betekent dit dat een bepaald aantal vereist is.
Wat zijn leningen?
Ik noem ze leningen omdat dat hun doel zo nauwkeurig mogelijk weergeeft. Als de parameterwaarde groter is dan 0, voegt u een aantal "tekencredits" gelijk aan "x" toe aan de wachtwoordlengte. Als bijvoorbeeld alle parameters (u,l,d,o)credit
ingesteld op 1 en de vereiste wachtwoordlengte was 6, dan heeft u 6 tekens nodig om aan de lengtevereiste te voldoen, omdat elke hoofdletter, kleine letter, cijfer of ander teken u één credit oplevert.
Als u installeert dcredit
bij 2 zou je theoretisch een wachtwoord kunnen gebruiken dat 9 tekens lang is en 2 tekencredits krijgen voor cijfers, en dan zou de wachtwoordlengte al 10 kunnen zijn.
Kijk naar dit voorbeeld. Ik heb de wachtwoordlengte ingesteld op 13, dcredit op 2 en al het andere op 0.
$ pwscore
Thisistwelve
Password quality check failed:
The password is shorter than 13 characters
$ pwscore
Th1sistwelve
18
Mijn eerste controle mislukte omdat het wachtwoord minder dan 13 tekens lang was. De volgende keer veranderde ik de letter βIβ in het cijfer β1β en kreeg ik twee credits voor de cijfers, waardoor het wachtwoord gelijk werd aan 13.
Wachtwoord testen
Verpakking libpwquality
biedt de functionaliteit die in het artikel wordt beschreven. Er zit ook een programma bij pwscore
, dat is ontworpen om de complexiteit van wachtwoorden te controleren. We hebben het hierboven gebruikt om leningen te controleren.
Nut pwscore
leest van
De wachtwoordkwaliteitsscore is gerelateerd aan de parameter minlen
in het configuratiebestand. Over het algemeen wordt een score van minder dan 50 beschouwd als een βnormaal wachtwoordβ, en een score daarboven als een βsterk wachtwoordβ. Elk wachtwoord dat de kwaliteitscontroles doorstaat (vooral geforceerde verificatie). cracklib
) moet bestand zijn tegen woordenboekaanvallen en een wachtwoord met een score boven de 50 bij de instelling minlen
zelfs standaard brute force
aanvallen.
Conclusie
afstelling pwquality
β het is gemakkelijk en eenvoudig vergeleken met het ongemak van het gebruik cracklib
met directe bestandsbewerking pam
. In deze handleiding hebben we alles besproken wat u nodig heeft bij het instellen van wachtwoordbeleid op Red Hat 7-, CentOS 7- en zelfs Ubuntu-systemen. We spraken ook over het concept van leningen, waarover zelden in detail wordt geschreven, waardoor dit onderwerp vaak onduidelijk bleef voor degenen die er nog niet eerder mee te maken hadden gehad.
Bronnen:
Nuttige links:
Bron: www.habr.com