Tomcat 사용자에게 일반 텍스트가 아닌 비밀번호를 사용하려면 어떻게합니까?


19

Ubuntu 10.04.3 LTS에서 Tomcat 6을 설치 한 후 관리자 / 관리자 계정을 추가하는 방법은 /etc/tomcat6/tomcat-users.xml다음 과 같은 레코드를 추가하는 것입니다 .

<role rolename="manager"/>
<role rolename="admin"/>
<user username="user" password="password" roles="manager,admin"/>

그 암호는 평문으로되어있어서 불편합니다. 대신 해시와 같은 것을 사용하는 방법이 있습니까? 우분투가 아닌 솔루션이 있다면 아마도 번역 할 수 있습니다.

답변:


14

이 페이지 에서 가져온

  1. 당신의 요소 "소화"속성을 추가 server.xml(가능한 값은 예를 들어있는 값으로 해시 알고리즘으로 md5, sha-1또는 sha-256후자가 권장된다).
  2. 운영 $CATALINE_HOME/bin/digest.sh -a <YOUR_HASH_ALGORITHM> <YOUR_PASSWORD>
  3. 다음과 같은 형식으로 출력됩니다. <YOUR_PASSWORD>:<ENCRYPTED_PASSWORD>
  4. 의 사용자 password속성 값 tomcat-users.xml<ENCRYPTED_PASSWORD>
  5. 바람둥이를 다시 시작

참조 : Tomcat 다이제스트 비밀번호


1
+1이지만 MD5에서는 eek입니다. 사용 "sha-1"또는 "sha-256"작동합니다 경우.
Shane Madden

1
Tomcat 7의 bin 디렉토리에 digest.bat가 있습니다. 예 :digest.bat -a "md5" <YOUR_PASSWORD>
Zasz

1
Tomat 8.5.x에서는 완료되지 않았습니다. 전체 단계는 아래 내 의견을 참조하십시오. 또한 server.xml 및 web.xml 인증 방법에서 영역을 수정해야합니다.
atom88

8

Tomcat 8.0.15 이상에 대한 정보를 찾고있는 사람이라면 간단한 메시지 요약보다 훨씬 안전하기 때문에 PBKDF2와 함께 SecretKeyCredentialHandler를 대신 사용해야합니다.

예를 들어 server.xml에서

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
       resourceName="UserDatabase">
   <CredentialHandler className="org.apache.catalina.realm.SecretKeyCredentialHandler"
                      algorithm="PBKDF2WithHmacSHA512"
                      keyLength="256"
   />
</Realm>

이 구성으로 다음을 사용하여 비밀번호에서 해시 출력을 생성하십시오.

 $CATALINA_HOME/bin/digest.sh -a "PBKDF2WithHmacSHA512" -i 100000 -s 16 -k 256 -h "org.apache.catalina.realm.SecretKeyCredentialHandler" "YOUR_PASSWORD"

선택한 반복 횟수와 소금 크기 (바이트). 키 길이는 버그 60446 때문에 server.xml에 정의 된 길이와 같아야 합니다. 그래도 곧 업스트림에 수정되어야합니다.

경고! 비밀번호가 쉘의 명령 내역에 저장되지 않도록하십시오. bash에서는 명령 앞에 빈 공간을 두어 달성합니다.

이 명령은 비밀번호를 일반 텍스트로 표시하고 결과 신임 정보의 16 진 표현을 나타내며 tomcat-users.xml에서 비밀번호 속성으로 사용해야합니다.

CredentialHandler 구성 요소에 대한 문서는 여기 에서 찾을 수 있습니다 . 알고리즘 속성의 가능한 값은 여기 에서 찾을 수 있습니다 .


0

1) 비밀번호 생성 : /bin>digest.bat -s 0 -a sha-256

예 : /bin>digest.bat -s 0 -a sha-256 admin

사용할 비밀번호는 다음과 같습니다. 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918

* 중요 사항 : "-s 0"(소금 0)을 사용해야합니다. 그렇지 않으면 작동하지 않습니다.

2) 위의 비밀번호를 tomcat-users.xml 파일에 붙여 넣습니다.

예:

<!-- for password “admin” -->
<user username="tomcat" password="8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918" roles="manager-gui,manager,admin"></user>

3) SHA-256 다이제스트 해시 기반 비밀번호를 사용하도록 server.xml을 구성하십시오.

4) "DIGEST"비밀번호를 사용하도록 web.xml을 구성하고 위와 일치하도록 RealmName을 업데이트하십시오 (HTMLManager 섹션에서)

 <catalina_home>/webapps/manager\WEB-INF\web.xml

    <login-config>
        <auth-method>DIGEST</auth-method>
        <realm-name>UserDatabase</realm-name> 
    </login-config>

Full context:
  <servlet>
    <servlet-name>HTMLManager</servlet-name>
    <servlet-class>org.apache.catalina.manager.HTMLManagerServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>

… SNIPPED_FOR_BREVITY ...   

    <login-config>
    <auth-method>DIGEST</auth-method>
    <realm-name>UserDatabase</realm-name>
  </login-config>

    <multipart-config>
      <!-- 50MB max -->
      <max-file-size>52428800</max-file-size>
      <max-request-size>52428800</max-request-size>
      <file-size-threshold>0</file-size-threshold>
    </multipart-config>
  </servlet>

DIGEST 인증을 해시 된 비밀번호와 혼동하고 있습니다. 문제는 BASIC 인증과 함께 해시 비밀번호를 사용하는 것에 관한 것입니다.
rustyx
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.