Wachtwoordbeleid aanmaken in Linux

Hallo opnieuw! Morgen begint de lessen in de nieuwe groep van de cursus. ‘Linux Beheerder’, daarom publiceren we een nuttig artikel over dit onderwerp.

Wachtwoordbeleid aanmaken in Linux

In de vorige tutorial bespraken we hoe je gebruik kunt maken van pam_cracklib, om wachtwoorden moeilijker te maken in de systemen Red Hat 6 of CentOS. In Red Hat 7 pam_pwquality vervangt cracklib als pam de standaardmodule voor wachtwoordcontrole. Deze module wordt ook ondersteund in Ubuntu en CentOS, evenals in veel andere besturingssystemen. Deze module vergemakkelijkt het creëren van wachtwoordbeleid om ervoor te zorgen dat gebruikers voldoen aan jouw vereisten voor wachtwoordcomplexiteit. pam_pwquality Gedurende lange tijd was de gebruikelijke aanpak voor wachtwoorden om gebruikers te dwingen hoofdletters, kleine letters, cijfers of andere symbolen te gebruiken. Deze basisregels voor wachtwoordcomplexiteit worden al tien jaar actief gepromoot. Er is veel gediscussieerd over de vraag of dit goede praktijk is of niet. Het belangrijkste argument tegen het vaststellen van zulke complexe voorwaarden was dat gebruikers hun wachtwoorden op papier noteren en onveilig opslaan.

Een ander beleid dat onlangs in twijfel is getrokken, dwingt gebruikers om hun wachtwoorden elke x dagen te veranderen. Er zijn verschillende studies geweest die hebben aangetoond dat dit ook de veiligheid schaadt.

Er zijn talloze artikelen geschreven over deze discussies, die elk een bepaald standpunt onderbouwen. Maar dit is niet wat we in dit artikel zullen bespreken. Dit artikel zal uitleggen hoe je de complexiteit van een wachtwoord correct instelt, en niet hoe je het veiligheidsbeleid beheert.

Wachtwoordbeleid parameters

Hieronder zie je de parameters van het wachtwoordbeleid en een korte beschrijving van elk daarvan. Veel van deze zijn vergelijkbaar met de parameters in de module

. Een dergelijke aanpak vergemakkelijkt het porteren van jouw beleid van een oud systeem. cracklibdifok

  • – Het aantal tekens in je nieuwe wachtwoord dat NIET aanwezig mag zijn in je oude wachtwoord. (Standaard 5) minlen
  • – Minimale lengte van het wachtwoord. (Standaard 9) ucredit
  • – Maximale aantal punten voor het gebruik van hoofdletters (als de parameter > 0), of het minimaal vereiste aantal hoofdletters (als de parameter < 0). Standaard is 1. lcredit
  • lcredit — Het maximum aantal credits voor het gebruik van kleine letters (als de parameter > 0) of het minimumvereiste aantal kleine letters (als de parameter < 0). Standaard is 1.
  • dcredit — Het maximum aantal credits voor het gebruik van cijfers (als de parameter > 0) of het minimumvereiste aantal cijfers (als de parameter < 0). Standaard is 1.
  • ocredit — Het maximum aantal credits voor het gebruik van andere symbolen (als de parameter > 0) of het minimumvereiste aantal andere symbolen (als de parameter < 0). Standaard is 1.
  • minclass – Stelt het vereiste aantal klassen in. Klassen omvatten de bovengenoemde parameters (hoofdletters, kleine letters, cijfers, andere symbolen). Standaard is 0.
  • maxrepeat – Het maximum aantal herhalingen van een karakter in het wachtwoord. Standaard is 0.
  • maxclassrepeat — Het maximum aantal opeenvolgende symbolen in één klasse. Standaard is 0.
  • gecoscheck – Controleert of het wachtwoord woorden bevat uit de GECOS-strings van de gebruiker. (Gebruikersinformatie, d.w.z. echte naam, locatie, enz.). Standaard is 0 (uitgeschakeld).
  • dictpath – Pad naar de cracklib-dictionaries.
  • badwords – Woorden die in wachtwoorden zijn verboden, gescheiden door spaties (zoals bedrijfsnamen, het woord "wachtwoord", enz.).

Als het concept van credits vreemd klinkt, is dat geen probleem, dat is normaal. We zullen dit in latere secties verder bespreken.

Configuratie van het wachtwoordbeleid

