パスワード ポリシーの作成 Linux

またあったね! 明日から新コースグループの授業が始まります 管理者 Linux»、この点に関して、私たちはこのトピックに関する役立つ記事を公開しています。

パスワード ポリシーの作成 Linux

前のチュートリアルで使い方を説明しました pam_cracklibシステム上のパスワードをより複雑にするため レッドハット6 または CentOSRed Hat 7では pam_pwquality 交換した cracklib として pam パスワードをチェックするためのデフォルトのモジュール。 モジュール pam_pwquality また、以下の点でもサポートされています。 Ubuntu и CentOSだけでなく、他の多くのオペレーティングシステムにも対応しています。このモジュールを使用すると、パスワードポリシーの作成が簡素化され、ユーザーがパスワードの複雑性に関する基準を遵守するようにすることができます。

長い間、パスワードに対する一般的なアプローチは、ユーザーに大文字、小文字、数字、またはその他の記号の使用を強制することでした。 パスワードの複雑さに関するこれらの基本ルールは、過去 XNUMX 年間にわたって広く推進されてきました。 これが良い習慣であるかどうかについては、多くの議論が行われてきました。 このような複雑な条件を設定することに反対する主な議論は、ユーザーがパスワードを紙に書き留めて安全に保管しないということでした。

最近疑問視されている別のポリシーは、ユーザーに x 日ごとのパスワード変更を強制します。 これが安全性にも悪影響を与えることを示した研究がいくつかあります。

これらの議論のテーマに関して多くの記事が書かれており、何らかの観点を裏付けています。 しかし、これはこの記事で説明することではありません。 この記事では、セキュリティ ポリシーを管理するのではなく、パスワードの複雑さを正しく設定する方法について説明します。

パスワードポリシーの設定

以下に、パスワード ポリシー オプションとそれぞれの簡単な説明を示します。 それらの多くはモジュール内のパラメータに似ています。 cracklib。 このアプローチにより、レガシー システムからのポリシーの移植が容易になります。

  • 申し訳ありません – 新しいパスワードに含まれる、古いパスワードに含まれない文字数。 (デフォルトは5)
  • ミンレン – パスワードの最小長。 (デフォルトは9)
  • ユークレジット – 大文字を使用するためのクレジットの最大数 (パラメータ > 0 の場合)、または必要な大文字の最小数 (パラメータ < 0 の場合)。 デフォルトは 1 です。
  • クレジット — 小文字を使用するためのクレジットの最大数 (パラメータ > 0 の場合)、または小文字の必要な最小数 (パラメータ < 0 の場合)。 デフォルトは 1 です。
  • クレジット — 桁を使用するためのクレジットの最大数 (パラメーター > 0 の場合)、または必要な最小桁数 (パラメーター < 0 の場合)。 デフォルトは 1 です。
  • と彼は信じている — 他のシンボルを使用するためのクレジットの最大数 (パラメーター > 0 の場合)、または他のシンボルの最小必要数 (パラメーター < 0 の場合)。 デフォルトは 1 です。
  • 最小クラス – 必要なクラスの数を設定します。 クラスには上記のパラメータ(大文字、小文字、数字、その他の文字)が含まれます。 デフォルトは 0 です。
  • マックスリピート – パスワード内で文字を繰り返すことができる最大回数。 デフォルトは 0 です。
  • マックスクラスリピート — 0 つのクラス内の連続する文字の最大数。 デフォルトは XNUMX です。
  • ゲコチェック – パスワードにユーザーの GECOS 文字列の単語が含まれているかどうかを確認します。 (ユーザー情報、つまり本名、場所など) デフォルトは 0 (オフ) です。
  • ディクテーションパス – クラックリブ辞書に行きましょう。
  • 悪い言葉 – パスワードに使用できないスペースで区切られた単語(会社名、「パスワード」という単語など)。

ローンという概念が奇妙に聞こえるかもしれませんが、それは正常です。 これについては、次のセクションで詳しく説明します。

パスワードポリシーの設定

構成ファイルの編集を開始する前に、事前に基本的なパスワード ポリシーを書き留めておくことをお勧めします。 たとえば、次の難易度ルールを使用します。

  • パスワードは 15 文字以上である必要があります。
  • パスワード内で同じ文字を XNUMX 回以上繰り返してはいけません。
  • 文字クラスは、パスワード内で最大 XNUMX 回まで繰り返すことができます。
  • パスワードには各クラスの文字が含まれている必要があります。
  • 新しいパスワードには、古いパスワードと比較して 5 つの新しい文字が含まれている必要があります。
  • GECOS チェックを有効にします。
  • 「パスワード、パス、ワード、プトリウス」という単語を禁止します

