我已经在我的Ubuntu Home 11.10系统上安装了tomcat,并且在我的路由器内的8080端口转发后可以成功在线访问测试页面。
我没有对路由器、Ubuntu 或 tomcat 安装进行任何其他更改,其他一切都保持标准。我打算用它来玩 Java Servlets 和基本的 Web 开发供我个人使用。
如果有的话,您会建议我采取哪些步骤来确保这是安全的?我应该更改 Tomcat 配置中的任何内容吗?这似乎是限制访问的好主意 - http://www.seankilleen.com/2010/09/how-to-allow-only-specific-ip-addresses_30.html
但我愿意接受任何其他建议。
解决方案
使用 Tomcat 阻止除管理员 IP 地址(对我们来说是静态的且已知的)之外的所有连接。步骤
打开位于 [Tomcat]\conf\context.xml 中的 context.xml 文件,其中 [Tomcat] 是 Tomcat 服务器的基本位置。
如果您以前从未编辑过此文件,您应该会看到如下所示的行:
<WatchedResource>WEB-INF/web.xml</WatchedResource>
Run Code Online (Sandbox Code Playgroud)
直接在标签后面添加以下行:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="IP1|IP2|IP3"/>
...where IP1, IP2, IP3, etc. are the IP addresses you would like to allow.
Restart the Tomcat server.
Run Code Online (Sandbox Code Playgroud)
关于它如何工作的注释
该阀门使用正则表达式,因此如果您决定喜欢它,您当然可以(只要您对 Java 正则表达式有所了解)。出于我们的目的,IP 地址之间的竖线(“|”)字符充当“或”运算符。如果远程地址值与这些完整字符串中的任何一个匹配,则允许。
请注意,默认情况下,这会拒绝所有其他连接。
如果您想允许除某些 IP 地址之外的所有连接,您可以将“允许”属性更改为“拒绝”;除拒绝属性中的连接外,所有连接都将被允许,该属性仍然使用 Java 正则表达式。
据我所知,这种“阀门”结构不能堆叠。也就是说,你不能做一个“拒绝所有”阀门,然后在其上面堆叠多种类型的“允许阀门”。如果有人知道这是否可行,请随时在评论中留言。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
923 次 |
| 最近记录: |