Paglikha ng Patakaran sa Password sa Linux

Hello ulit! Magsisimula bukas ang mga klase sa bagong grupo ng kurso "Linux Administrator", sa bagay na ito, naglalathala kami ng isang kapaki-pakinabang na artikulo sa paksa.

Paglikha ng Patakaran sa Password sa Linux

Sa nakaraang tutorial sinabi namin sa iyo kung paano gamitin pam_cracklibupang gawing mas kumplikado ang mga password sa mga system Pulang Sombrero 6 o CentOS. Sa Red Hat 7 pam_pwquality pinalitan cracklib bilang pam default na module para sa pagsuri ng mga password. Module pam_pwquality sinusuportahan din sa Ubuntu at CentOS, pati na rin sa maraming iba pang mga OS. Pinapadali ng module na ito ang paggawa ng mga patakaran sa password upang matiyak na tinatanggap ng mga user ang iyong mga pamantayan sa lakas ng password.

Sa mahabang panahon, ang karaniwang diskarte sa mga password ay pilitin ang user na gumamit ng uppercase, lowercase, numero, o iba pang mga simbolo. Ang mga pangunahing panuntunang ito para sa pagiging kumplikado ng password ay malawakang na-promote sa nakalipas na sampung taon. Nagkaroon ng maraming talakayan tungkol sa kung ito ay mabuting kasanayan o hindi. Ang pangunahing argumento laban sa pagtatakda ng ganitong kumplikadong mga kundisyon ay ang mga gumagamit ay nagsusulat ng mga password sa mga piraso ng papel at nag-iimbak ng mga ito nang hindi secure.

Pinipilit ng isa pang patakaran na pinag-uusapan kamakailan ang mga user na baguhin ang kanilang mga password bawat x araw. Mayroong ilang mga pag-aaral na nagpakita na ito ay nakakapinsala din sa kaligtasan.

Maraming mga artikulo ang naisulat sa paksa ng mga talakayang ito, na nagpapatunay sa isang punto ng pananaw o iba pa. Ngunit hindi ito ang tatalakayin natin sa artikulong ito. Tatalakayin ng artikulong ito kung paano itakda nang tama ang pagiging kumplikado ng password sa halip na pamahalaan ang patakaran sa seguridad.

Mga Setting ng Patakaran sa Password

Sa ibaba makikita mo ang mga pagpipilian sa patakaran sa password at isang maikling paglalarawan ng bawat isa. Marami sa kanila ay katulad ng mga parameter sa module cracklib. Pinapadali ng diskarteng ito ang pag-port ng iyong mga patakaran mula sa legacy system.

  • ako ay humihingi ng paumanhin – Ang bilang ng mga character sa iyong bagong password na HINDI dapat naroroon sa iyong lumang password. (Default 5)
  • si minlen – Pinakamababang haba ng password. (Default 9)
  • ucredit – Ang maximum na bilang ng mga credit para sa paggamit ng mga uppercase na character (kung parameter > 0), o ang minimum na kinakailangang bilang ng mga uppercase na character (kung parameter < 0). Ang default ay 1.
  • lcredit β€” Ang maximum na bilang ng mga credit para sa paggamit ng maliliit na character (kung parameter > 0), o ang minimum na kinakailangang bilang ng mga lowercase na character (kung parameter < 0). Ang default ay 1.
  • pautang β€” Ang maximum na bilang ng mga credit para sa paggamit ng mga digit (kung parameter > 0), o ang minimum na kinakailangang bilang ng mga digit (kung parameter < 0). Ang default ay 1.
  • naniniwala siya β€” Ang maximum na bilang ng mga credit para sa paggamit ng iba pang mga simbolo (kung parameter > 0), o ang pinakamababang kinakailangang bilang ng iba pang mga simbolo (kung parameter < 0). Ang default ay 1.
  • minclass - Itinatakda ang bilang ng mga klase na kinakailangan. Kasama sa mga klase ang mga parameter sa itaas (mga upper case na character, lower case na character, numero, iba pang character). Ang default ay 0.
  • maxrepeat – Ang maximum na bilang ng beses na maaaring ulitin ang isang character sa isang password. Ang default ay 0.
  • maxclassrepeat β€” Ang maximum na bilang ng magkakasunod na character sa isang klase. Ang default ay 0.
  • gecoscheck – Sinusuri kung ang password ay naglalaman ng anumang mga salita mula sa mga string ng GECOS ng user. (Impormasyon ng user, ibig sabihin, tunay na pangalan, lokasyon, atbp.) Ang default ay 0 (naka-off).
  • dictpath – Pumunta tayo sa mga diksyunaryo ng cracklib.
  • badwords – Mga salitang pinaghihiwalay ng espasyo na ipinagbabawal sa mga password (Pangalan ng kumpanya, ang salitang "password", atbp.).

Kung kakaiba ang konsepto ng mga pautang, okay lang, normal lang. Pag-uusapan natin ang higit pa tungkol dito sa mga sumusunod na seksyon.

Configuration ng Patakaran sa Password

Bago ka magsimulang mag-edit ng mga configuration file, magandang kasanayan na isulat nang maaga ang isang pangunahing patakaran sa password. Halimbawa, gagamitin namin ang mga sumusunod na panuntunan sa kahirapan:

  • Ang password ay dapat na may pinakamababang haba na 15 character.
  • Ang parehong character ay hindi dapat ulitin nang higit sa dalawang beses sa password.
  • Ang mga klase ng character ay maaaring ulitin hanggang apat na beses sa isang password.
  • Ang password ay dapat maglaman ng mga character mula sa bawat klase.
  • Ang bagong password ay dapat may 5 bagong character kumpara sa luma.
  • Paganahin ang GECOS check.
  • Ipagbawal ang mga salitang "password, pass, word, putorius"

