Linuxでユーザーにパスワードの変更を強制する方法

公開: 2022-01-29
sshdからの「failedpassword」メッセージ。
Ilya Titchev / Shutterstock

パスワードは、アカウントのセキュリティの要です。 Linuxネットワークでパスワードをリセットする方法、パスワードの有効期限を設定する方法、およびパスワードの変更を強制する方法を説明します。

パスワードは60年近く前から存在しています

私たちは、パスワードが最初に導入された1960年代半ばから、私たちが自分たちであると言っていることをコンピューターに証明してきました。 マサチューセッツ工科大学で開発された互換性のあるタイムシェアリングシステムは、発明の母である必要性から、システム上のさまざまな人を識別する方法を必要としていました。 また、他の人がお互いのファイルを見ることができないようにする必要もありました。

フェルナンドJ.コルバトは、各人に一意のユーザー名を割り当てるスキームを提案しました。 誰かが本人であることを証明するために、彼らは自分のアカウントにアクセスするために個人の個人パスワードを使用する必要がありました。

パスワードの問題は、パスワードがキーのように機能することです。 キーをお持ちの方ならどなたでもご利用いただけます。 誰かがあなたのパスワードを見つけたり、推測したり、見つけたりした場合、その人はあなたのアカウントにアクセスできます。 多要素認証が広く利用できるようになるまで、パスワードは、許可されていない人(サイバーセキュリティの話では脅威の攻撃者)をシステムから遠ざける唯一のものです。

広告

Secure Shell(SSH)によって確立されたリモート接続は、パスワードの代わりにSSHキーを使用するように構成できます。これはすばらしいことです。 ただし、これは1つの接続方法にすぎず、ローカルログインには対応していません。

明らかに、パスワードの管理は、それらのパスワードを使用している人々の管理と同様に重要です。

関連: LinuxシェルからSSHキーを作成してインストールする方法

パスワードの構造

とにかく、何がパスワードを良くするのですか? 適切なパスワードには、次のすべての属性が必要です。

  • 推測したり理解したりすることは不可能です。
  • 他の場所では使用していません。
  • データ漏えいには関与していません。

Have I been Pwned(HIBP)Webサイトには、100億セットを超える侵害された資格情報が含まれています。 数字が非常に高い場合、他の誰かがあなたと同じパスワードを使用している可能性があります。 これは、侵害されたのはアカウントではない場合でも、パスワードがデータベースにある可能性があることを意味します。

パスワードがHIBPWebサイトにある場合、これは、脅威アクターのブルートフォースおよび辞書攻撃ツールがアカウントを解読しようとするときに使用するパスワードのリストに含まれていることを意味します。

