【问题标题】:How to block access to Tomcat listening port, and allow localhost only?如何阻止对 Tomcat 监听端口的访问,只允许 localhost?
【发布时间】:2020-06-09 00:10:47
【问题描述】:

我有一个在 Tomcat 上运行并侦听端口 8080 的应用程序。我在 Apache 级别 (httpd) 上进行了重定向更改,以使我的用户能够只输入 http://app 而不是 http://app:8080

现在我想阻止完全访问http://app:8080,这样用户就无法访问http://app:8080

我该怎么做?

【问题讨论】:

  • 这听起来很矛盾,如果 8080 确实是面向公众的端口。您的意思是让用户通过普通端口 (80) 连接到您的应用程序,同时在内部将 80 重定向到 8080?
  • 是的。我根本不希望 8080 暴露出来。
  • 好的,这可能是一个服务器故障问题,类似于:serverfault.com/questions/140622/…

标签: tomcat access-control


【解决方案1】:

您可以使用iptables 阻止端口,考虑到它是在操作系统级别,这非常安全:

iptables -A INPUT/ -p tcp --dport 8080 -j DROP

或者您可以在tomcat 的配置中注释8080 连接器(在server.xml 中):

<!--
<Connector port="8080" …
    />
-->

或者您可以只限制对本地主机的访问(以防您想使用管理器应用等):

<Connector port="8080" address="127.0.0.1" maxHttpHeaderSize="8192" />

(之后别忘了重启tomcat)。

【讨论】:

  • 谢谢你,tomcat 连接器的那个属性起到了作用。与 Apache 的 ProxyPass 指令一起提供了一个不错的解决方案。
【解决方案2】:

为了完整起见,您可能希望以类似的方式配置 AJP 连接器或在 server.xml 中禁用它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多