Linux ユーザーを作成するときに暗号化ハッシュを指定するにはどうすればいいですか?

Linux ユーザーを作成するときに暗号化ハッシュを指定するにはどうすればいいですか?

さまざまな種類のパスワード (長さ、文字セット、暗号化ハッシュ方式を含む) に対して JohnTheRipper をテストするために、コンピューターに Linux ユーザーをいくつか作成したいと考えています。新しいユーザーを作成するときに使用するハッシュ アルゴリズムを簡単に指定するにはどうすればよいでしょうか。ファイル /etc/login.defs には、多くの Debian システムでデフォルトで SHA512 に設定されている変数 ENCRYPT_METHOD が含まれていますが、このファイルを変更せずに別の暗号化ハッシュを使用できるかどうか知りたいです。

追伸:このファイルを変更し、再起動してadduserコマンドで新しいユーザーを作成しようとしましたが、暗号化ハッシュ方式のユーザーは常にSHA512です。

ありがとう

答え1

デフォルト以外のハッシュ方式でパスワードを設定する最も簡単な方法は、最初にパスワードを手動でハッシュし、ユーザーを設定するときにそのパスワードを入力することです。

 adduser --password HASHEDPASSWORD user

cryptHASHEDPASSWORD は、関数 ( man 3 crypt)に対するシステムの標準に従う必要があります。

salt が "$id$" という文字で始まり、その後に次の文字で終わる文字列が続く場合"$":

         $id$salt$encrypted

DES マシンを使用する代わりに、id は使用される暗号化方式を識別し、これによってパスワード文字列の残りの部分の解釈方法が決まります。id の次の値がサポートされています。

          ID  | Method
          ---------------------------------------------------------
          1   | MD5
          2a  | Blowfish (not in mainline glibc; added in some
              | Linux distributions)
          5   | SHA-256 (since glibc 2.7)
          6   | SHA-512 (since glibc 2.7)

$5$salt$encrypted SHA-256 でエンコードされたパスワードも同様であり 、 $6$salt$encryptedSHA-512 でエンコードされたパスワードも同様です。

コマンドラインから正しいハッシュを生成するには、ここ

答え2

いくつかのテストの結果、異なるハッシュ アルゴリズムを使用して異なるユーザーを作成する最適な方法は、次の 3 つの手順で構成されることがわかりました。

  1. パスワードなしでユーザーを作成する
  2. 指定されたパラメータ(ソルト、パスワード、ハッシュアルゴリズム)を使用してUNIX形式のパスワードを作成します。
  3. 生成されたUNIXパスワードを/etc/shadowに設定する

ここではユーザーの例を示しますテスト1、パスワード付き1234そしてMD5ハッシュ関数として。

sudo adduser test1 --disabled-password sudo mkpasswd --method=md5 --salt=coolsalt 1234 $1$coolsalt$qTXiZzGn08J.xYkV1ce1y1

そして、編集するだけです/etc/シャドウ

編集前 test1:*:16559:0:99999:7:::

編集後 test1:$1$coolsalt$qTXiZzGn08J.xYkV1ce1y1:16559:0:99999:7:::

その後、このユーザーでログインして、フォーマットが正しいかどうかを確認できます。

whoami root su test1 Password: 1234 whoami test1

助けてくれてありがとう

関連情報