Voordat we beginnen met het bewerken van de configuratiebestanden, is het een goed idee om eerst het basiswachtwoordbeleid op te schrijven. Bijvoorbeeld, we zullen de volgende complexiteitsregels gebruiken:

  • Het wachtwoord moet een minimale lengte van 15 tekens hebben.
  • In het wachtwoord mag hetzelfde teken niet meer dan twee keer herhaald worden.
  • In het wachtwoord mogen klassen van symbolen tot vier keer worden herhaald.
  • Het wachtwoord moet symbolen uit elke klasse bevatten.
  • Het nieuwe wachtwoord moet 5 nieuwe symbolen bevatten vergeleken met het oude wachtwoord.
  • Geef de GECOS-controle in.
  • Verbied de woorden "password, pass, word, putorius".

Nu, nu we het beleid hebben uiteengezet, kunnen we het bestand bewerken /etc/security/pwquality.conf, om de vereisten voor wachtwoordcomplexiteit te verstrakken. Hieronder staat een voorbeeldbestand met commentaar voor 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 je misschien hebt opgemerkt, zijn sommige parameters in ons bestand overbodig. Bijvoorbeeld, de parameter minclass is overkill, since we are already using at least two characters from the class, utilizing the fields [u,l,d,o]credit. Our list of words that cannot be used is also excessive, as we have prohibited the repetition of any class 4 times (all words in our list are written in lowercase). I included these parameters just to demonstrate how to use them to configure password policies.
Once you have created your policy, you can enforce users to change their passwords upon their next login to the system.

Another odd thing you might have noticed is that the fields [u,l,d,o]credit contain a negative number. This is because numbers greater than or equal to 0 provide credit for using a character in your password. If a field contains a negative number, it means that a certain amount is required.

What are credits (credit)?

I call them credits since it most accurately conveys their purpose. If the parameter value is greater than 0, you add 'credits per character' equal to 'x' to the password length. For example, if all parameters (u,l,d,o)credit are set to 1, and the required password length is 6, then you will need 6 characters to satisfy the length requirement, because each uppercase letter, lowercase letter, digit, or other symbol will give you one credit.

If you set dcredit to 2, you can theoretically use a password of 9 characters and receive 2 credits per character for digits, making the password length necessary to be 10.

Consider this example. I set the password length to 13, set dcredit to 2, and everything else to 0.

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

$ pwscore
 Th1sistwelve
 18

My first check failed since the password length was less than 13 characters. The next time I changed the letter 'I' to the digit '1' and received two credits for digits, making the password equal to 13.

Password testing

Package libpwquality provides the functionality described in the article. It also includes the program pwscore, which is designed to check the password for complexity. We used it above to check the credits.
Hulpprogramma pwscore reads from stdin. Just run the utility and enter your password, it will return an error or a value from 0 to 100.

De kwaliteitsindicator van het wachtwoord komt overeen met een parameter – Minimale lengte van het wachtwoord. (Standaard 9) in het configuratiebestand. Over het algemeen wordt een score van minder dan 50 beschouwd als 'normaal wachtwoord', en hoger - als 'sterk wachtwoord'. Elk wachtwoord dat de kwaliteitscontroles doorstaat (vooral de verplichte controle cracklib) moet bestand zijn tegen woordenboekaanvallen, en een wachtwoord met een score boven 50 met de instelling – Minimale lengte van het wachtwoord. (Standaard 9) standaard zelfs brute force aanvallen.

Conclusie

Instellingen pwquality is veel makkelijker en eenvoudiger in vergelijking met de ongemakken bij het gebruik van cracklib directe bestandsbewerking pam. In deze handleiding hebben we alles behandeld wat je nodig hebt bij het instellen van wachtwoordbeleid in Red Hat 7, CentOS 7 en zelfs Ubuntu-systemen. Ook hebben we het gehad over het concept van credits, dat zelden uitgebreid wordt besproken, waardoor dit onderwerp vaak onduidelijk bleef voor degenen die er eerder niet mee in aanraking zijn gekomen.

Bronnen:

pwquality man pagina
pam_pwquality man pagina
pwscore man pagina

Nuttige links:

Veilige wachtwoorden kiezen - Bruce Schneier
Lorrie Faith Cranor bespreekt haar wachtwoordstudies aan de CMU
De beruchte xkcd-cartoon over Entropie

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster