JBoss Management Console Erişimi Nasıl Kısıtlanır?
26 Ağustos 2008Java Uygulama sunucu olarak JBoss kullanan birçok kişi/kurum JBoss ile birlikte gelen ve ön tanımlı olarak çalışan yönetim konsolu uygulamasının ne kadar çok bilgi sızdırabileceğinin farkında değil. Kendi bilgisayarım üzerinden örneklerle gidip erişim kısıtlama yöntemlerini anlatmaya çalışacağım:
Ben de birçok işi başından aşkın veya tembel sistem yöneticisi gibi http://www.jboss.org sitesinden sözkonusu uygulama sunucusunu (sürüm 4.2.2.GA) indirdim ve hemen çalıştırdım.
# unzip jboss-4.2.2.GA.zip
# cd jboss-4.2.2.GA/bin
# ./run.sh &
Kabul ediyorum ben yukarıda bahsettiğim tembel sistem yöneticilerinden daha tembelim. Onlar en azından sistem her kapanıp açıldığında uygulama sunucusu başlasın diye açılış betiklerine birkaç satır ekliyorlardır
Uzun lafın kısası şu anda 8080 numaraları portta çalışan bir JBoss uygulama sunucum var. Artık diğer uygulamaların yanında, bir de öntanımlı olarak gelen web-console ve jmx-console uygulamaları da bu sunucu üzerinden erişilebilir durumdalar ve sistemle ilgili pek çok kritik bilgiyi isteyene sunuyorlar.
Web tarayıcımı http://localhost:8080/web-console/ adresine yönlendiriyorum:
Yukarıda görüldüğü gibi sistemin iç ağda kullandığı IP adresi, İşletim sistemi, Jboss’un kurulduğu dosya yolu vb. bilgilere ulaşılabiliyor.
Bunun yanında ikinci ekran görüntüsünde farketmiş olabileceğiniz gibi, uygulama sunucusuna o anda gelmiş olan GET veya POST istekleri de görüntülenebiliyor. Yani, kullanıcı adı ve parola bilgisi alan bir uygulamanız varsa buradan bu bilgilerinde görüntülendiğini bilmelisiniz.
Bu durumda sisteminizle ilgili bilgileri bütün dünyaya açmak yerine basit 1-2 ayarlama ile sadece sizin erişebileleceğiniz hale getirebilirsiniz. Bunun için aşağıdaki adımları izlemeniz yeterli:
I. JBoss kurulum dizini altındaki web-console.war/WEB-INF/web.xml dosyasına aşağıdaki satırları ekleyin:
<security-constraint>
<web-resource-collection>
<web-resource-name>HtmlAdaptor</web-resource-name>
<description>An example security config that only allows users with the
role JBossAdmin to access the HTML Web console web application
</description>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>JBossAdmin</role-name>
</auth-constraint>
</security-constraint>
II. JBoss kurulum dizini altındaki web-console.war/WEB-INF/classes/web-console-users.properties dosyasındaki admin kullanıcısının parolasını değiştirin:
admin=yeni_admin_parolası
III. JBoss kurulum dizini altındaki web-console.war/WEB-INF/jboss-web.xml dosyasına aşağıdaki satırı ekleyin:
<security-domain>java:/jaas/web-console</security-domain>
IV. JBoss’u yeniden başlatın.
JBoss artık web-console uygulamasına bağlanırken kullanıcı adı ve parola girmenizi isteyecektir:
————————————————————————————————–
Şimdi de JMX Management Console uygulamasına bakalım:
Web tarayıcımı http://localhost:8080/jmx-console/ adresine yönlendirdiğimde yine sunucum ile ilgili kritik bilgilerin görüntülendiği ve daha kötüsü değiştirilebildiği bir arayüzle karşılaşıyorum:

web-console uygulaması için yaptıklarımızın benzerini yaparak jmx-console uygulamasına erişim de kısıtlayabiliriz:
I. JBoss kurulum dizini altındaki deploy/WEB-INF/web.xml dosyasına aşağıdaki satırları ekleyin:
<security-constraint>
<web-resource-collection>
<web-resource-name>HtmlAdaptor</web-resource-name>
<description>An example security config that only allows users with the
role JBossAdmin to access the HTML JMX console web application
</description>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>JBossAdmin</role-name>
</auth-constraint>
</security-constraint>
II. JBoss kurulum dizini altındaki conf/props/jmx-console-users.properties dosyasındaki admin kullanıcısının parolasını değiştirin:
admin=yeni_admin_parolası
III. JBoss kurulum dizini altındaki deploy/jmx-console.war/WEB-INF/jboss-web.xml dosyasına aşağıdaki satırı ekleyin:
<security-domain>java:/jaas/jmx-console</security-domain>
IV. JBoss’u yeniden başlatın.
Artık jmx-console uygulaması da kullanıcı adı / parola soracaktır.
—
















