Szia ismét! Holnap kezdődnek az órák az új tanfolyami csoportban
Az előző oktatóanyagban elmondtuk, hogyan kell használni pam_cracklib
hogy bonyolultabbá tegyük a jelszavakat a rendszereken pam_pwquality
kicserélték cracklib
mint pam
alapértelmezett modul a jelszavak ellenőrzéséhez. Modul pam_pwquality
Ubuntu és CentOS, valamint sok más operációs rendszer is támogatott. Ez a modul megkönnyíti a jelszóházirendek létrehozását, amelyek biztosítják, hogy a felhasználók elfogadják a jelszóerősségi szabványokat.
Sokáig a jelszavak elterjedt megközelítése volt, hogy a felhasználót nagybetűk, kisbetűk, számok vagy egyéb szimbólumok használatára kényszerítsék. A jelszó összetettségére vonatkozó alapvető szabályokat az elmúlt tíz évben széles körben támogatták. Sok vita folyt arról, hogy ez jó gyakorlat-e vagy sem. A fő érv az ilyen összetett feltételek felállítása ellen az volt, hogy a felhasználók papírra írják fel a jelszavakat, és nem biztonságosan tárolják azokat.
Egy másik, a közelmúltban megkérdőjelezett irányelv arra kényszeríti a felhasználókat, hogy x naponta módosítsák jelszavaikat. Néhány tanulmány kimutatta, hogy ez a biztonságot is rontja.
E viták témájában számos cikk született, amelyek alátámasztják egyik vagy másik nézőpontot. De ebben a cikkben nem erről fogunk beszélni. Ez a cikk arról fog szólni, hogyan kell helyesen beállítani a jelszó összetettségét a biztonsági házirend kezelése helyett.
Jelszóházirend-beállítások
Az alábbiakban láthatja a jelszóházirend-beállításokat, és mindegyik rövid leírását. Sok közülük hasonló a modul paramétereihez cracklib
. Ez a megközelítés megkönnyíti a házirendek áthelyezését a régi rendszerből.
- difok – Az új jelszóban szereplő karakterek száma, amelyek NEM szerepelhetnek a régi jelszavában. (Alapértelmezett 5)
- minlen – A jelszó minimális hossza. (Alapértelmezett 9)
- hitelt – A nagybetűk használatának maximális száma (ha a paraméter > 0), vagy a minimálisan szükséges nagybetűk száma (ha a paraméter < 0). Az alapértelmezett az 1.
- lhitel — A kisbetűs karakterek használatának maximális száma (ha a paraméter > 0), vagy a kisbetűk minimálisan szükséges száma (ha a paraméter < 0). Az alapértelmezett az 1.
- hitel — A számjegyek használatának maximális száma (ha a paraméter > 0), vagy a minimálisan szükséges számjegyek száma (ha a paraméter < 0). Az alapértelmezett az 1.
- hiszi — Az egyéb szimbólumok használatának maximális száma (ha a paraméter > 0), vagy az egyéb szimbólumok minimálisan szükséges száma (ha a paraméter < 0). Az alapértelmezett az 1.
- minclass – Beállítja a szükséges osztályok számát. Az osztályok a fenti paramétereket tartalmazzák (nagybetűk, kisbetűk, számok, egyéb karakterek). Az alapértelmezett 0.
- maxismétlés – Egy karakter ismétlődésének maximális száma a jelszóban. Az alapértelmezett 0.
- max osztályismétlés — Egy osztályban az egymást követő karakterek maximális száma. Az alapértelmezett 0.
- gecoscheck – Ellenőrzi, hogy a jelszó tartalmaz-e szavakat a felhasználó GECOS karakterláncaiból. (Felhasználói adatok, azaz valódi név, hely stb.) Az alapértelmezett érték 0 (kikapcsolva).
- diktatúra – Menjünk a cracklib szótárakba.
- rossz szavak – A jelszavakban tiltott szóközzel elválasztott szavak (Cégnév, „jelszó” szó stb.).
Ha a hitel fogalma furcsán hangzik, akkor rendben van, ez normális. Erről bővebben a következő részekben fogunk beszélni.
Jelszóházirend-konfiguráció
A konfigurációs fájlok szerkesztésének megkezdése előtt célszerű előre leírni egy alapvető jelszószabályzatot. Például a következő nehézségi szabályokat fogjuk használni:
- A jelszónak legalább 15 karakter hosszúnak kell lennie.
- Ugyanazt a karaktert nem szabad kétszer többször megismételni a jelszóban.
- A karakterosztályok legfeljebb négyszer ismételhetők meg egy jelszóban.
- A jelszónak tartalmaznia kell az egyes osztályokból származó karaktereket.
- Az új jelszónak 5 új karakterből kell állnia a régihez képest.
- GECOS ellenőrzés engedélyezése.
- Tiltsa be a „jelszó, jelszó, szó, putorius” szavakat
Most, hogy elkészítettük az irányelvet, szerkeszthetjük a fájlt /etc/security/pwquality.conf
a jelszó bonyolultsági követelményeinek növelése érdekében. Az alábbiakban egy példafájl található megjegyzésekkel a jobb megértés érdekében.
# 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
Amint azt bizonyára észrevette, a fájlunk egyes paraméterei redundánsak. Például a paraméter minclass
redundáns, mivel már legalább két karaktert használunk az osztályból mezőket használva [u,l,d,o]credit
. A nem használható szavak listánk is redundáns, mivel 4-szer megtiltottuk bármely osztály ismétlését (a listánkban szereplő összes szót kisbetűkkel írjuk). Ezeket a lehetőségeket csak azért adtam meg, hogy bemutassam, hogyan kell őket használni a jelszóházirend konfigurálásához.
Miután létrehozta a házirendet, rákényszerítheti a felhasználókat, hogy a következő bejelentkezéskor módosítsák jelszavukat.
Egy másik furcsa dolog, amit észrevehetett, az az, hogy a mezők [u,l,d,o]credit
negatív számot tartalmaznak. Ennek az az oka, hogy a 0-nál nagyobb vagy azzal egyenlő számok a jelszavában szereplő karakter használatát jelentik. Ha a mező negatív számot tartalmaz, az azt jelenti, hogy egy bizonyos mennyiségre van szükség.
Mik azok a hitelek?
Azért hívom őket kölcsönnek, mert ez a lehető legpontosabban kifejezi a céljukat. Ha a paraméter értéke nagyobb, mint 0, akkor a jelszó hosszához "x"-szel egyenlő számú "karakterkreditet" kell hozzáadnia. Például, ha az összes paraméter (u,l,d,o)credit
1-re állítva, és a jelszó szükséges hossza 6 volt, akkor 6 karakterre lesz szüksége a hosszúsági követelmény teljesítéséhez, mert minden nagybetű, kisbetű, számjegy vagy egyéb karakter egy jóváírást ad.
Ha telepíted dcredit
2-nél elméletileg használhatsz egy 9 karakter hosszú jelszót, és kaphatsz 2 karaktert a számokért, és akkor a jelszó hossza már 10 lehet.
Nézd meg ezt a példát. A jelszó hosszát 13-ra állítottam, a dcredit 2-re, minden mást 0-ra.
$ pwscore
Thisistwelve
Password quality check failed:
The password is shorter than 13 characters
$ pwscore
Th1sistwelve
18
Az első ellenőrzésem nem sikerült, mert a jelszó 13 karakternél rövidebb volt. A következő alkalommal az „I” betűt „1”-re cseréltem, és két kreditet kaptam a számokért, amivel a jelszó 13-mal egyenlő lett.
Jelszó tesztelés
csomag libpwquality
biztosítja a cikkben leírt funkciókat. Program is jár hozzá pwscore
, amely a jelszó bonyolultságának ellenőrzésére szolgál. A fentieket használtuk a hitelek ellenőrzésére.
Hasznosság pwscore
-től olvas
A jelszó minőségi pontszáma a paraméterhez kapcsolódik minlen
a konfigurációs fájlban. Általában az 50-nél kisebb pontszámot „normál jelszónak”, a feletti pontszámot pedig „erős jelszónak” tekintjük. Minden olyan jelszó, amely megfelel a minőségellenőrzésnek (különösen a kényszerellenőrzésnek cracklib
). minlen
akár alapértelmezés szerint brute force
támadások.
Következtetés
beállítás pwquality
– könnyű és egyszerű a kényelmetlenséghez képest cracklib
közvetlen fájlszerkesztéssel pam
. Ebben az útmutatóban mindent bemutatunk, amire szüksége lesz a jelszóházirend beállításához Red Hat 7, CentOS 7 és még Ubuntu rendszereken is. Szó esett a hitel fogalmáról is, amiről ritkán írnak részletesen, így ez a téma sokszor tisztázatlan maradt azok számára is, akik korábban nem találkoztak vele.
Forrás:
Hasznos linkek:
Forrás: will.com