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

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

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

パスワードは 60 年近くにわたって存在している

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

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

パスワードの問題点は、パスワードが鍵と同じように機能することです。鍵を持っている人なら誰でも利用できます。誰かがあなたのパスワードを見つけたり、推測したり、解読したりすると、その人はあなたのアカウントにアクセスできます。 多要素認証が 広く利用できるようになるまでは、パスワードが、権限のない人物 (サイバーセキュリティで言うところの 脅威アクター ) をシステムに侵入させないようにする唯一のものです。

Secure Shell (SSH) によって行われるリモート接続は、パスワードの代わりに SSH キーを使用するように構成できます。これは優れています。ただし、これは接続方法の 1 つであり、ローカル ログインは対象外です。

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

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

パスワードの構造

そもそも、パスワードが優れているのはなぜでしょうか?適切なパスワードには、次の属性がすべて備わっている必要があります。

  • 推測したり理解したりすることは不可能です。
  • 他では使ったことがないんですね。
  • データ侵害 には関与していません。

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

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

本当にランダムなパスワード (4HW@HpJDBr%*Wt@#b~aP など) は事実上無敵ですが、当然ながら、それを思い出すことはできません。オンライン アカウントにはパスワード マネージャーを使用することを強くお勧めします。すべてのオンライン アカウントに対して複雑でランダムなパスワードが生成されるため、パスワード マネージャーが正しいパスワードを提供するため、パスワードを覚える必要はありません。

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

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

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

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

たとえば、 Experte Password Checker は、 「chicago99」を解読するには 42 分かかるが、「chimney.purple.bag」を解読するには 4,000 億年かかると述べています。また、覚えて入力するのも簡単で、文字数はわずか 18 文字です。

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

現在の設定を確認する

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

sudo

他の人のパスワード設定を使用している場合は、 passwd 使用します。

次のように入力します。

 sudo passwd -S メアリー

以下に示すように、1 行の情報が端末ウィンドウに出力されます。

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

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

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

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

 sudo passwd -x45 メアリー

以下に示すように、有効期限値が変更されたことがわかります。

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

 sudo passwd -S メアリー

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

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

パスワードの即時変更の強制

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

 sudo passwd -e メアリー

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

-S オプションを使用して何が起こったのかを確認してみましょう。

 sudo passwd -S メアリー

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

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

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

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

今の考え方は真逆です。英国では、 国立サイバーセキュリティセンターが 定期的なパスワード更新を強制しないよう 強く勧告しており、米国の 国立標準技術研究所もこれ に同意しています。どちらの組織も、既存のパスワードが 他の人に知られていること がわかっている場合、またはその疑いがある場合にのみ、パスワードの変更を強制することを推奨しています。

ユーザーにパスワードの変更を強制することは単調になり、脆弱なパスワードを助長します。通常、ユーザーは基本パスワードに日付やその他の数字をタグ付けして再利用し始めます。または、頻繁に変更する必要があるため、覚えられないため、書き留めることもあります。

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

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

上記のヒントにより、アカウントにアクセスする安全な手段を確立できます。これらのガイドラインを策定したら、それを遵守してください。 パスワードが強力で安全であれば、なぜ変更する必要 があるのでしょうか?それが悪者の手に渡った場合、またはその疑いがある場合は、変更できます。

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

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

変更コマンド

chage コマンドを 使用して、パスワードのエージングに関する設定を変更できます。このコマンドの名前は、「Change Aging」に由来しています。これは、パスワード作成要素が削除された passwd コマンドに似ています。

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

次のように入力します。

 sudo chage -l eric

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

次のように入力します。

 sudo チャゲ エリック -E 2020-11-30

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

 sudo chage -l eric

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

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

次のように入力します。

須藤chage -M 45 mary

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

 sudo chage -l mary

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

ネットワーク上の全員のパスワードを変更する

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

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

 sudo gedit /etc/login.defs

パスワードの有効期限管理までスクロールします。

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

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

 sudo gedit パスワード日付.sh

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

 #!/bin/bash

リセット日=28

$(ls /home) のユーザー名用

する

sudo 変更 $ユーザー名 -M $reset_days

echo $username パスワードの有効期限が $reset_days に変更されました

終わり

これにより、各ユーザー アカウントの最大日数が 28 日に変更され、パスワードのリセット頻度も変更されます。必要に応じて、 reset_days 変数の値を調整できます。

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

 chmod +x パスワード日付.sh

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

 sudo ./パスワード日付.sh

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

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

 sudo 変更 -l メアリー

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


パスワード管理は真剣に取り組む必要があります。これで、制御するために必要なツールが揃いました。

「 Linux でユーザーにパスワードの変更を強制する方法」に関するベスト動画選定!

これで安心‼Linuxのセキュリティー対策 ~ずんだもんのLinux「使ってみた」第6回~
【Windows 11】自動ログインを行う|パスワードなし(省略)でログインする