Jetty JMX开放端口1099

时间:2014-01-13 02:44:35

标签: jetty rmi jmx

我使用CentOS 6.5Jetty 9.1.0.v20131115。我使用Jetty的JMX功能。

我希望只能在正在运行的计算机(localhost127.0.0.0/8)内访问JMX,但不能从外部访问(例如,public.example.com无法访问JMX)。

因此,我将Jetty的JMX RMI主机配置为使用jetty.jmxrmihost=localhost而不是通配符jetty.jmxrmihost=0.0.0.0

然而,我的Jetty服务器实例可以从“外部”访问,允许任何人通过JMX连接到我的Jetty服务器。

我需要配置什么才能使Jetty只侦听来自localhost那些 JMX连接?

以下是与此主题相关的Jetty配置文件:


档案${jetty.base}/start.d/jmx.ini

--module=jmx
#jetty.jmxrmihost=localhost # I tried this one, but it didn't work either
jetty.jmxrmihost=127.0.0.1
jetty.jmxrmiport=1099

档案${jetty.base}/start.d/jmx-remote.ini

--module=jmx-remote

1 个答案:

答案 0 :(得分:1)

就问问题的方式而言,似乎它不是Jetty / JMX问题而是更多的防火墙问题 - 您想要的是阻止不需要的外部流量到此服务器上的JMX端口。

如果您有权限并且愿意这样做,则需要从打开JMX端口的/ etc / sysconfig / iptables中删除任何规则(在此示例中为1099)。这样的规则如下所示:

[0:0] -A INPUT -s SOME_IP_SUBNET -p tcp -m tcp --dport 1099 -j ACCEPT

或者,另一方面,您可能只想为特定子网(例如公司的子网)启用 JMX监控,此时,您需要添加以下内容:

[0:0] -A INPUT -s MY_IP_SUBNET_HERE -p tcp -m tcp --dport JMX_PORT -j ACCEPT

,分别用您自己的IP子网和JMX端口替换MY_IP_SUBNET_HERE和JMX_PORT。

我自己没有为iptables写过很多规则,所以请将上面的内容作为一个例子考虑,而不一定是你需要的确切语法。 * nixCraft提供了basic guide to handling iptables/sysctl,其中还介绍了如何在不编辑文件的情况下修改规则(我通常只修改文件)。

两个注意事项,如果你去修改iptables文件的路线:

  • 请务必重新启动iptables(/etc/init.d/iptables restartservice iptables restart
  • 在重启iptables后调用/sbin/sysctl -p 。重新启动iptables会清除sysctl.conf中的所有自定义规则,调用sysctl -p将恢复这些规则。