Frage Wie verwende ich Nicht-Klartext-Passwörter für Tomcat-Benutzer?


Unter Ubuntu 10.04.3 LTS, nach der Installation von Tomcat 6, besteht die Möglichkeit, einen solchen Eintrag hinzuzufügen /etc/tomcat6/tomcat-users.xml:

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

Dieses Passwort ist im Klartext, und ich bin nicht damit einverstanden. Gibt es eine Möglichkeit, stattdessen etwas wie einen Hash zu verwenden? Wenn Sie eine Nicht-Ubuntu-Lösung haben, kann ich sie wahrscheinlich übersetzen.


19
2017-07-29 19:24


Ursprung




Antworten:


Genommen von diese Seite

  1. Fügen Sie das Attribut "Digest" für Ihr Element hinzu server.xml mit einem Hash-Algorithmus als Wert (mögliche Werte sind zB md5, sha-1 oder sha-256, wo Letzteres dringend empfohlen wird).
  2. Lauf $CATALINE_HOME/bin/digest.sh -a <YOUR_HASH_ALGORITHM> <YOUR_PASSWORD>
  3. Sie erhalten eine Ausgabe in der folgenden Form <YOUR_PASSWORD>:<ENCRYPTED_PASSWORD>
  4. Ersetzen Sie den Wert des Benutzers password Attribut in Ihrem tomcat-users.xml zu <ENCRYPTED_PASSWORD>
  5. Tomcat neu starten

Siehe auch: Tomcat Digest Passwort


14
2017-07-29 19:29



+1, aber eek an der MD5. Benutzen "sha-1" oder "sha-256", wenn es funktioniert. - Shane Madden♦
In Tomcat 7 befindet sich nun eine Digest.bat im Verzeichnis bin, um dies zu tun. Beispiel: digest.bat -a "md5" <YOUR_PASSWORD> - Zasz
Dies ist für Tomat 8.5.x nicht abgeschlossen. Sehen Sie meinen Kommentar unten für die vollständigen Schritte. Sie müssen Ihren Bereich auch in der Datei server.xml sowie in der Authentifizierungsmethode web.xml ändern. - atom88


Für alle, die nach Informationen über Tomcat 8.0.15 oder neuer suchen, sollten Sie wahrscheinlich SecretKeyCredentialHandler mit PBKDF2 verwenden, da es viel sicherer ist (d. H. Schwieriger zu knacken) als ein einfacher Nachrichten-Digest.

Zum Beispiel in Ihrer server.xml:

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

Verwenden Sie bei dieser Konfiguration Folgendes, um die Hash-Ausgabe Ihres Kennworts zu generieren:

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

mit der Iterationsanzahl und der Salzgröße (in Bytes) Ihrer Wahl. Beachten Sie, dass die Schlüssellänge wie in der Datei server.xml definiert sein muss Fehler 60446. Es sollte jedoch ziemlich bald stromaufwärts behoben werden.

WARNUNG! Bitte vergewissere dich, dass dein Passwort nicht im Befehlsverlauf deiner Shell gespeichert wird. In bash wird dies erreicht, indem dem Befehl ein leerer Bereich vorangestellt wird.

Der Befehl gibt Ihr Passwort im Klartext und in Hexadezimaldarstellung der resultierenden Anmeldeinformationen aus, die Sie als Passwort-Attribut in Ihrer tomcat-users.xml verwenden sollten.

Dokumentation für die CredentialHandler-Komponente kann gefunden werden Hier. Die möglichen Werte für das Algorithmusattribut können gefunden werden Hier.


8
2017-12-02 14:56





1) Passwort generieren: /bin>digest.bat -s 0 -a sha-256

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

Zu verwendendes Passwort ist: 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918

* Wichtiger Hinweis: Sie müssen "-s 0" (Salz 0) verwenden oder es wird nicht funktionieren.

2) Fügen Sie das Passwort oben in Ihre tomcat-users.xml Datei ein.

Beispiel:

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

3) konfiguriere server.xml, um SHA-256 Digest Hash-basierte Passwörter zu verwenden:

4) Konfigurieren Sie Ihre web.xml, um "DIGEST" Passwörter zu verwenden und RealmName zu aktualisieren, um oben übereinzustimmen (im HTMLManager Abschnitt)

 <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>

0
2018-06-15 16:39



Sie verwechseln DIGEST auth mit Hash-Passwörtern. Die Frage bezieht sich auf Hash-Passwörter mit BASIC Auth. - rustyx