ポリシーをレイアウトしたので、ファイルを編集できます /etc/security/pwquality.confパスワードの複雑さの要件を高めるため。 以下は、理解を深めるためのコメントを含むサンプル ファイルです。

# 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

お気づきかと思いますが、ファイル内の一部のパラメーターは冗長です。 たとえば、パラメータ minclass フィールドを使用してクラスの少なくとも XNUMX つの文字をすでに使用しているため、これは冗長です [u,l,d,o]credit。 どの授業も 4 回繰り返すことを禁止しているため、使用できない単語のリストも冗長です (リスト内のすべての単語は小文字で書かれています)。 これらのオプションは、パスワード ポリシーを構成するためにそれらを使用する方法を示すためにのみ含まれています。
ポリシーを作成したら、ユーザーが次回ログインするときにパスワードの変更を強制できます。 システム.

あなたが気づいたかもしれないもう XNUMX つの奇妙な点は、フィールド [u,l,d,o]credit 負の数が含まれています。 これは、0 以上の数値により、パスワードにその文字を使用したことが認められるためです。 フィールドに負の数値が含まれている場合は、特定の数量が必要であることを意味します。

ローンとは何ですか?

私がそれらをローンと呼ぶのは、その目的をできるだけ正確に伝えるためです。 パラメータ値が 0 より大きい場合は、「x」に等しい「文字クレジット」数をパスワードの長さに追加します。 たとえば、すべてのパラメータが (u,l,d,o)credit 1 に設定され、必要なパスワードの長さが 6 だった場合、大文字、小文字、数字、その他の文字ごとに 6 クレジットが与えられるため、長さの要件を満たすには XNUMX 文字が必要になります。

インストールすれば dcredit 2 では、理論的には 9 文字の長さのパスワードを使用し、数字に対して 2 文字のクレジットを取得できますが、その場合、パスワードの長さはすでに 10 になっている可能性があります。

この例を見てください。 パスワードの長さを 13 に設定し、dcredit を 2 に設定し、その他はすべて 0 に設定します。

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

$ pwscore
 Th1sistwelve
 18

パスワードの長さが 13 文字未満だったので、最初のチェックは失敗しました。 次回、文字「I」を数字「1」に変更すると、その数字のクレジットが 13 つ得られ、パスワードは XNUMX になりました。

パスワードのテスト

パッケージ libpwquality は、記事で説明されている機能を提供します。 プログラムも付いてます pwscore、パスワードの複雑さをチェックするように設計されています。 上記ではローンを確認するために使用しました。
ユーティリティ pwscore から読み取ります stdin。 ユーティリティを実行してパスワードを書き込むだけで、エラーまたは 0 ~ 100 の値が表示されます。

パスワード品質スコアはパラメータに関連しています minlen 設定ファイルにあります。 一般に、50 未満のスコアは「通常のパスワード」とみなされ、それ以上のスコアは「強力なパスワード」とみなされます。 品質チェック(特に強制検証)に合格したパスワード cracklib) 辞書攻撃に耐える必要があり、設定でスコアが 50 を超えるパスワードを使用する必要があります。 minlen デフォルトでも brute force 攻撃。

まとめ

調整 pwquality – 使用の不便さに比べて簡単でシンプルです cracklib ファイルを直接編集する場合 pamこのガイドでは、Red Hat 7 でパスワード ポリシーを設定するために必要なすべての情報を網羅しています。 CentOS 7 およびシステム Ubuntu私たちはまた、ローンという概念についても議論しました。ローンは詳細に議論されることが少ないため、馴染みのない人にとっては理解しにくいテーマであることが多かったのです。

ソース:

pwqualityのマニュアルページ
pam_pwquality のマニュアルページ
pwscore のマニュアルページ

便利なリンク:

安全なパスワードの選択 – Bruce Schneier
ロリー・フェイス・クラナー氏が CMU でのパスワード研究について語る
Entropy の悪名高き xkcd 漫画

出所: habr.com

DDoS 保護機能を備えた信頼性の高いサイト用ホスティング、VPS VDS サーバーを購入する 🔥 DDoS攻撃対策付きの信頼性の高いウェブサイトホスティング、VPS/VDSサーバーを購入しましょう | ProHoster