Tomcat kullanıcıları için düz metin olmayan parolaları nasıl kullanırım?


19

Ubuntu 10.04.3 LTS'de, Tomcat 6'yı yükledikten sonra yönetici / yönetici hesabı eklemenin yolu şuna şöyle bir kayıt eklemektir /etc/tomcat6/tomcat-users.xml:

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

Bu şifre açık metin ve bu konuda rahat değilim. Bunun yerine karma gibi bir şey kullanmanın bir yolu var mı? Ubuntu olmayan bir çözümünüz varsa, muhtemelen bunu çevirebilirim.

Yanıtlar:


14

Alındığı bu sayfada

  1. daki elemana "sindirmek" özelliğini eklemeniz server.xml(olası değerler örneğin şunlardır değeri olarak bir karma algoritması ile md5, sha-1ya sha-256ikincisi şiddetle tavsiye edilir nerede,).
  2. Çalıştırmak $CATALINE_HOME/bin/digest.sh -a <YOUR_HASH_ALGORITHM> <YOUR_PASSWORD>
  3. Aşağıdaki formda bir çıktı alacaksınız <YOUR_PASSWORD>:<ENCRYPTED_PASSWORD>
  4. Kullanıcının değerini değiştirin passwordsizin içinde özelliği tomcat-users.xmlTo<ENCRYPTED_PASSWORD>
  5. tomcat'ı yeniden başlat

Ayrıca bakınız: Tomcat özet şifre


1
+1, ancak MD5'te eek. Çalışırsa "sha-1"veya öğesini kullanın "sha-256".
Shane Madden

1
Tomcat 7'de artık bin dizininde bunu yapmak için bir digest.bat var. Örnek:digest.bat -a "md5" <YOUR_PASSWORD>
Zasz

1
Bu Tomat 8.5.x için tamamlanmamıştır. Tam adımlar için aşağıdaki yorumuma bakın. Bölgenizi server.xml dosyasında ve web.xml kimlik doğrulama yönteminde de değiştirmeniz gerekir.
atom88

8

Buraya Tomcat 8.0.15 veya daha yeni bir bilgi arayan herkes için, bunun yerine SecretKeyCredentialHandler'ı PBKDF2 ile kullanmalısınız, çünkü basit bir mesaj özetinden çok daha güvenli (yani kırılması daha zor).

Örneğin, server.xml dosyasında:

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

Bu yapılandırmada, şifrenizden karma çıktı oluşturmak için aşağıdakileri kullanın:

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

seçtiğiniz yineleme sayısı ve tuz boyutu (bayt cinsinden) ile. Anahtar uzunluğunun, hata 60446 nedeniyle server.xml dosyasında tanımlananla aynı olması gerektiğini unutmayın . Olsa da oldukça yukarı akış yukarı düzeltilmesi gerekir.

UYARI! Lütfen şifrenizin kabuğunuzun komut geçmişine kaydedilmediğinden emin olun. Bash'da bu, komuttan önce boş bir boşluk bırakılarak elde edilir.

Komut, parolanızı düz metin olarak ve tomcat-users.xml dosyasında parola özniteliğiniz olarak kullanmanız gereken sonuç kimlik bilgilerinin onaltılık bir temsili ile çıktı verir.

CredentialHandler bileşeni için belgeleri burada bulabilirsiniz . Algoritma özelliğinin olası değerleri burada bulunabilir .


0

1) Şifre oluşturun: /bin>digest.bat -s 0 -a sha-256

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

Kullanılacak şifre: 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918

* Önemli not: “-s 0” (tuz 0) kullanmanız gerekir, aksi takdirde çalışmaz.

2) Yukarıdaki şifreyi tomcat-users.xml dosyanıza yapıştırın.

Misal:

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

3) server.xml dosyasını SHA-256 özet karma tabanlı parolaları kullanacak şekilde yapılandırın:

4) web.xml'inizi “DIGEST” şifrelerini kullanacak şekilde yapılandırın ve Bölge Adını yukarıdakiyle eşleşecek şekilde güncelleyin (HTMLManager bölümünde)

 <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 yetkisini karma parolalarla karıştırıyorsunuz. Soru, BASIC yetkilendirmesi ile karma parolaların kullanılmasıyla ilgilidir.
rustyx
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.