Ngayong inilatag na namin ang patakaran, maaari naming i-edit ang file /etc/security/pwquality.confupang madagdagan ang mga kinakailangan sa pagiging kumplikado ng password. Nasa ibaba ang isang halimbawang file na may mga komento para sa mas mahusay na pag-unawa.

# 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

Tulad ng maaaring napansin mo, ang ilang mga parameter sa aming file ay kalabisan. Halimbawa, ang parameter minclass ay kalabisan dahil gumagamit na kami ng hindi bababa sa dalawang character mula sa klase gamit ang mga field [u,l,d,o]credit. Ang aming listahan ng mga salita na hindi maaaring gamitin ay kalabisan din, dahil ipinagbabawal namin ang pag-uulit ng anumang klase ng 4 na beses (lahat ng mga salita sa aming listahan ay nakasulat sa maliliit na letra). Isinama ko lang ang mga opsyong ito para ipakita kung paano gamitin ang mga ito para i-configure ang iyong patakaran sa password.
Kapag nagawa mo na ang iyong patakaran, maaari mong pilitin ang mga user na baguhin ang kanilang mga password sa susunod na mag-log in sila. sistema.

Ang isa pang kakaibang bagay na maaaring napansin mo ay ang mga patlang [u,l,d,o]credit naglalaman ng negatibong numero. Ito ay dahil ang mga numerong mas malaki sa o katumbas ng 0 ay magbibigay ng credit para sa paggamit ng character sa iyong password. Kung ang field ay naglalaman ng negatibong numero, nangangahulugan ito na kinakailangan ang isang tiyak na dami.

Ano ang mga pautang?

Tinatawag ko silang mga pautang dahil ipinapahayag nito ang kanilang layunin nang tumpak hangga't maaari. Kung mas malaki sa 0 ang value ng parameter, magdagdag ka ng bilang ng "mga kredito ng character" na katumbas ng "x" sa haba ng password. Halimbawa, kung ang lahat ng mga parameter (u,l,d,o)credit itinakda sa 1 at ang kinakailangang haba ng password ay 6, pagkatapos ay kakailanganin mo ng 6 na character upang matugunan ang kinakailangang haba dahil ang bawat uppercase, lowercase, digit o iba pang character ay magbibigay sa iyo ng isang credit.

Kung nag-install ka dcredit sa 2, maaari kang gumamit ng isang password na 9 na character ang haba at makakuha ng 2 character na credit para sa mga numero, at pagkatapos ay ang haba ng password ay maaaring 10 na.

Tingnan ang halimbawang ito. Itinakda ko ang haba ng password sa 13, itinakda ang dcredit sa 2, at lahat ng iba pa sa 0.

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

$ pwscore
 Th1sistwelve
 18

Nabigo ang aking unang pagsusuri dahil ang password ay wala pang 13 character ang haba. Sa susunod na binago ko ang titik na "I" sa numerong "1" at nakatanggap ng dalawang kredito para sa mga numero, na ginawang katumbas ng 13 ang password.

Pagsubok ng password

Package libpwquality nagbibigay ng functionality na inilarawan sa artikulo. May kasama rin itong programa pwscore, na idinisenyo upang suriin ang pagiging kumplikado ng password. Ginamit namin ito sa itaas upang suriin ang mga pautang.
Kagamitan pwscore nagbabasa mula sa si stdin. Patakbuhin lamang ang utility at isulat ang iyong password, magpapakita ito ng isang error o isang halaga mula 0 hanggang 100.

Ang marka ng kalidad ng password ay nauugnay sa parameter minlen sa configuration file. Sa pangkalahatan, ang markang mas mababa sa 50 ay itinuturing na isang "normal na password", at ang isang marka sa itaas nito ay itinuturing na isang "malakas na password". Anumang password na pumasa sa mga pagsusuri sa kalidad (lalo na ang sapilitang pag-verify cracklib) ay dapat makatiis sa mga pag-atake sa diksyunaryo, at isang password na may markang higit sa 50 sa setting minlen kahit sa default brute force mga pag-atake.

Konklusyon

pag-aayos pwquality - ito ay madali at simple kumpara sa abala ng paggamit cracklib na may direktang pag-edit ng file pam. Sa gabay na ito, nasaklaw namin ang lahat ng kakailanganin mo kapag nagse-set up ng mga patakaran sa password sa Red Hat 7, CentOS 7, at maging sa mga Ubuntu system. Napag-usapan din namin ang tungkol sa konsepto ng mga pautang, na bihirang nakasulat tungkol sa detalye, kaya ang paksang ito ay madalas na nanatiling hindi malinaw sa mga hindi pa nakatagpo nito.

Pinagmulan:

pwquality man page
pam_pwquality man page
pwscore man page

Mga kapaki-pakinabang na link:

Pagpili ng Mga Secure na Password – Bruce Schneier
Tinatalakay ni Lorrie Faith Cranor ang kanyang pag-aaral ng password sa CMU
Ang Infamous xkcd cartoon sa Entropy

Pinagmulan: www.habr.com

Magdagdag ng komento