真にランダムなパスワード(4HW @ HpJDBr%* Wt @#b〜aPなど)は実質的に無防備ですが、もちろん、覚えることはありません。 オンラインアカウントにはパスワードマネージャーを使用することを強くお勧めします。 それらはすべてのオンラインアカウントに対して複雑でランダムなパスワードを生成し、それらを覚えておく必要はありません。パスワードマネージャーが正しいパスワードを提供します。

ローカルアカウントの場合、各自が自分のパスワードを生成する必要があります。 また、受け入れ可能なパスワードとそうでないパスワードを知る必要があります。 他のアカウントでパスワードを再利用しないように指示する必要があります。

広告

この情報は通常、組織のパスワードポリシーに含まれています。 最小数の文字を使用する、大文字と小文字を混在させる、記号と句読点を含めるなどの指示を出します。

ただし、カーネギーメロン大学のチームからの最新の論文によると、これらのトリックはすべて、パスワードの堅牢性にほとんどまたはまったく追加されません。 研究者は、パスワードの堅牢性の2つの重要な要素は、パスワードが少なくとも12文字の長さであり、十分に強力であることを発見しました。 彼らは、多数のソフトウェアクラッカープログラム、統計手法、およびニューラルネットワークを使用してパスワード強度を測定しました。

最小12文字は、最初は気が遠くなるように聞こえるかもしれません。 ただし、パスワードではなく、句読点で区切られた3つまたは4つの無関係な単語のパスフレーズを考えてください。

たとえば、Experte Password Checkerは、「chicago99」をクラックするのに42分かかると述べましたが、「chimney.purple.bag」をクラックするのに4,000億年かかります。 覚えやすく、入力も簡単で、18文字しか含まれていません。

関連:パスワードマネージャーを使用する理由と開始方法

現在の設定を確認する

人のパスワードに関係することを変更する前に、現在の設定を確認することをお勧めします。 passwdコマンドを使用すると、 -S (ステータス)オプションを使用して現在の設定を確認できます。 他の人のパスワード設定を使用している場合は、 passwdsudoを使用する必要があることに注意してください。

次のように入力します。

 sudo passwd -S mary 

以下に示すように、1行の情報がターミナルウィンドウに出力されます。

その素っ気ない応答には、次の情報(左から右へ)が表示されます。

  • その人のログイン名。
  • 次の3つの可能な指標のいずれかがここに表示されます。
    • P:アカウントに有効な有効なパスワードがあることを示します。
    • L: rootアカウントの所有者によってアカウントがロックされていることを意味します。
    • NP:パスワードが設定されていません。
  • パスワードが最後に変更された日付。
  • パスワードの最小有効期間:アカウントの所有者がパスワードをリセットするまでに経過する必要のある最小期間(日数)。 ただし、rootアカウントの所有者は、いつでも誰のパスワードも変更できます。 この値が0(ゼロ)の場合、パスワード変更の頻度に制限はありません。
  • パスワードの最大有効期間:アカウントの所有者は、この有効期限に達するとパスワードを変更するように求められます。 この値は日数で示されるため、99,999の値は、パスワードが期限切れにならないことを意味します。
  • パスワード変更の警告期間:パスワードの最大有効期間が適用されると、アカウント所有者は自分のパスワードを変更するように通知されます。 これらの最初のものは、リセット日の前にここに示されている日数が送信されます。
  • パスワードの非アクティブ期間:パスワードのリセット期限と重なる期間、誰かがシステムにアクセスしなかった場合、その人のパスワードは変更されません。 この値は、猶予期間がパスワードの有効期限から何日後かを示します。 パスワードの有効期限が切れた後、この日数の間アカウントが非アクティブのままである場合、アカウントはロックされます。 値-1は、猶予期間を無効にします。

パスワードの最大有効期間の設定

パスワードのリセット期間を設定するには、 -x (最大日数)オプションを日数とともに使用できます。 -xと数字の間にスペースを入れないので、次のように入力します。

 sudo passwd -x45 mary 

広告

以下に示すように、有効期限の値が変更されたと通知されます。

-S (ステータス)オプションを使用して、値が45になったことを確認します。

 sudo passwd -S mary 

現在、45日以内に、このアカウントに新しいパスワードを設定する必要があります。 リマインダーはその7日前に開始されます。 新しいパスワードが間に合わない場合、このアカウントはすぐにロックされます。

即時のパスワード変更の実施

コマンドを使用して、ネットワーク上の他のユーザーが次回ログインしたときにパスワードを変更する必要があるようにすることもできます。これを行うには、次のように-e (有効期限)オプションを使用します。

 sudo passwd -e mary 

その後、パスワードの有効期限情報が変更されたことが通知されます。

-Sオプションで確認して、何が起こったかを確認しましょう。

 sudo passwd -S mary 

広告

最後にパスワードを変更した日付は1970年の初日に設定されています。次にこのユーザーがログインしようとすると、パスワードを変更する必要があります。 また、新しいパスワードを入力する前に、現在のパスワードを入力する必要があります。

パスワードリセット画面。

パスワードの変更を強制する必要がありますか?

人々に定期的にパスワードを変更させることは常識でした。 これは、ほとんどのインストールの日常的なセキュリティ手順の1つであり、優れたビジネス慣行と見なされていました。

今の考え方は正反対です。 英国では、National Cyber​​ Security Centerが定期的なパスワード更新の実施を強く推奨しており、米国のNational Institute of Standards andTechnologyもこれに同意しています。 どちらの組織も、既存のパスワードが他の人に知られていることを知っているか疑わしい場合にのみ、パスワードの変更を強制することを推奨しています。

人々にパスワードの変更を強制することは単調になり、弱いパスワードを助長します。 人々は通常、日付または他の番号がタグ付けされた基本パスワードの再利用を開始します。 または、頻繁に変更する必要があり、思い出せないため、書き留めておきます。

上記の2つの組織は、パスワードセキュリティに関する次のガイドラインを推奨しています。

  • パスワードマネージャーを使用する:オンラインアカウントとローカルアカウントの両方。
  • 二要素認証をオンにする:これがオプションである場合は常に、それを使用します。
  • 強力なパスフレーズを使用する:パスワードマネージャーで機能しないアカウントの優れた代替手段。 句読点または記号で区切られた3つ以上の単語は、従うのに適したテンプレートです。
  • パスワードを再利用しないでください。別のアカウントで使用しているのと同じパスワードを使用しないでください。また、Have I beenPwnedに記載されているパスワードは絶対に使用しないでください。
広告

上記のヒントを使用すると、アカウントにアクセスするための安全な手段を確立できます。 これらのガイドラインを設定したら、それに従ってください。 強力で安全なパスワードを変更するのはなぜですか? それが悪意のある人の手に渡った場合、またはあなたがそれを持っていると思われる場合は、それを変更することができます。

ただし、この決定が手に負えない場合もあります。 パスワードを強制する権限が変更された場合、選択肢はあまりありません。 あなたはあなたの訴訟を弁護し、あなたの立場を知らせることができますが、あなたが上司でない限り、あなたは会社の方針に従わなければなりません。

関連:パスワードを定期的に変更する必要がありますか?

チェッジコマンド

chageコマンドを使用して、パスワードエージングに関する設定を変更できます。 このコマンドの名前は、「changeaging」に由来しています。 これは、password-creation要素が削除されたpasswdコマンドのようなものです。

-l (list)オプションは、 passwd -Sコマンドと同じ情報を表示しますが、よりわかりやすい方法で表示されます。

次のように入力します。

 sudo chage -l eric 

もう1つの優れた点は、 -E (有効期限)オプションを使用してアカウントの有効期限を設定できることです。 有効期限を2020年11月30日に設定する日付(年月日形式)を渡します。その日、アカウントはロックされます。

次のように入力します。

 sudo chage eric -E 2020-11-30 

次に、次のように入力して、この変更が行われたことを確認します。

 sudo chage -l eric 

アカウントの有効期限が「なし」から2020年11月30日に変更されました。

広告

パスワードの有効期限を設定するには、 -M (最大日数)オプションと、パスワードを変更するまでに使用できる最大日数を使用できます。

次のように入力します。

 sudo chage -M 45 mary 

-l (list)オプションを使用して次のように入力し、コマンドの効果を確認します。

 sudo chage -l mary 

パスワードの有効期限は、設定した日付から45日に設定されています。これは、示されているように、2020年12月8日になります。

ネットワーク上のすべての人のパスワードを変更する

アカウントが作成されると、パスワードには一連のデフォルト値が使用されます。 最小日、最大日、および警告日のデフォルトを定義できます。 これらは、「/ etc /login.defs」というファイルに保持されます。

次のように入力して、このファイルをgeditで開くことができます。

 sudo gedit /etc/login.defs 

パスワードエージングコントロールまでスクロールします。

geditエディターのパスワードエージングコントロール。

これらを要件に合わせて編集し、変更を保存してから、エディターを閉じることができます。 次回ユーザーアカウントを作成するときに、これらのデフォルト値が適用されます。

広告

既存のユーザーアカウントのすべてのパスワードの有効期限を変更する場合は、スクリプトを使用して簡単に変更できます。 次のように入力してgeditエディターを開き、「password-date.sh」というファイルを作成します。

 sudo gedit password-date.sh 

次に、次のテキストをエディターにコピーし、ファイルを保存してから、 geditを閉じます。

 #!/ bin / bash

reset_days = 28

$(ls / home)のユーザー名
行う
  sudo chage $ username -M $ reset_days
  echo $ usernameパスワードの有効期限が$ reset_daysに変更されました
終わり

これにより、各ユーザーアカウントの最大日数が28日に変更されるため、パスワードのリセット頻度が変更されます。 それに合わせてreset_days変数の値を調整できます。

まず、次のように入力して、スクリプトを実行可能にします。

 chmod + x password-date.sh 

これで、次のように入力してスクリプトを実行できます。

 sudo ./password-date.sh 

次に、以下に示すように、各アカウントが処理されます。

アカウントで「mary」を確認するには、次のように入力します。

 sudo change -l mary 

広告

最大日数の値は28に設定されており、2020年11月21日になると言われています。スクリプトを簡単に変更したり、 chageコマンドやpasswdコマンドを追加したりすることもできます。


パスワード管理は真剣に受け止めなければならないものです。 これで、制御するために必要なツールが手に入りました。