在ActiveMQ

时间:2018-04-24 08:34:06

标签: security jetty activemq

我们在ActiveMQ的文档中没有看到如何隐藏嵌入式jetty版本。当我们在端口80上使用Web套接字传输时,我们的渗透测试人员将其标记为安全线程。我们一直在使用配置文件jetty.xml和参数,但没有成功。已经通过代码中的补丁

为其他项目(参见https://issues.apache.org/jira/browse/HADOOP-13414)解决了这个问题

到目前为止,我们一直在尝试更改jetty.xml中的配置。

搜索jetty属性后,我们就是如何配置属性的属性:

<bean id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
  <property name="sendServerVersion" value="false">
  </property>
</bean>

但是,这对版本的曝光没有任何影响。我们进一步尝试使用连接工厂,但这也没有效果:

<bean id="invokeConnectors" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
  <property name="targetObject" ref="Server" />
  <property name="targetMethod" value="setConnectors" />
  <property name="arguments">
    <list>
      <bean id="Connector" class="org.eclipse.jetty.server.ServerConnector">
        <constructor-arg ref="Server" />
        <constructor-arg>
        <list>
          <bean id="httpConnectionFactory"       class="org.eclipse.jetty.server.HttpConnectionFactory">
            <constructor-arg ref="httpConfig"/>
          </bean>
        </list>
      </constructor-arg>

<!-- see the jettyPort bean -->
<property name="host" value="#{systemProperties['jetty.host']}" />
<property name="port" value="#{systemProperties['jetty.port']}" />
</bean>

    </list>
  </property>
</bean>

我们是否走在正确的轨道上,还是需要通过ActiveMQ的代码库解决?

这是我们展示版本的方式:

#nmap -sV -p80 localhost
Starting Nmap 7.70 ( https://nmap.org ) at 2018-04-23 18:16 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000098s latency).

PORT STATE SERVICE VERSION
80/tcp open http Jetty 9.2.22.v20170606

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.34 seconds

修改:我们在ActiveMQ JIRA收到了一个答案,表明需要在ActiveMQ项目中进行一些代码修改。如果当前状态发生变化,我们将更新此问题。当前的ActiveMQ是5.15.3。

引用Tim Bain的链接问题:

  

由于org.apache.activemq.transport.discovery.http.EmbeddedJettyServer.start()通过调用new(无Spring注入)来创建其服务器,并且该方法的代码没有提供任何指定的方法HttpConfiguration,更改此行为的能力需要更改代码。 org.apache.activemq.transport.WebTransportServerSupport中有类似的代码,也没有任何能够指定禁用发送版本号的HttpConfiguration的能力。

1 个答案:

答案 0 :(得分:2)

使用......

org.eclipse.jetty.server.HttpConfiguration.setSendServerVersion(false);

...是正确的设置。

但是,您无法在服务器启动后更改此内容。

服务器本身的启动是唯一可以进行此更改的地方。

创建/初始化连接器是唯一使用此设置的地方。

这是因为该设置在启动期间传播到许多组件中(Http / 1 Generator,Http / 2 Generator,ErrorPage生成器,WebSocket升级过程等)