..
Powyższy problem wynika z faktu, iż serwer JBoss nie zakończył wdrażania przykła-dowego komponentu w czasie, na jaki pozwalał klient. Problem ten jest spowodowany długim czasem inicjalizacji generatora liczb losowych używanego przez gniazda SSL
serwera. W razie wystąpienia tego problemu wystarczy ponownie uruchomić przykład lub zwiększyć czas oczekiwania podany w pliku build.xml w katalogu zawierającego przykłady do rozdziału 8.
Konfiguracja serwera JBoss
działającego za firewallem
JBoss posiada wiele usług korzystających z gniazd, które wymagają utworzenia portów serwera. W tym podrozdziale przedstawione zostały usługi używające portów, które najprawdopodobniej trzeba będzie skonfigurować w przypadku korzystania z serwera JBoss działającego za firewallem. W tabeli 8.2 przedstawione zostały numery
404
JBoss 4.0. Podręcznik administratora
portów, ich typ oraz używające ich usługi, przy czym zamieszczone informacje dotyczą standardowej konfiguracji JBoss. Z kolei tabela 8.3 przedstawia analogiczne informacje dla usług podanych w konfiguracji all.
Tabela 8.2. Porty używane w konfiguracji domyślnej
Numer
Typ
Usługa
1099
TCP
org.jboss.naming.NamingService
1098
TCP
org.jboss.naming.NamingService
4444
TCP
org.jboss.invocation.jrmp.server.JRMPInvoker
4445
TCP
org.jboss.invocation.pooled.server.PooledInvoker
8009
TCP
org.jboss.web.tomcat.tc4.EnbeddedTomcatService
8080
TCP
org.jboss.web.tomcat.tc4.EnbeddedTomcatService
8083
TCP
org.jboss.web.WebService
8093
TCP
org.jboss.mq.il.uil2.UILServerILService
Tabela 8.3. Porty używane w konfiguracji o nazwie „all”
Numer
Typ
Usługa
1100
TCP
org.jboss.ha.jndi.HANamingService
0a
TCP
org.jboss.ha.jndi.HANamingService
1102
UDP
org.jboss.ha.jndi.HANamingService
1161
UDP
org.jboss.jmx.adaptor.snmp.agent.SnmpAgentService
1162
UDP
org.jboss.jmx.adaptor.snmp.trapd.TrapdService
3528
TCP
org.jboss.invocation.iiop.IIOPInvoker
45566b
UDP
org.jboss.ha.framework.server.ClusterPartition
a — aktualnie jest to port anonimowy, lecz można go podać przy użyciu atrybutu RmiPort.
b — istnieją dwa dodatkowe porty anonimowe UDP, określić jednak można tylko jeden z nich; służy do tego celu atrybut rcv_port.
Zabezpieczanie serwera JBoss
JBoss posiada kilka punktów dostępu administracyjnego, które należy odpowiednio zabezpieczyć lub usunąć, by uniemożliwić nieautoryzowany dostęp do serwera produk-cyjnego. W kolejnych punktach zostały opisane różne usługi administracyjne oraz sposoby ich ochrony.
Rozdział 8. ♦ Bezpieczeństwo
405
Usługa jmx-console.war
Usługa jmx-console.war, którą można znaleźć w głównym katalogu wdrożeniowym serwera, generuje strony HTML dostarczające informacji o stanie jądra serwera. A zatem usługa ta zapewnia dostęp do wszelkich operacji administracyjnych, takich jak zamykanie serwera, zatrzymywanie usług, wdrażanie nowych usług i tak dalej. Usługę tę należy zabezpieczyć jak każdą aplikację sieciową bądź też całkowicie wyłączyć.
Usługa web-console.war
Usługa web-console.war, którą można znaleźć w katalogu deploy/management, jest kolejną aplikacją sieciową zapewniającą dostęp do jądra serwera JMX. Wykorzystuje ona kombinację apletów oraz stron HTML i zapewnia porównywalne możliwości
administracyjne co usługa jmx-console.war. Właśnie z tego względu należy ją zabezpieczyć lub usunąć. W archiwum web-console.war można znaleźć zapisane w komenta-rzach szablony podstawowych zabezpieczeń (w pliku WEB-INF/web.xml) oraz konfigurację dziedziny bezpieczeństwa (w pliku WEB-INF/jboss-web.xml).
Usługa http-invoker.sar
Plik http-invoker.sar umieszczony w katalogu wdrożeniowym zawiera usługę zapewniającą dostęp do komponentów EJB i usługi Naming JNDI za pomocą RMI i HTTP.
Usługa ta zawiera serwlet, który przetwarza wiadomości generowane przez szerego-wane obiekty org.jboss.invocation.Invocation reprezentujące wywołania, który powinny zostać przekazane do MBeanServer. W efekcie daje ona możliwość dostępu za pośrednictwem protokołu HTTP do komponentów MBean wspomagających działanie odłączonej usługi wywołującej RMI/JRMP, gdyż istnieje możliwość określenia postaci odpowiedniego żądania HTTP POST. Aby uchronić się przed tą możliwością dostępu, należałoby zabezpieczyć serwlet JMXInvokerServlet, zapisując niezbędne informacje konfiguracyjne w pliku http-invokier.sar/invoker.war/WEB-INF/web.xml. Ponieważ domyślnie jest już zdefiniowane bezpieczne odwzorowanie dla ścieżki /restricted/
JMXInvokerServlet, a zatem, aby go zastosować, wystarczy usunąć inne ścieżki oraz skonfigurować domenę bezpieczeństwa http-invokier w pliku http-invoker.sar/invoker.
war/WEB-INF.xml.
Usługa jmx-invoker-adaptor-server.sar
Plik jmx-invoker-adaptor-server.sar zawiera usługę, która używając wydzielonej usługi wywołującej RMI/JRMP zapewnia dostęp do interfejsu MBeanServer przy użyciu interfejsu zgodnego z RMI. Obecnie jedynym sposobem zabezpieczenia tej usługi mo-głoby być zmiana używanych protokołów na RMI i HTTP oraz zabezpieczenie usługi http-invoker.sar w sposób opisany w poprzednim punkcie. W przyszłości usługa ta zostanie uruchomiona jako komponent XMBean dysponujący odpowiedzialnym za bezpieczeństwo obiektem wywołującym obsługującym kontrolę dostępu bazującą na rolach.