Linux 사용자를 생성할 때 암호화 해시를 지정하는 방법은 무엇입니까?

Linux 사용자를 생성할 때 암호화 해시를 지정하는 방법은 무엇입니까?

다양한 종류의 비밀번호(길이, 문자 세트 및 암호화 해시 방법 포함)에 대해 JohnTheRipper를 테스트하기 위해 내 컴퓨터에 몇 명의 Linux 사용자를 만들고 싶습니다. 새 사용자를 생성할 때 사용할 해싱 알고리즘을 쉽게 지정하려면 어떻게 해야 합니까? 나는 /etc/login.defs 파일에 많은 데비안 시스템에서 기본적으로 SHA512로 설정되는 ENCRYPT_METHOD 변수가 포함되어 있다는 것을 알고 있지만 이 파일을 수정하지 않고 다른 암호화 해시를 사용할 수 있는지 알고 싶습니다.

ps: 이 파일을 수정하고 재부팅하고 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. /etc/shadow에서 생성된 UNIX 비밀번호를 설정합니다.

다음은 사용자의 예입니다.테스트1, 비밀번호 포함1234그리고MD5해싱 함수로.

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

이제/etc/shadow

편집하기 전에 test1:*:16559:0:99999:7:::

편집 후 test1:$1$coolsalt$qTXiZzGn08J.xYkV1ce1y1:16559:0:99999:7:::

그런 다음 이 사용자로 로그인하여 형식이 올바른지 확인할 수 있습니다.

whoami root su test1 Password: 1234 whoami test1

도와 주셔서 감사합니다

관련 정보