Tekrar merhaba! Yeni kurs grubunda dersler yarın başlıyor
Önceki dersimizde size nasıl kullanılacağını anlatmıştık. pam_cracklib
sistemlerdeki şifreleri daha karmaşık hale getirmek pam_pwquality
değiştirilir cracklib
gibi pam
Şifreleri kontrol etmek için varsayılan modül. Modül pam_pwquality
ayrıca Ubuntu ve CentOS'un yanı sıra diğer birçok işletim sisteminde de desteklenir. Bu modül, kullanıcıların şifre gücü standartlarınızı kabul etmesini sağlamak için şifre politikaları oluşturmayı kolaylaştırır.
Uzun bir süre boyunca şifrelere yönelik genel yaklaşım, kullanıcıyı büyük harf, küçük harf, rakam veya diğer simgeleri kullanmaya zorlamaktı. Şifre karmaşıklığına ilişkin bu temel kurallar son on yılda geniş çapta desteklendi. Bunun iyi bir uygulama olup olmadığı konusunda birçok tartışma yaşandı. Bu tür karmaşık koşulların oluşturulmasına karşı çıkan temel argüman, kullanıcıların şifreleri kağıt parçalarına yazıp bunları güvenli olmayan bir şekilde saklamasıydı.
Son zamanlarda sorgulanan bir diğer politika ise kullanıcıları x günde bir şifrelerini değiştirmeye zorluyor. Bunun aynı zamanda güvenliğe de zararlı olduğunu gösteren bazı çalışmalar olmuştur.
Bu tartışmaların konusu hakkında şu veya bu bakış açısını doğrulayan birçok makale yazılmıştır. Ancak bu makalede tartışacağımız konu bu değil. Bu makalede, güvenlik politikasını yönetmek yerine şifre karmaşıklığının nasıl doğru şekilde ayarlanacağı anlatılacaktır.
Şifre Politikası Ayarları
Aşağıda şifre politikası seçeneklerini ve her birinin kısa bir açıklamasını göreceksiniz. Birçoğu modüldeki parametrelere benzer cracklib
. Bu yaklaşım, politikalarınızı eski sistemden taşımayı kolaylaştırır.
- üzgünüm – Yeni şifrenizde eski şifrenizde BULUNMAMASI gereken karakter sayısı. (Varsayılan 5)
- Minlen – Minimum şifre uzunluğu. (Varsayılan 9)
- kredi – Büyük harf karakterlerin kullanımına yönelik maksimum kredi sayısı (eğer parametre > 0 ise) veya gereken minimum büyük harf sayısı (eğer parametre < 0 ise). Varsayılan 1'dir.
- kredi — Küçük harf karakterlerin kullanımı için maksimum kredi sayısı (parametre > 0 ise) veya gereken minimum küçük harf sayısı (eğer parametre < 0 ise). Varsayılan 1'dir.
- kredi — Rakamların kullanılması için maksimum kredi sayısı (eğer parametre > 0 ise) veya gerekli minimum rakam sayısı (eğer parametre < 0 ise). Varsayılan 1'dir.
- o inanıyor — Diğer simgelerin kullanılması için maksimum kredi sayısı (eğer parametre > 0 ise) veya gereken minimum diğer simge sayısı (eğer parametre < 0 ise). Varsayılan 1'dir.
- küçük sınıf – Gerekli sınıf sayısını ayarlar. Sınıflar yukarıdaki parametreleri içerir (büyük harf karakterler, küçük harf karakterler, sayılar, diğer karakterler). Varsayılan 0'dır.
- maksimum tekrar – Bir karakterin şifrede maksimum tekrarlanabileceği sayı. Varsayılan 0'dır.
- maksimum sınıf tekrarı — Bir sınıftaki maksimum ardışık karakter sayısı. Varsayılan 0'dır.
- gekocheck – Parolanın kullanıcının GECOS dizelerinden herhangi bir sözcük içerip içermediğini kontrol eder. (Kullanıcı bilgileri, yani gerçek ad, konum vb.) Varsayılan 0'dır (kapalı).
- dikte yolu – Cracklib sözlüklerine gidelim.
- Kötü sözler – Şifrelerde kullanılması yasak olan, boşlukla ayrılmış kelimeler (Şirket adı, “şifre” kelimesi vb.).
Kredi kavramı kulağa tuhaf geliyorsa sorun değil, normaldir. Aşağıdaki bölümlerde bunun hakkında daha fazla konuşacağız.
Parola Politikası Yapılandırması
Yapılandırma dosyalarını düzenlemeye başlamadan önce, temel bir parola ilkesini önceden yazmak iyi bir uygulamadır. Örneğin aşağıdaki zorluk kurallarını kullanacağız:
- Şifrenin minimum uzunluğu 15 karakter olmalıdır.
- Şifrede aynı karakter ikiden fazla tekrarlanmamalıdır.
- Karakter sınıfları bir parolada dört defaya kadar tekrarlanabilir.
- Şifre her sınıftan karakterler içermelidir.
- Yeni şifre eskisine göre 5 yeni karakterden oluşmalıdır.
- GECOS kontrolünü etkinleştirin.
- “Şifre, şifre, kelime, putorius” kelimelerini yasaklayın
Artık politikayı belirlediğimize göre dosyayı düzenleyebiliriz /etc/security/pwquality.conf
şifre karmaşıklığı gereksinimlerini artırmak için. Aşağıda daha iyi anlaşılması için yorumların bulunduğu örnek bir dosya bulunmaktadır.
# 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
Fark etmiş olabileceğiniz gibi dosyamızdaki bazı parametreler gereksizdir. Örneğin, parametre minclass
alanları kullanan sınıftan en az iki karakteri zaten kullandığımız için gereksizdir [u,l,d,o]credit
. Kullanılamayan kelimeler listemiz de gereksizdir, çünkü herhangi bir sınıfın 4 kez tekrarlanmasını yasakladık (listemizdeki tüm kelimeler küçük harflerle yazılmıştır). Bu seçenekleri yalnızca parola politikanızı yapılandırmak için nasıl kullanacağınızı göstermek amacıyla ekledim.
Politikanızı oluşturduktan sonra kullanıcıları bir sonraki oturum açışlarında şifrelerini değiştirmeye zorlayabilirsiniz.
Fark etmiş olabileceğiniz başka bir garip şey de tarlaların [u,l,d,o]credit
negatif bir sayı içerir. Bunun nedeni, 0'dan büyük veya ona eşit sayıların, şifrenizdeki karakterin kullanımına kredi vermesidir. Alanın negatif bir sayı içermesi belirli bir miktarın gerekli olduğu anlamına gelir.
Krediler nedir?
Onlara kredi diyorum çünkü bu, amaçlarını olabildiğince doğru bir şekilde ifade ediyor. Parametre değeri 0'dan büyükse, şifre uzunluğuna "x"e eşit sayıda "karakter kredisi" eklersiniz. Örneğin tüm parametreler (u,l,d,o)credit
1 olarak ayarlandıysa ve gerekli şifre uzunluğu 6 ise, bu durumda uzunluk gereksinimini karşılamak için 6 karaktere ihtiyacınız olacaktır çünkü her büyük harf, küçük harf, rakam veya diğer karakter size bir kredi verecektir.
eğer kurarsan dcredit
2'de, teorik olarak 9 karakter uzunluğunda bir şifre kullanabilir ve sayılar için 2 karakterlik kredi alabilirsiniz ve bu durumda şifre uzunluğu zaten 10 olabilir.
Şu örneğe bakın. Şifre uzunluğunu 13'e, dcredit'i 2'ye ve diğer her şeyi 0'a ayarladım.
$ pwscore
Thisistwelve
Password quality check failed:
The password is shorter than 13 characters
$ pwscore
Th1sistwelve
18
Şifrenin uzunluğu 13 karakterden kısa olduğundan ilk kontrolüm başarısız oldu. Bir dahaki sefere "I" harfini "1" rakamıyla değiştirdim ve rakamlar için iki kredi aldım, bu da şifreyi 13'e eşitledi.
Şifre testi
Paket libpwquality
makalede açıklanan işlevselliği sağlar. Ayrıca bir programla birlikte gelir pwscore
Şifre karmaşıklığını kontrol etmek için tasarlanmıştır. Yukarıda kredileri kontrol etmek için kullandık.
Yarar pwscore
den okur
Şifre kalite puanı parametreyle ilgilidir minlen
yapılandırma dosyasında. Genel olarak 50'nin altındaki puanlar "normal şifre", üzerindeki puanlar ise "güçlü şifre" olarak değerlendiriliyor. Kalite kontrollerini geçen herhangi bir şifre (özellikle zorunlu doğrulama) cracklib
) sözlük saldırılarına dayanıklı olmalı ve ayarıyla 50'nin üzerinde puana sahip bir şifre minlen
varsayılan olarak bile brute force
saldırılar.
Sonuç
Ayar pwquality
– Kullanım zahmetine kıyasla kolay ve basittir cracklib
doğrudan dosya düzenleme ile pam
. Bu kılavuzda Red Hat 7, CentOS 7 ve hatta Ubuntu sistemlerinde şifre politikaları ayarlarken ihtiyaç duyacağınız her şeyi ele aldık. Ayrıca nadiren ayrıntılı olarak yazılan kredi kavramından da bahsettik, bu nedenle bu konu daha önce karşılaşmamış olanlar için genellikle belirsiz kaldı.
Kaynaklar:
Yararlı linkler:
Kaynak: habr.com