\r\n\r\n
パスワードはアカウントセキュリティの基礎であり、Linuxネットワーク上でパスワードをリセットし、パスワードの有効期限を設定し、強制的にパスワードを変更する方法を紹介します。
1960年代半ばにパスワードが登場して以来、私たちは自分が何者であるかをコンピュータに証明するようになった。MITで開発された互換性のあるタイムシェアリングシステムでは、システム上の異なる人々を識別する方法が必要でした。また、お互いのファイルを見れないようにする必要もありました。
Fernando J. Colbatoは、一人一人にユニークなユーザー名を割り当てる方式を提案した。本人であることを証明するために、アカウントへのアクセスにはプライベートパスワードが必要です。
パスワードの問題は、鍵と同じように機能することです。鍵があれば誰でも使える。もし誰かがあなたのパスワードを見つけたり、推測したり、解明したりすると、その人はあなたのアカウントにアクセスできるようになります。多要素認証が一般に普及するまでは、権限のない人(ネットワークセキュリティにおける脅威要因)がシステムに侵入するのを防ぐにはパスワードが唯一の手段である。
Secure Shell(SSH)で確立されたリモート接続は、パスワードの代わりにSSHキーを使用するように設定することができますが、これは問題ありません。ただし、これはあくまで接続方法の一つであり、ローカルログインは含まれない。
もちろん、パスワードの管理は、それを使う人の管理と同様に重要です。
関連:LinuxシェルからSSH鍵を作成・インストールする方法
良いパスワードの条件とは? 良いパスワードは、次のすべての属性を備えている必要があります。
I'm Blocked」(HIBP)ウェブサイトには、100億セット以上の漏洩したクレデンシャルが含まれています。これだけの数字が出れば、誰かがあなたと同じパスワードを使った可能性が高い。これは、たとえあなたのアカウントが侵害されたのではないとしても、あなたのパスワードがデータベースに登録されている可能性があることを意味します。
あなたのパスワードがHIBPのウェブサイトに掲載されているということは、脅威の参加者のブルートフォース攻撃や辞書攻撃ツールがアカウントの解読を試みる際に使用するパスワードリストに掲載されているということです。
本当にランダムなパスワード(4HW@HpJDBr%*Wt@#b~aPなど)は、ほとんど無敵ですが、もちろん、覚えていることはないでしょう。オンラインアカウントには、パスワードマネージャーを使用することを強くお勧めします。これらのパスワードは、あなたのすべてのオンラインアカウントのための複雑でランダムなパスワードを生成し、あなたはそれらを覚えておく必要はありません。パスワードマネージャは、あなたに正しいパスワードを提供します。
ローカルアカウントの場合、各自でパスワードを生成する必要があります。また、どのようなパスワードが許容され、許容されないか、他のアカウントでパスワードを再利用しないことなどを伝える必要があります。
この情報は、通常、組織のパスワードポリシーに記載されています。最低限の文字数、大文字と小文字の混在、記号や句読点の使用などを指示するものです。
しかし、カーネギーメロン大学の研究チームが発表した最新の論文によると、これらのトリックはすべて、パスワードの堅牢性にほとんど影響を及ぼさないということです。研究者は、パスワードの堅牢性において、少なくとも12文字以上であることと、十分な強度があることの2点が重要であることを発見しました。彼らは、多くのソフトウェアクラッキングプログラム、統計的手法、ニューラルネットワークを使用して、パスワードの強度を測定しました。
最低12文字というのは、最初は難しく感じるかもしれません。ただし、暗号で考えるのではなく、関係のない3〜4個の単語で暗号化したフレーズを句読点で区切る。
例えば、Experteのパスワードチェッカーでは、「chicago99」をクラックするのに42分かかると言われていますが、「chicago99」のチムニーをクラックするには4000億年かかるそうです。パープルバッグ" 18文字と覚えやすく、入力しやすいのも特徴です。
関連:パスワードマネージャーを使うべき理由と、その始め方
誰かのパスワードを変更する前に、その人の現在の設定をよく見ておくことが賢明です。passwdコマンドでは、-S(status)オプションで、それらの現在の設定を確認することができます。他人のパスワード設定を使用する場合は、passwdと一緒にsudoも使用する必要があることに注意してください。
以下のように入力します。
sudo passwd -S mary以下のように、端末のウィンドウに一行の情報が出力されます。
このショートレスポンスでは、以下の情報を見ることができます(左から順に)。
パスワードのリセット期間を設定するには、-x(最大日数)オプションと日数を指定します。xと数字の間にはスペースが入らないので、次のように入力することができます。
sudo passwd -x45 mary以下のように、期限切れ値が変更されたことを教えてもらいました。
S(ステータス)オプションで、値が45になったことを確認します。
sudo passwd -S mary現在、45日以内に、このアカウントに新しいパスワードを設定する必要があります。リマインダーは7日前から開始されます。新しいパスワードが時間内に設定されない場合、このアカウントは直ちにロックされます。
また、このコマンドを使用すると、ネットワーク上の他の人が次にログインするときにパスワードを変更する必要があります。そのためには、次のように -e (expire) オプションを使用します。
sudo passwd -e maryすると、パスワードの有効期限が切れていたため、情報を変更したとのことでした。
sオプションで確認し、どうなるか見てみましょう。
sudo passwd -S mary最後にパスワードを変更した日を1970年の初日とする。この人が次にログインしようとするときは、パスワードを変更する必要があります。また、新しいパスワードを入力する前に、現在のパスワードを入力する必要があります。
パスワードの頻繁な変更を余儀なくされるのは常識である。これは、ほとんどのインストールにおける通常のセキュリティ手順の1つであり、良いビジネスプラクティスと考えられている。
現在の考え方は極めて逆である。英国では、ナショナル・サイバー・セキュリティ・センターがパスワードの定期的な更新の禁止を強く推奨しており、米国国立標準技術研究所もこれに同意しています。両組織とも、既存のパスワードが他の組織に知られていることを知っている場合、または疑わしい場合にのみ、パスワードの変更を強制することを推奨しています。
パスワードの変更を強制すると、単調になり、弱いパスワードの使用を助長することになります。一般的には、日付や数字が入った基本的なパスワードを再利用することが多いようです。あるいは、頻繁に変更しなければならないので、覚えられないから書き留めるのだろう。
上記で紹介した2つの組織は、パスワードのセキュリティについて、以下の指針を推奨しています。
上記のヒントを参考に、アカウントに安全にアクセスする方法を確立してください。これらのガイドラインを設定したら、それを厳守してください。パスワードが安全で確実なら、なぜ変更するのですか?万が一、悪用された場合、またはその疑いがある場合は、その時点で変更することができます。
しかし、時には、自分ではどうしようもない決断を迫られることもあります。パスワードを強制する権限が変われば、選択肢は少なくなる。自己防衛や自分の立場を明確にすることはできますが、上司でない限り、会社の方針に従わなければなりません。
関連:パスワードは定期的に変更したほうがいい?
パスワードエージングに関する設定は、chageコマンドで変更することができます。このコマンドの名前は「change aging」に由来し、パスワード作成要素を取り除いたpasswdコマンドに似ています。
l(リスト)オプションは、passwd-Sコマンドと同じ情報を表示しますが、より使いやすくなっています。
以下のように入力します。
sudo chage -l ericもう一つの素晴らしい仕掛けは、-E(expiry)オプションでアカウントの有効期限を設定できることです。有効期限を2020年11月30日に設定するために、日付(年-月-日形式)を渡します。その日は、アカウントがロックされます。
以下のように入力します。
sudo chage eric -E 2020-11-30次に、この変更が完了したことを確認するために、次のように入力します。
sudo chage -l ericアカウントの満期日が「決して」ではなく、2020年11月30日に変更されたことがわかります。
パスワードの有効期限を設定するには、-M(最大日数)オプションと、パスワードを変更しなければならないまでの最大日数を指定します。
以下のように入力します。
sudo 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 password-date.sh次に、以下のテキストをエディタにコピーして、ファイルを保存し、geditを閉じます。
#!/bin/bash reset_days=28 for username in $(ls /home) do sudo chage $username -M $reset_days echo $username password expiry changed to $reset_days doneこれにより、ユーザーアカウントごとの最大日数が28日に変更され、パスワードリセットの頻度が変更されます。resetu days変数の値は、必要に応じて調整してください。
まず、スクリプトを実行可能にするために次のように入力します。
chmod +x password-date.shこれで、次のように入力して、スクリプトを実行することができます。
sudo ./password-date.shその後、各アカウントは以下のように処理されます。
mary "のアカウントを確認するために、次のように入力します。
sudo change -l mary最大日数は28日に設定されており、2020年11月21日に投下されると聞いています。また、このスクリプトを修正して、chageやpasswdのコマンドを追加することも簡単にできます。
パスワードの管理は、真剣に取り組まなければならないものです。